Analisis kluster ialah kaedah analisis data biasa yang boleh membahagikan set data kepada kumpulan atau kategori yang berbeza. Python menyediakan pelbagai algoritma pengelompokan, dan kita boleh memilih algoritma yang berbeza untuk analisis mengikut keperluan yang berbeza. Artikel ini akan memperkenalkan beberapa algoritma pengelompokan yang biasa digunakan dalam Python dan memberikan contoh aplikasi.
1. Algoritma K-Means
Algoritma K-Means ialah algoritma pengelompokan yang biasa digunakan yang mengumpulkan data berdasarkan jarak Euclidean. Algoritma ini membahagikan set data kepada k kluster, di mana titik tengah setiap kluster ialah min bagi semua ahli kluster. Langkah-langkah khusus algoritma adalah seperti berikut:
Berikut ialah contoh Python menggunakan algoritma K-Means untuk analisis kelompok:
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()
Dalam kod di atas, fungsi make_blobs digunakan untuk menjana set data yang mengandungi 300 sampel mata , termasuk sejumlah 4 kelompok. Kemudian gunakan fungsi KMeans untuk melakukan pengelompokan, nyatakan bilangan kelompok sebagai 4, dan dapatkan hasil pengelasan setiap titik data melalui kaedah fit_predict. Akhir sekali, gunakan Matplotlib untuk merancang hasil pengelompokan.
2. Algoritma pengelompokan hierarki
Algoritma pengelompokan hierarki ialah algoritma pengelompokan bawah ke atas yang menggabungkan data secara beransur-ansur menjadi gugusan yang lebih besar berdasarkan persamaan data. Langkah khusus algoritma adalah seperti berikut:
Berikut ialah contoh Python menggunakan algoritma pengelompokan hierarki untuk analisis kelompok:
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()
Dalam kod di atas, fungsi make_moons digunakan untuk menjana set data yang mengandungi 200 titik sampel , dan gunakan fungsi AgglomerativeClustering untuk pengelompokan, menentukan bilangan gugusan sebagai 2. Akhir sekali, gunakan Matplotlib untuk merancang hasil pengelompokan.
3. Algoritma DBSCAN
Algoritma DBSCAN ialah algoritma pengelompokan berasaskan ketumpatan yang boleh membahagikan titik data kepada kelompok yang berbeza berdasarkan kepadatan set data. Langkah khusus algoritma adalah seperti berikut:
Berikut ialah contoh Python menggunakan algoritma DBSCAN untuk analisis kelompok:
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()
Dalam kod di atas, set data yang mengandungi 200 titik sampel dijana menggunakan fungsi make_moons, dan Pengelompokan dilakukan menggunakan fungsi DBSCAN, menentukan ambang untuk jejari dan bilangan minimum sampel. Akhir sekali, gunakan Matplotlib untuk merancang hasil pengelompokan.
Ringkasan
Artikel ini memperkenalkan tiga algoritma pengelompokan yang biasa digunakan dalam Python dan memberikan contoh aplikasi yang sepadan. Algoritma pengelompokan ialah kaedah analisis data yang sangat berguna yang boleh membantu kami menemui corak dan perhubungan tersembunyi dalam data. Dalam aplikasi praktikal, kita boleh memilih algoritma yang berbeza untuk analisis berdasarkan ciri dan keperluan data.
Atas ialah kandungan terperinci Contoh analisis kluster dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!