2020. 12. 15. 14:55ㆍmachine learning
※ 본 카테고리의 글은 책<파이썬머신러닝완벽가이드(권철민)> 및 다른 자료들을 참고하여 작성되었습니다. ※
code in github:github.com/chaeyeongyoon/PythonML_Study
chaeyeongyoon/PythonML_Study
Contribute to chaeyeongyoon/PythonML_Study development by creating an account on GitHub.
github.com
Clustering은 비지도 학습 중 하나로, data를 몇 개의 cluster(부분 그룹)으로 나누는 과정을 의미합니다. 클러스터 내부 멤버들 사이는 서로 가깝게, 서로 다른 두 클러스터 사이의 멤버 간에는 서로 멀게 하는 것이 클러스터링의 목표입니다.
1. K-means algorithm
clustering에서 가장 일반적인 방법으로, 쉽고 간결합니다.
- 임의의 특정 지점을 cluster centroid(중심점, k개)으로 선택 후 가장 가까운 points를 선택
- 이들의 평균 지점으로 다시 centroid 지정.
- 이 두가지 step을 반복하다가 중심점을 이동해도 data들의 소속 변경이 없으면 군집화 완료
이 알고리즘은 거리 기반이라서 속성이 많으면 정확도가 떨어지기 때문에 PCA 등의 차원감소를 적용시켜주어야 합니다.
반복횟수가 많으면 수행시간이 오래걸리는 단점이 있고, 몇개의 cluster을 선택해야하는지 결정하기가 어렵습니다.
또한 중심점 초기값에 따라 결과가 달라질 수 있습니다.
원형의 범위일수록 효율이 높아요. 타원형이면 성능이 떨어집니다ㅠㅠ

2. Mean-Shift Algorithm (평균이동)
K-means와 유사하게 군집 중심을 이동하며 군집화를 진행하지만, 중심에 소속된 데이터의 평균 거리 중심으로 이동하는 k-means와 달리 평균이동은 데이터가 모여있는 밀도가 가장 높은 곳으로 중심을 이동합니다.
데이터가 집중되어 있는 곳 = 확률밀도 함수(Probability density function)값이 높은 곳
확률밀도 함수(Probability density function)는 KDE(Kernel Density Estimation)으로 구합니다.
데이터세트 형태를 특정형태로 가정하거나 특정 분포도 기반 모델로 가정하지 않기 때문에 유연한 군집화가 가능하고 이상치의 영향력이 작습니다. 군집개수를 우리가 정하지 않습니다. (자동으로 정해짐)
이때문에 컴퓨터 비전 영역에서 주로 사용하는 알고리즘으로, 특정개체를 구분하고 움직임을 추적하는 기능이 뛰어납니다.
그렇지만 수행시간이 오래걸리고 bandwidth크기의 영향도가 크다는 단점이 있습니다.

KDE | ![]() K = kernel function ex) gaussian kernel h = bandwidth(대역폭), KDE의 형태를 부드럽게 smoothing(평활화)하는 역할로, KDE성능을 좌우한다 ![]() x = 확률 변숫값 ![]()
|
확률변수의 분포를 나타내는 것으로, 정규분포, 감마분포, t-분포 등이 있다. 변수의 특성(평균, 분산 등) 및 확률 분포 등 많은 정보를 제공한다. |
3. GMM (Gaussian Mixture Model)
군집화를 적용할 데이터가 여러개의 가우시안 분포를 가진 데이터집합들이 섞여 생성된 것이라는 가정하에 군집화를 수행합니다.
(확률과 통계는 참 재밌는데 배울수록 어려워요...)

※ 모수추정 : 표본평균으로 모평균(소요시간)을 추정하는 대신 신뢰수준을 설정하고 그 신뢰수준에서 모평균이 속할 범위(신뢰구간이라고 함)를 제시한다.
신뢰구간 | ![]() 오차범위는 표준오차(Standard Error)에 유의수준의 z-값을 곱한 값 |
표준오차 | ![]() |
오차범위 | ![]() |
GMM은 모수추정을 위해 EM(Expectation and Maximization)을 사용합니다.
GMM은 확률 기반 알고리즘 이라서 거리기반인 K-Means보다는 좀 더 유연하게 다양한 dataset에 잘 적용될 수 있습니다.
( EM(기댓값 최대화 알고리즘) : 기댓값 최대화 알고리즘은 관측되지 않는 잠재변수에 의존하는 확률 모델에서 최대가능도나 최대사후확률을 갖는 모수의 추정값을 찾는 반복적인 알고리즘이다. 출처 위키백과..이정도만알아두자)
4. DBSCAN ( Density Based Spatial Clustering of Applications With Noise )
대표적인 밀도기반 clustering 알고리즘으로, 기하학적으로 복잡한 dataset에도 효과적입니다.

중요파라미터 | |
epsilon | 개별 데이터 중심으로 입실론 반경가지는 원형의 영역 |
min points | 개별데이터의 입실론 주변 영역에 포함되는 타데이터 개수 |
데이터 포인트 정의 | |
core point | 주변영역 내에 최소데이터 개수 이상의 타데이터를 갖고 있는 데이터 |
neighbor point | 주변 영역 내에 위치한 타데이터 |
border point | 주변 영역 내 최소 데이터 개수 이상의 이웃포인트를 가지고있지는 않지만 core point를 neighbor point로 갖고 있는 데이터 |
noise point | 최소 데이터 개수 이상의 이웃포인트를 가지고 있지도 않고 core point도 neighbor point로 갖고 있지 않은 데이터 ( core / border 둘 다 아닌거 ) |

'machine learning' 카테고리의 다른 글
차원축소 (Demension Reduction) (0) | 2020.12.14 |
---|---|
Regression (회귀) (0) | 2020.12.14 |
Classification (0) | 2020.12.14 |
머신러닝 기초 지식 (0) | 2020.12.14 |