码迷,mamicode.com
首页 > 其他好文 > 详细

0A04 无监督学习:聚类(1) k-means

时间:2019-06-21 22:37:46      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:多少   坐标   random   center   策略   引入   and   参数   迭代   

  这是一个非常简单的聚类算法,算法的目的就是找到这些中心点的合适坐标,使得所有样本到其分组中心点距离的平方和最小.

  K-means 的中心点向量不一定是训练样本中某成员的位置

import numpy as np
from sklearn.cluster import KMeans # 引入K-means模型

# 1.训练和预测
X = np.array([[1,2],[1,4],[1,0],
[4,2],[4,4],[4,0]])
kmeans = KMeans(n_clusters=2,random_state=0).fit(X) # 训练
print(kmeans.labels_) # 训练数据的聚类结果
print(kmeans.predict([[0,0],[4,4]])) # 预测数据的类型

# 2.中心点与收敛值
print(kmeans.cluster_centers_) # 打印收敛中心
print(kmeans.inertia_) # 打印最短距离C值

# 3.查询距离
print(kmeans.transform([[4,2],[4,4]])) # 查询两个向量到中心点的距离

# 4.score()函数
# 测试数据离中心点越远分值越低
print(kmeans.score([2,2],[5,3]))
# Out -3.0 离中心点较远
print(kmeans.score([1,2],[4,2]))
# Out -0.0 测试数据即中心点

# 5.常用的初始化参数
‘‘‘
n_clusters: 把整体数据集分为几个组
init: 初始中心结点的选择策略
max_iter: 最多进行几次重新计算中心点的迭代
tol: inertia_(C值)小于多少时认为已经收敛并停止迭代
n_init: 进行几轮结点初始化和迭代
‘‘‘

0A04 无监督学习:聚类(1) k-means

标签:多少   坐标   random   center   策略   引入   and   参数   迭代   

原文地址:https://www.cnblogs.com/liu247/p/11066969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!