Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh analisis kluster dalam Python

Contoh analisis kluster dalam Python

王林
王林asal
2023-06-10 12:30:073100semak imbas

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:

  1. Pilih k titik secara rawak sebagai pusat kluster awal.
  2. Kira jarak semua titik data dari pusat kelompok dan kelaskan setiap titik data ke dalam kelompok terdekat.
  3. Kira semula titik tengah setiap kelompok berdasarkan keputusan pengelasan baharu.
  4. Ulang langkah 2 dan 3 sehingga gugusan tidak lagi berubah atau bilangan lelaran yang ditentukan dicapai.

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:

  1. Anggap setiap titik data sebagai gugusan yang berasingan.
  2. Kira jarak antara dua gugusan terdekat.
  3. Gabungkan dua gugusan terdekat menjadi gugusan baharu.
  4. Ulang langkah 2 dan 3 sehingga semua gugusan digabungkan menjadi satu gugusan atau bilangan gugusan yang ditentukan tercapai.

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:

  1. Pilih titik data yang belum dilawati secara rawak sebagai titik teras.
  2. Cari semua titik yang jaraknya dari titik teras tidak melebihi jejari tertentu sebagai kawasan ketumpatan yang boleh dicapai berpusat pada titik teras.
  3. Jika titik berada dalam kawasan ketumpatan yang boleh dicapai titik teras yang lain, gabungkannya dan titik teras menjadi satu gugusan.
  4. Ulang langkah 1 hingga 3 sehingga tiada titik teras baharu dilawati.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn