大家好,欢迎来到IT知识分享网。
K-均值算法:以空间中k个点为中心进行聚类,对最靠近他们的对象归类,是聚类算法中最为基础但也最为重要的算法。
公式
数据点与各簇中心点距离:
根据距离归类:
中心更新:
Sj: t时刻第j个区域簇;k: 包含在Sj范围内点的个数;xi: 包含在Sj范围内的点;ujt:为t状态下第j区域中心。
算法流程
- 选择聚类的个数k
- 确定聚类中心
- 根据点到聚类中心聚类,确定各个点所属类别
- 根据各个类别数据,更新聚类中心
- 重复以上步骤3和4,直到收敛(中心点不再变化)
优点
- 原理简单,容易实现,收敛速度快
- 参数少,方便使用
缺点
- 必须设置簇的数量
- 随机选择初始聚类中心,结果可能缺乏一致性
模型训练
from sklearn.cluster import KMeans
# n_clusters表示需要分为几类
# random_state表示初始化的点
KM = KMeans(n_clusters=3, random_state=0)
KM.fit(X)
# 获取模型确定的中心点:
centers = KM.cluster_centers_
# 准确率计算
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y, y_predict)
预测结果矫正
y_cal = []
for i in y_predict:
if i == 0:
y_cal.append(2)
elif i == 1:
y_cal.append(1)
else:
y_cal.append(0)
print(y_predict, y_cal)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/62372.html