一维数据K-Means聚类:Python实现及可视化
以下是一个简单的例子,展示了如何用Python进行一维整型数据的K-means聚类和可视化。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成一维整型数据
X = np.random.randint(0, 100, size=100)
# 学习合适的centers的数量
inertias = []
ks = range(1, 10)
for k in ks:
model = KMeans(n_clusters=k)
model.fit(X.reshape(-1, 1))
inertias.append(model.inertia_)
# 可视化inertias
plt.plot(ks, inertias, '-o')
plt.xlabel('number of clusters, k')
plt.ylabel('inertia')
plt.xticks(ks)
plt.show()
# 使用合适的centers数量进行聚类
k = 3 # 这里选择k=3
model = KMeans(n_clusters=k)
model.fit(X.reshape(-1, 1))
y = model.predict(X.reshape(-1, 1))
# 可视化聚类结果
colors = ['r', 'g', 'b']
for i in range(k):
plt.scatter(X[y==i], np.zeros_like(X[y==i]), c=colors[i], label='cluster ' + str(i+1))
plt.legend()
plt.show()
这个例子生成了100个整型数据,并使用K-means算法进行聚类,学习到最好的cluster数量为3。最终将聚类结果可视化,将每个cluster用不同颜色的点表示出来。
原文地址: https://www.cveoy.top/t/topic/nGW3 著作权归作者所有。请勿转载和采集!