본문 바로가기

ML with SckitLearn

(24)
[DBSCAN] 밀도기반 군집화 Cluster Algorithm 밀도 기반 군집화의 대표적인 알고리즘으로 DBSCAN(Density Based Spatial Clustering of Applicayions with Noise)이 있습니다. DBSCAN은 특정 공간 내에 데이터 밀도 차이를 기반 알고리즘으로 하고 있어서 복잡한 기하학적 분포도를 가진 데이터 세트에 대해서도 군집화를 잘 수행합니다. DBSCAN 용어정리 ˙ Epsilon (입실론 주변 영역): 개별 데이터를 중심으로 입실론 반경을 가지는 원형의 영역입니다. ˙ Min Points(최소 데이터 개수): 개별 데이터의 입실론 주변 영역에 포함되는 타 데이터의 개수입니다. ˙ Core Point(핵심 포인트): 주변 영역 내에 최소 데이터 개수 이상의 타 데이터를 가지고 있을 경우 해당 데이터를 핵심 포인트라..
Estimator의 이해와 fit(), predict(), accuracy_score() Method 사이킷런은 ML Model 학습을 위해서 fit()을, 학습된 모델의 예측을 위해 predict()메서드를 제공합니다. 지도 학습의 두 축인 분류와 회귀의 다양한 알고리즘을 구현한 모든 사이킷런 클래스는 fit()과 predict()으로 학습과 예측결과를 반환합니다. 비지도학습인 차원축소, 클러스터링, 피처 추출등을 구현한 클래스 역시 fit()과 transform()을 적용합니다. 사이킷런은 fit()과 transform()을 하나로 결합한 fit_transform()도 제공합니다. Estimator 학습: fit() 예측: predict() 분류 (Classifier) DecisionTreeClassifier RandomForestClassifier GradientBoostingClassifier S..
[GMM] Gaussian Mixture Model 개요에 대해 GMM들어가기전! 가우시안 분포란? 도수 분포 곡선이 평균값을 중심으로 좌우 대칭을 이루는 것이다. 모든 측정에서 중복으로 실험했을 경우 결과 값이 완전 똑같이 이루어지는 경우는 거의 없으며, 약간의 오차를 수반하게 된다. 가우스는 측정오차의 분포에서 중요성을 강조하였고, 이를 가우스 분포, 오차분포라고 한다. 또한 이러한 곡선을 가우스 곡선이라 한다. 1. GMM(Gaussian Mixture Model) 개요 군집화를 적용하고자 하는 데이터가 여러 개의 가우시안 분포를 가진 데이터 집합들이 섞여서 생성된 것이라는 가정하에 군집화를 수행하는 방법 전체 데이터 세트는 서로 다른 정규 분포 형태를 가진 여러 가지 확률 분포 곡선으로 구성될 수 있으며, 이러한 서로 다른 정규 분포에 기반해 군집화를 수행하는..
실루엣 분석(Silhouette Analysis) : Clustering 적절성 분석 군집화 평가 방법으로 실루엣 분석(Shilhouette Analysis)이 있습니다. 실루엣 분석은 각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타냅니다. 효율적으로 잘 분리됐다는 것은 다른 군집과의 거리는 떨어져 있고 동일 군집끼리의 데이터는 서로 가깝게 잘 뭉쳐 있다는 의미입니다. 군집화가 잘 될수록 개별 군집은 비슷한 정도의 여유공간을 가지고 떨어져 있을 것입니다. 사이킷런은 실루엣 분석을 위한 메소드를 제공하며 좋은 군집화가 되려면 다음 기준 조건을 만족해야 합니다. 전체 실루엣 계수의 평균값, 즉 사이킷런의 shihoutte_score()값은 0~1사이의 값을 가지며, 1에 가까울수록 좋습니다. 하지만 전체 실루엣 계수의 평균값과 더불어 개별 군집의 평균값의 편차가 크지 않아야 합니..
차원 축소 (Dimension Reduction) 개요 대표적인 Dimension Reduction 알고리즘은 PCA, LDA, SVD, NMF가 있습니다. 차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것입니다. 일반적으로 차원이 증가할수록 데이터 포인트 간의 거리가 기하급수적으로 멀어지게 되고, 희소(sparse)한 구조를 가지게 됩니다. 수백 개 이상의 Feature로 구성된 데이터 세트의 경우 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어집니다. 또한 피처가 많은 경우 개별 Feature 간에 상관관계가 높을 가능성이 큽니다. 이런 이유로 많은 다차원의 피처를 차원 축소해 피처 수를 줄이면 더 직관적으로 데이터를 해석할 수 있습니다. 가령 수십 개 이상의 피처가 있는 데이터..
PCA(Principal Component Analysis) : 차원축소(Dimension Reduction) 1. PCA개요 PCA(Principal Component Analysis)는 가장 대표적인 차원 축소 기법입니다. 여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분(Principan component)을 추출해 차원을 축소하는 기법입니다. PCA로 차원을 축소할 때는 기존 데이터의 정보 유실이 최소화되는 것이 당연합니다. 이를 위해서 PCA는 가장 높은 분산을 가지는 데이터의 축을 찾아 이 축으로 차원을 축소하는데, 이것이 PCA의 주성분이 됩니다. (즉, 분산이 데이터의 특성을 가장 잘 나타내는 것으로 간주합니다.) 2. PCA Process Step 입력 데이터 세트의 공분산 행렬을 생성합니다. 공분산 행렬의 고유벡터와 고유값을 계산합니다. 고유값이 가장 큰 순으로 K개(PCA 변환 ..
사이킷런(Scikit-Learn)의 내장 데이타 세트 : IRIS (load_iris()) 사이킷런에는 별도의 외부 웹사이트에서 데이터 세트를 내려받을 필요 없이 예제로 활용할 수 있는 간단하면서도 좋은 데이터 세트가 내장돼 있습니다. 이 데이터는 datasets모듈에 있는 여러 API를 호출해 만들 수 있습니다. ●분류나 회귀 연습용 예제 데이터 API명 설명 datasets.load_iris() 분류 용도이며, 붓꽃에 대한 피처를 가진 데이터 세트 사이킷런에 내장된 이 데이터 세트는 일반적으로 딕셔너리 형태로 돼 있습니다. 키는 보통 data, target, target_name, feature_names, DESCR로 구성돼 있습니다. data : 피처의 데이터 세트 target : 분류 시 레이블 값, 회귀일 때는 숫자 결과값 데이터 Set target_names : 개별 레이블의 이름..
[K-Means] K-평균 Clustering 알고리즘 이해 K-평균은 군집화(Clustering)에서 가장 일반적으로 사용되는 알고리즘입니다. K-평균은 군집 중심점(centroid)이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법입니다. 1. K-Means Algorithm 이해하기 군집 중심점은 선택된 포인트의 평균 지점으로 이동하고 이동된 중심점에서 다시 가까운 포인트를 선택, 다시 중심점을 평균 지점으로 이동하는 프로세스를 반복적으로 수행합니다. 모든 데이터 포인트에서 더이상 중심점의 이동이 없을 경우에 반복을 멈추고 해당 중심점에 속하는 데이터 포인트들을 군집화하는 기법입니다. 2. K-Means Algorithm 장점 일반적인 군집화에서 가장 많이 활용되는 알고리즘입니다. 알고리즘이 쉽고 간결 3. K-Mea..