본문 바로가기

전체 글128

[ML] DBSCAN(Density Based Spatial Clustering of Applications with Noise) -목차- 1. DBSCAN 2. DBSCAN의 작동원리 DBSCAN 테스팅 코드 : DBSCAN_test(K-means, GMM 비교) 1. DBSCAN의 개요 DBSCAN은 간단하고 직관적인 알고리즘으로 돼있음에도 데이터 분포가 기하학적으로 복잡한 데이터에도 효과적인 clustering이 가능하다. 아래와 같이 내부의 원 모양과 외부의 원 모양 형태의 분포를 가진 데이터를 clustering 한다고 가정할 때 K-means, Means-Shift, GMM으로는 효과적인 군집화를 수행하기가 어렵다. DBSCAN은 특정 공간 내에 데이터 밀도 차이를 기반 알고리즘으로 하고 있어 복잡한 기하학적 분포도를 가진 데이터에 대해서도 clustering을 잘 수행한다. 2. DBSCAN의 작동원리 먼저 DBSCAN.. 2022. 3. 2.
[ML] GMM(Gaussian Mixture Model) -목차- 1. GMM(Gaussian Mixture Model) 2. 모수 추정 3. GMM의 동작 원리 1. GMM(Gaussian Mixture Model) GMM은 clustering을 적용하고자 하는 데이터가 여러 개의 가우시안 분포를 가진 데이터 집합들이 섞여서 생성된 것이라는 가정하에 군집화를 수행하는 방법이다. GMM은 데이터를 여러 개의 가우시안 분포가 섞인 것으로 간주하므로 섞인 데이터 분포에서 개별 유형의 가우시안 분포를 추출한다. 따라서 전체 dataset은 서로 다른 정규 분포 형태를 가진 여러 가지 확률 분포 곡선으로 구성될 수 있으며, 이러한 서로 다른 정규 분포에 기반해 군집화를 수행하는 것이 GMM 군집화 방식이며, 각각의 개별 데이터가 어떤 정규 분포에 속하는지 결정하는 방.. 2022. 3. 2.
[ML] 평균 이동(Mean Shift) 군집화 -목차- 1. 평균 이동(Mean Shift)의 개요 2. 커널 함수(Kernal Function) 3. KDE(Kernal Density Estimation) 1. 평균 이동(Mean Shift)의 개요 평균 이동(Mean Shift)은 K-means와 유사하게 중심(centroid)을 cluster의 중심으로 지속적으로 움직이면서 군집화를 수행한다. 하지만 K-means가 중심에 소속된 데이터의 평균 거리 중심으로 이동하는데 반해, 평균 이동은 중심을 데이터가 모여 있는 밀도가 가장 높은 곳으로 이동시킨다. 평균 이동 군집화는 데이터의 분포도를 이용해 cluster의 중심점을 찾는다. 중심점은 데이터 포인트가 모여있는 곳이라는 생각에서 착안한 것이며 이를 위해 확률 밀도 함수(probability .. 2022. 3. 2.
[ML] K-평균(K-means) 알고리즘 -목차- 1. K-평균(K-Means) 알고리즘이란? 2. 군집 평가(Cluster Evaluation) 2.1 실루엣 분석(Silhouette analysis) iris 데이터 K-means 테스트 코드 : iris_K-means_test 1. K-평균(K-Means) 알고리즘이란? K-평균은 군집화(Clustering)에서 가장 일반적으로 사용되는 알고리즘이다. K-평균은 군집 중심점(centroid)이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법이다. 군집 중심점은 선택된 포인트의 평균 지점으로 이동하고 이동된 중심점에서 다시 가까운 포인트를 선택, 다시 중심점을 평균 지점으로 이동하는 프로세스를 반복적으로 수행한다. 모든 데이터 포인트에서 더 이상 중심.. 2022. 3. 1.
[ML] 특이값 분해(Singular Value Decomposition, SVD) -목차- 1. 특이값 분해(SVD)의 개요 2. SVD의 기하학적 의미 3. SVD의 수학적 의미 4. SVD의 목적 5. Full SVD와 Truncated SVD 1. 특이값 분해(SVD)의 개요 특이값 분해(SVD) 역시 PCA와 유사한 행렬 분해 기법을 이용한다. PCA의 경우 정방 행렬만을 고유 벡터로 분해할 수 있지만, SVD는 정방 행렬뿐만 아니라 행과 열의 크기가 다른 행렬에도 적용할 수 있다. 일반적으로 SVD는 임의의 \(m\times n\)차원의 행렬 \(A\)에 대하여 다음과 같이 행렬을 분해할 수 있다는 ‘행렬 분해(decomposition)’ 방법 중 하나이다. \[A = U\Sigma V^T\] 행렬 \(U\)와 \(V\)에 속한 벡터는 특이 벡터(singular vector).. 2022. 3. 1.
고유값(EigenValue)과 고유벡터(EigenVector) -목차- 1. 고유값(EigenValue)과 고유벡터(EigenVector)의 정의 2. 예시를 통한 고유값과 고유벡터 계산하기 1. 고유값(EigenValue)와 고유 벡터(EigenVector)의 정의 0이 아닌 벡터\(\overrightarrow{x}\)를 임의의 \(n\times n\) 행렬 \(A\)로 선형 변환 하였을때 벡터 \(\overrightarrow{x}\)에 스칼라 값 \(\lambda \)를 곱한 값과 같다면 \(\lambda \)는 행렬 \(A\)의 고유값이라 할 수 있다. \[A\overrightarrow{x} = \lambda \overrightarrow{x}\] 이때 벡터 \(\overrightarrow{x}\)는 고유값 \(\lambda \)에 대응하는 고유 벡터이다. 이때.. 2022. 2. 28.