
사이킷런은 다양한 유형의 군집화 알고리즘을 테스트해 보기 위한 간단한 데이터 생성기를 제공합니다. 대표적인 API로 make_blobs()와 make_classification()이 있습니다. make_blobs()는 개별 군집의 중심점과 표준 편차 제어 기능이 추가돼 있으며, make_classification()은 노이즈를 포함한 데이터를 만드는 데 유용하게 사용할 수 있습니다. 둘 다 분류 용도로도 테스트 데이터 생성이 가능합니다. make_blobs()의 사용법을 간략히 알아봅시다. 해당 메서드의 반환값은 피처 데이터 세트와 타깃(군집) 데이터 세트를 담은 튜플입니다. 호출 파라미터는 다음과 같습니다. n_samples: 생성할 총 데이터의 개수. 디폴트는 100. n_features : 데이터의..

K-평균은 군집화(Clustering)에서 가장 일반적으로 사용되는 알고리즘입니다. K-평균은 군집 중심점(centroid)이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법입니다. K-평균 군집화 알고리즘의 동작 방식을 단계별로 살펴봅시다. 먼저 군집화의 기준이 되는 중심을 군집의 개수만큼 임의의 위치에 가져다 놓습니다. 보통 임의의 위치에 중심을 놓게되면 알고리즘이 너무 많이 반복되어 수행 시간이 오래걸리기 때문에 초기화 알고리즘으로 적합한 위치에 중심을 가져다 놓습니다. 각 데이터는 자신과 가장 가까운 중심점에 소속됩니다. 위 그림에서 처음에 A, B 데이터가 같은 중심점에 소속되며, C, E, F 데이터가 같은 중심점에 소속됩니다. 모든 데이터의 소속이 결..

NMF는 Truncated SVD와 같이 낮은 랭크를 통한 행렬 근사 방식의 변형입니다. NMF는 원본 행렬 내의 모든 원소 값이 양수(0 이상)이라는 게 보장되면 아래와 같이 좀 더 간단하게 두 개의 기반 양수 행렬로 분해하는 기법입니다. 행렬 $X$는 $W$와 $H$ 행렬로 분해됩니다. $W$는 일반적으로 원본 행렬의 행 크기와 같고 열 크기보다 작은 행렬(즉, 행이 열보다 김)이며, $H$는 원본 행렬의 행 크기보다 작고 열 크기와 같은 행렬(즉, 열이 행보다 김)입니다. 분해된 행렬을 잠재 요소를 특성으로 가지게 됩니다. 분해 행렬 $W$는 원본 행에 대해서 이 잠재 요소의 값이 얼마나 되는지에 대응하며, $H$는 이 잠재 요소가 원본 열(피처)로 어떻게 구성됐는지를 나타냅니다. NMF는 SVD와..