无监督学习——KMeans使用
Posted 广目天王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无监督学习——KMeans使用相关的知识,希望对你有一定的参考价值。
在当我们获得的数据没有标签时,我们依然希望通过算法学习找到这些数据的特点,这时就用到了KMeans (k均值聚类)把数据点聚类成K个簇
文档地址:
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
class sklearn.cluster.
KMeans
(n_clusters=8, init=’k-means++’, n_init=10, max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm=’auto’)
在以上所有的参数中其中有三个参数需要非常注意
n_clusters=8 聚类的数量(簇的数量),默认是8.但这个我们一般都需要调整
n_init=10 初始化的数量。 不同的初始化状况,聚心的位置不同,决定了算法聚类的结果。初始化10次,会得到10个聚类的集合。可以从中选择认为合适的聚类。在认为数据
难以进行分配的时候,可以调大这个值。
max_iter=300 算法迭代最大次数。每一次迭代都会重新 移动聚类中心 (聚心)的位置,和分配点,绝大部分情况下算法在达到最大值之前一般都停止了,
所以这个大部分情况下不用调整,默认就行。
1 from sklearn.cluster import KMeans 2 import numpy as np 3 X = np.array([[1, 2], [1, 4], [1, 0], 4 [4, 2], [4, 4], [4, 0]]) 5 kmeans = KMeans(n_clusters=2, random_state=0).fit(X) 6 kmeans.labels_ #返回每个点的标签
array([0, 0, 0, 1, 1, 1], dtype=int32)
8 kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
9 kmeans.cluster_centers_ #返回聚心位置
array([[ 1., 2.],
[ 4., 2.]])
以上是关于无监督学习——KMeans使用的主要内容,如果未能解决你的问题,请参考以下文章