머신러닝/인프런 16

Mean Shift 군집화

KED(kernel Density Estimation)을 이용하여 데이터 포인트들이 데이터 분포가 높은 곳으로 이동하면서 군집화를 수행. 군집화 개수를 지정하지 않고, 데이터 분포도에 기반하여 자동으로 군집화 개수를 정함. KDE는 커널함수를 통해 어떤 변수의 확률밀도 함수를 추정하는 방식. 관측된 데이터 각각에 커널 함수를 적용한 값을 모두 더한뒤 데이터 건수로 나누어서 확률 밀도 함수를 추정. 확률 밀도 추정 방법 1. 데이터가 특정 데이터 분포를 따른다는 가정하에 데이터 분포를 찾는 방법. Gaussian Mixture 등이 있음. 2. 데이터가 특정 분포를 따르지 않는다는 가정하에 밀도를 추정. KDE KDE bandwidth h가 작으면 가우시안 분포 그래프에서 폭이 좁아짐. mean shift..

군집화

데이터 포인트들을 별개의 군집으로 그룹화 하는것을 의미합니다. 유사성이 높은 데이터들을 동일한 그룹으로 분류하고 서로 다른 군집들이 상이성을 가지도록 그룹화 합니다. 고객 맞춤, 세분화 image 검출, 트랙킹 이상 검출 어떻게 유사성을 정의할 수 있을까 ? K-Means - centroid Mean Shift - centroid Gaussian Mixture Model DBSCAN - 데이터의 밀도에 따라서 K-Means Clusterning. 군집 중심점 기반 - 일반적인 가장 많이 활용되는 알고리즘. 쉽고 간결. 대용량 데이터에도 활용이 가능하다. - 거리 기반 알고리즘. 속성의 개수가 많을수록 군집화 정확도가 떨어진다. 반복을 수행하는데, 반복 횟수가 많을수록 수행시간이 느려진다. 이상치 데이터에..

특이값 분해 - SVD

SVD 는 정방행렬뿐만 아니라 행과 열의 크기가 다른 m * n 행렬도 분해 가능 u와 v는 특이벡터다. 모든 특이 벡터는 서로 직교하는 성질을 가진다. Σ 는 대각행렬이며, 대각성분이 행렬 A의 특이값이다. Compact SVD : 행렬간 종속성이 높을때, 대각 행렬의 대각성분이 0이 많이 많아진다. 이때 분해가 compact 하게 되는 경향이 있다. Tuncated SVD : 대각 원소 가운데 상위 r개만 추출하여 차원 축소 SVD는 차원 축소를 위한 행렬 분해를 통해 Latent Factor(잠재 요인)을 찾을 수 있는데 이렇게 찾아진 latent Facetor는 많은 분야에 활용(추천 엔진, 문서의 잠재 의미 분석) SVD로 차원 축소 행렬 분해된 후 다시 분해된 행렬을 이용하여 복원된 데이터 셋..

LDA

LDA(Linear Discriminant Analysis) 선형 판별 분석법으로 불리며, PCA와 매우 유사. LAD는 지도학습의 분류에서 사용하기 쉽도로 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소한다. PCA는 분산이 가장 큰 방향으로 축을 찾았으나, LDA는 결정값 클래스를 최대한으로 분리할 수 있는 축을 찾는다. LDA는 같은 클래스의 데이터는 최대한 근접해서, 다른 클래스의 데이터는 최대한 떨어트리는 축 매핑을 한다. - 클래스간 분산은 가장 크게, 클래스 내부 분산은 가장 작게 축소한다. - LDA는 공분산 행렬을 분리하지 않고 클래스간 분산과 클래스 내부 분산 행렬을 생성한뒤, 이 행렬에 기반해 고유벡터를 구한다. -클래스 내부와 클래스 간 분산행렬을 입력데이터의 결..

차원 축소(PCA만)

차원이 커질수록 데이터 포인트들간 거리가 크게 늘어남 데이터가 희소화 됨 수백~수천개 이상의 피처로 구성된 포인트들간 거리에 기반한 ML알고리즘이 무력화됨 피처가 많을경우 개별 피처간에 상관관계가 높아 선형 회귀와 같은 모델에서는 다중 공선성 문제로 모델의 예측 성능이 저하될 가능성이 높다. 그런 피처들을 학습 데이터 크기를 줄여서 학습 시간 절약. 모델 성능 향상에 기여 시각적으로 쉽게 데이터 패턴 인지 어떻게 하면 원본 데이터의 정보를 최대한으로 유지한채 축소할 것인가? 피처선택 : 종속성이 강한 불필요한 피처는 아예 제거, 데이터 특징만 나타내는 주요 피처 선택 피처추출 : 기존 피처를 요약해서 새롭게 피처를 만들어 내는것 -> 차원축소에 적합 단순 압축이 아닌, 피처를 함축적으로 더 잘 설명할수 ..

회귀 트리

사이킷런의 결정트리 및 결정트리 기반의 알고리즘은 분류뿐만 아니라 회귀도 가능하다. 트리가 CART(Classification and Regression Tree)를 기반으로 만들어졌기 때문이다. CART는 분류 뿐만 아니라 회귀도 가능한 트리 분할 알고리즘 이다. CART 회귀 트리는 분류와 유사하게 분할을 하며, 분할 기준은 RSS가 최소가 될 수 있는 기준을 찾아서 분할 된다. 최종 분할이 완료 된 후에 각 분할 영역에 있는 데이터 결정값들의 평균값으로 학습/ 예측 한다. 회귀 트리 역시 복잡한 트리 구조를 가질 경우 오버피팅하기 쉽다. 노드갯수와 트리의 크기를 제한해야한다.

로지스틱 회귀

로지스틱 회귀는 시그모이드 최적곡선을 찾는다. 마법의 확률곡선. 실수값을 확률값으로 변환해주는 활용도가 높은 함수다. 시그모이스 함수의 최적선을 찾고, 이 시그모이드 함수의 ㅂ나환값을 확률로 간주해 확률에 따라 분류를 결정한다. 이름은 회귀지만 분류에 사용된다. 로지스틱 회귀는 주로 이진분류에 사용된다. 반환된 예측값을 예측 확률을 의미한다. 반환된 예측 확률이 0.5 이상이면 1로, 0.5 이하이면 0으로 예측한다. 단순 선형 회귀 : y=w1x + w0 Odds(p) = p/1-p 로그 오즈를 이용한 회귀분석 식 Log(odds(p)) = w1x + w0 p(x) = 1 / 1+e^-(w1x+w0) 로지스틱 회귀는 학습을 통해 시그모이스 함수의 w를 최적화하여 예측한다. 선형회귀는 로지스틱 회귀만큼의..

선형 회귀 모델을 위한 데이터 변환

선형 회귀와 같은 선형 모델들은 일반적으로 데이터 변환을 어떻게 하냐에따라 예측성능이 많이 달라진다. 선형 모델들은 일반적으로 피쳐와 타겟간에 선형적인 관계가 있다고 가정하고 만들어지기 때문에, 데이터 셋트가 정규분포 되어있다고 가정을 기반으로 만들어진 알고리즘들이 많다. 따라서 우리는 데이터들을 모델에 맞게 변환시켜줄 필요가 있다. - 타깃값을 반드시 정규 분포를 가져야한다. 이를 위해 주로 로그 변환을 한다. - 피쳐값도 주로 로그변환을 한다. standardScaler를 사용, MinMaxscaler를 사용. 스케일링/정규화를 수행항 데이터에 다시 다항특성을 적용한다.( 스케일링 정규화가 효과가 없을시) 그다음에도 안되면 피쳐값에 로그변환을 한다. 다항특성을 하면 피쳐값이 많아져서 과적합이 일어나기..

라쏘 회귀

W의 절대값에 페널티를 부여하는 L1규제를 선형 회귀에 적용한것이 Lasso 회귀이다. L1 규제는 alpha * | |W| | 를 의미하며, 라쏘 회귀 비용함수의 목표는 RSS(W) + alpha * | |W| | 식을 최소화 하는 W를 찾는것이다. L2 규제 (Ridge)가 회귀 계수의 크기를 감소시키는데 반해, L1규제는 불필요한 회귀 계수를 아예 0으로 만들고 제거시킨다. L1 규제는 feature selection 의 성격을 띈다. 엘라스틱넷 회귀는 L2규제와 L1규제를 결합한 회귀이다. Lasso는 상관관계가 높은 피쳐들의 경우에 이들중에서 중요피쳐만들 셀렉션하고 다른 피쳐들은 회귀계수를 0으로 만드는 성향이 강하다. -> alpha값에 따른 회귀계수의 값이 급격힌 변동한다. 이를 완화하기 위..

회귀

현대 통계학을 이루는 큰 축 현업에서 더 많이쓰이는 알고리즘 여러개의 독립변수와 한개의 종속변수 간의 상관관계를 모델링 하는 기법을 통칭 Y = W1X1 + W2X2 + W3X3 + ... + WnXn Y는 종속 변수 (결정값) X는 독립 변수 (feature값) W는 회귀 계수 (독립변수의 값에 영향을 미침) 머신러닝 회귀 예측의 핵심은 주어진 피처와 결정값 데이터 기반에서 학습을 통해 최적의 회귀계수를 찾아내는 것이다. 회귀는 회귀계수의 선형/비선형 여부, 독립변수의 개수, 종속변수의 개수에 따라 여러가지 유형으로. 회귀계수의 결합방식에 따라 선형회귀와 비선형회귀로 나눠짐. 대부분의 정형 데이터에는 선형회귀가 훨신 예측 성능이 좋다. 분류는 결과값이 카테고리값이 나옴( 0 또는 1) 회귀는 결과값이 ..