k-means
- 先任取k个样本点作为k个簇的初始中心;
- 对每一个样本点,计算它们与k个中心的距离,把它归入距离最小的中心所在的簇;
- 等到所有的样本点归类完毕,重新计算k个簇的中心;
- 重复以上过程直至样本点归入的簇不再变动。
别人的代码举例
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.cluster import KMeans
from sklearn.datasets.samples_generator import make_blobs
from sklearn import metrics
import matplotlib.pyplot as plt
x,y = make_blobs(n_samples=1000,n_features=4,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.4],random_state=10)
k_means = KMeans(n_clusters=3, random_state=10)
k_means.fit(x)
y_predict = k_means.predict(x)
plt.scatter(x[:,0],x[:,1],c=y_predict)
plt.show()
print(k_means.predict((x[:30,:])))
print(metrics.calinski_harabaz_score(x,y_predict))
print(k_means.cluster_centers_)
print(k_means.inertia_)
print(metrics.silhouette_score(x,y_predict))
————————————————
版权声明:本文为优快云博主「半路转行程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://

本文介绍了两种常见的聚类算法——K-Means和层次聚类。K-Means算法中,先随机选取k个样本点作为初始中心,通过迭代将样本点分配到最近的簇,并更新簇中心,直至簇不再变动。层次聚类则分为凝聚型和分裂型,需要预先设定簇的数量k,其初始质心选择和时间复杂度对结果有一定影响。文中给出了两种算法的Python代码示例,并展示了聚类结果。
最低0.47元/天 解锁文章
2259

被折叠的 条评论
为什么被折叠?



