클러스터 분석은 데이터 세트를 여러 그룹이나 범주로 나눌 수 있는 일반적인 데이터 분석 방법입니다. Python은 다양한 클러스터링 알고리즘을 제공하며 다양한 요구에 따라 분석을 위해 다양한 알고리즘을 선택할 수 있습니다. 이 기사에서는 Python에서 일반적으로 사용되는 클러스터링 알고리즘을 소개하고 예제 응용 프로그램을 제공합니다.
1. K-평균 알고리즘
K-평균 알고리즘은 유클리드 거리를 기준으로 데이터를 그룹화하는 일반적으로 사용되는 클러스터링 알고리즘입니다. 이 알고리즘은 데이터 세트를 k개의 클러스터로 나눕니다. 여기서 각 클러스터의 중심점은 클러스터의 모든 구성원의 평균입니다. 알고리즘의 구체적인 단계는 다음과 같습니다.
다음은 K-Means 알고리즘을 사용한 클러스터 분석의 Python 예입니다.
import numpy as np from sklearn.cluster import KMeans from sklearn.datasets import make_blobs import matplotlib.pyplot as plt # 生成随机数据 X, y = make_blobs(n_samples=300, centers=4, random_state=42) # 运行 K-Means 算法 kmeans = KMeans(n_clusters=4, random_state=42) y_pred = kmeans.fit_predict(X) # 绘制聚类结果 plt.scatter(X[:, 0], X[:, 1], c=y_pred) plt.title("K-Means Clustering") plt.show()
위 코드에서 make_blobs 함수는 총 4개의 클러스터를 포함하는 300개의 샘플 포인트가 포함된 데이터 세트를 생성하는 데 사용됩니다. 그런 다음 KMeans 함수를 사용하여 클러스터링을 수행하고 클러스터 수를 4로 지정하고 fit_predict 메소드를 통해 각 데이터 포인트의 분류 결과를 얻습니다. 마지막으로 Matplotlib를 사용하여 클러스터링 결과를 플로팅합니다.
2. 계층적 클러스터링 알고리즘
계층적 클러스터링 알고리즘은 데이터의 유사성을 기반으로 데이터를 점차적으로 더 큰 클러스터로 병합하는 상향식 클러스터링 알고리즘입니다. 이 알고리즘의 구체적인 단계는 다음과 같습니다.
다음은 군집 분석을 위해 계층적 군집화 알고리즘을 사용하는 Python 예제입니다.
from sklearn.cluster import AgglomerativeClustering from sklearn.datasets import make_moons import matplotlib.pyplot as plt # 生成随机数据 X, y = make_moons(n_samples=200, noise=0.05, random_state=42) # 运行层次聚类算法 agglomerative = AgglomerativeClustering(n_clusters=2) y_pred = agglomerative.fit_predict(X) # 绘制聚类结果 plt.scatter(X[:, 0], X[:, 1], c=y_pred) plt.title("Agglomerative Clustering") plt.show()
위 코드에서 make_moons 함수는 200개의 샘플 포인트가 포함된 데이터 세트를 생성하는 데 사용되며, AgglomerativeClustering 함수는 군집화에 사용됩니다. 지정하는 클러스터 수는 2입니다. 마지막으로 Matplotlib를 사용하여 클러스터링 결과를 플로팅합니다.
3. DBSCAN 알고리즘
DBSCAN 알고리즘은 데이터 세트의 밀도에 따라 데이터 포인트를 여러 클러스터로 나눌 수 있는 밀도 기반 클러스터링 알고리즘입니다. 알고리즘의 구체적인 단계는 다음과 같습니다.
다음은 클러스터 분석을 위해 DBSCAN 알고리즘을 사용하는 Python 예제입니다.
from sklearn.cluster import DBSCAN from sklearn.datasets import make_moons import matplotlib.pyplot as plt # 生成随机数据 X, y = make_moons(n_samples=200, noise=0.05, random_state=42) # 运行 DBSCAN 算法 dbscan = DBSCAN(eps=0.2, min_samples=5) y_pred = dbscan.fit_predict(X) # 绘制聚类结果 plt.scatter(X[:, 0], X[:, 1], c=y_pred) plt.title("DBSCAN Clustering") plt.show()
위 코드에서 make_moons 함수는 200개의 샘플 포인트가 포함된 데이터 세트를 생성하는 데 사용되며, DBSCAN 함수는 클러스터링에 사용됩니다. 반경과 최소 샘플 수를 지정합니다. 마지막으로 Matplotlib를 사용하여 클러스터링 결과를 플로팅합니다.
요약
이 문서에서는 Python에서 일반적으로 사용되는 세 가지 클러스터링 알고리즘을 소개하고 해당 예제 응용 프로그램을 제공합니다. 클러스터링 알고리즘은 데이터에 숨겨진 패턴과 관계를 발견하는 데 도움이 되는 매우 유용한 데이터 분석 방법입니다. 실제 적용에서는 데이터의 특성과 요구 사항에 따라 다양한 분석 알고리즘을 선택할 수 있습니다.
위 내용은 Python의 클러스터 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!