Python에서 K-평균 클러스터링 알고리즘을 작성하는 방법은 무엇입니까?
K-평균 클러스터링 알고리즘은 속성에 따라 데이터 집합을 분류하고 클러스터링할 수 있는 일반적으로 사용되는 데이터 마이닝 및 기계 학습 알고리즘입니다. 이 기사에서는 Python에서 K-평균 클러스터링 알고리즘을 작성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
코드 작성을 시작하기 전에 K-평균 클러스터링 알고리즘의 기본 원리를 이해해야 합니다.
K-평균 클러스터링 알고리즘의 기본 단계는 다음과 같습니다.
이제 코드 작성을 시작할 수 있습니다.
먼저 numpy, matplotlib 등 필요한 라이브러리를 가져와야 합니다.
import numpy as np import matplotlib.pyplot as plt
클러스터링을 위한 데이터 세트를 준비해야 합니다. 여기서는 numpy를 사용하여 2차원 데이터 세트를 무작위로 생성합니다.
data = np.random.randn(100, 2)
클러스터링 알고리즘을 위해서는 k개 중심을 초기화해야 합니다. 여기서는 numpy를 사용하여 k개의 데이터 포인트를 초기 중심으로 무작위로 선택합니다.
k = 3 centroids = data[np.random.choice(range(len(data)), k, replace=False)]
데이터 지점과 질량 중심 사이의 거리를 계산하는 함수를 정의해야 합니다. 여기서는 유클리드 거리를 사용합니다.
def compute_distances(data, centroids): return np.linalg.norm(data[:, np.newaxis] - centroids, axis=2)
가장 가까운 중심이 나타내는 범주에 각 데이터 포인트를 할당하는 함수를 정의해야 합니다.
def assign_clusters(data, centroids): distances = compute_distances(data, centroids) return np.argmin(distances, axis=1)
중심 위치를 업데이트하는 함수를 정의해야 합니다. 즉, 해당 카테고리에 있는 모든 데이터 포인트의 평균으로 설정해야 합니다.
def update_centroids(data, clusters, k): centroids = [] for i in range(k): centroids.append(np.mean(data[clusters == i], axis=0)) return np.array(centroids)
마지막으로 중심 위치가 더 이상 변하지 않을 때까지 클러스터링 프로세스를 반복해야 합니다.
def kmeans(data, k, max_iter=100): centroids = data[np.random.choice(range(len(data)), k, replace=False)] for _ in range(max_iter): clusters = assign_clusters(data, centroids) new_centroids = update_centroids(data, clusters, k) if np.all(centroids == new_centroids): break centroids = new_centroids return clusters, centroids
이제 클러스터링 알고리즘을 실행하여 각 데이터 포인트가 속하는 범주와 최종 중심을 얻을 수 있습니다.
clusters, centroids = kmeans(data, k)
마지막으로 matplotlib를 사용하여 결과를 시각화할 수 있습니다. 각 데이터 포인트는 해당 카테고리에 따라 색상으로 구분되며, 중심 위치는 빨간색 원으로 표시됩니다.
plt.scatter(data[:, 0], data[:, 1], c=clusters) plt.scatter(centroids[:, 0], centroids[:, 1], s=100, c='red', marker='o') plt.show()
위의 코드 예제를 통해 Python에서 K-평균 클러스터링 알고리즘을 구현할 수 있습니다. 필요에 따라 클러스터 수 k 및 기타 매개변수를 조정할 수 있습니다. 이 글이 K-평균 클러스터링 알고리즘을 이해하고 구현하는 데 도움이 되기를 바랍니다!
위 내용은 Python에서 K-평균 클러스터링 알고리즘을 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!