Python 2

Python을 활용한 KNN 알고리즘

이전 포스팅에서는 머신러닝의 비지도학습 중 대표적인 Clustering을 다뤄봤습니다. 이번에는 머신러닝의 지도학습에 해당하는 KNN 알고리즘에 대해 알아보겠습니다. KNN 알고리즘은 최근접 이웃 알고리즘이라고도 합니다. 새로운 데이터를 입력받았을 때, 이 데이터와 가장 근접한 데이터들의 종류가 무엇인지 확인하고 해당 그룹으로 분류하는 알고리즘입니다. KNN은 아래처럼 3단계에 걸쳐 진행됩니다. 1. 주변 데이터 간의 거리계산하기 2. 가장 근처에 있는 요소 뽑기 3. 분류되는 군집 예측하기 위 그림은 KNN알고리즘의 동작 과정으로 신규 데이터(흰색)가 K값에 따라 분류되는 군집을 Prediction으로 확인할 수 있습니다. 다만, K를 너무 작게 설정하면 과적합이 우려되며 너무 크게 설정하면 데이터 구..

Python을 활용한 K-means Clustering

클러스터링은 비지도 학습기법으로 유사한 유형의 데이터를 그룹화함으로써 숨겨진 구조를 파악합니다. 클러스터링을 활용하면 추천 엔진, 검색 엔진, 시장 세분화 등을 구현할 수 있습니다. K-means Clustering이란? "K"는 주어진 데이터를 그룹화할 수 즉, 클러스터 개수를 말합니다. "Means"는 각 클러스터의 중심과 데이터들의 평균 거리를 의미합니다. 이 때, 클러스터의 중심을 centroids라고 합니다. K-means 알고리즘은 다음과 같은 과정을 수행합니다. 1. 데이터셋에서 K개의 centroids를 임의로 지정. 2. 각 데이터들을 가장 가까운 centroids와 같은 그룹으로 할당. 3. 2번 과정에서 할당된 결과로 centroids를 다시 지정. 4. 2~3번 과정을 반복하면서 c..