一、聚类学习算法实现
- 随机设置K个特征空间内的点作为初始的聚类中心
- 对于其他每个点计算到K个中心点的距离(欧氏距离),未知的点选择最近的一个中心点作为标记类别
- 聚类完成之后,计算每个类别的中心点(平均值)
- 如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第2步过程
二、案例
1.引入库
代码如下(示例):
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import calinski_harabaz_score
2.程序代码
#创建数据集
# cluster_std 分布,值越大越分散
# n_features 几个特征
# centers 中心点
X,y = make_blobs(n_samples=100,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.1,0.1,0.1],random_state=1)
plt.scatter(X[:,0],X[:,1],c=y)
plt.show()
# 训练
# n_clusters 聚成几类
estimator = KMeans(n_clusters=4,random_state=2)
pre = estimator.fit_predict