美文网首页
scikit-learn手册(2)-k-means简单实例

scikit-learn手册(2)-k-means简单实例

作者: 橘猫吃不胖 | 来源:发表于2018-06-12 21:19 被阅读34次

上一回,我们简单了解了scikit-learn,这里我们尝试第一个例子,简单使用下K-means

K-means

聚类算法是一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。

K-means是一种无监督学习算法,是聚类算法中最简单的一种。

基本K-Means算法的思想很简单,事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。由于每次都要计算所有的样本与每一个质心之间的相似度,故在大规模的数据集上,K-Means算法的收敛速度比较慢。

实例

matplotlib手册(11) - 散点图中,我们学会绘制散点图,这里我们就对数据集进行聚类

# -*- coding: utf-8 -*-
"""
Created on Tue Jun 12 17:25:20 2018

@author: guiyang.yu
"""

from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt

#初始化数据集
data=np.random.rand(1000,2)
#指定簇的个数,即分成几类
km=KMeans(n_clusters=3).fit(data)
#标签结果
rs_labels=km.labels_
#每个类别的中心点
rs_center_ids=km.cluster_centers_


#描绘各个点
plt.scatter(data[:,0],data[:,1],c=rs_labels,alpha=0.5)
#描绘质心
plt.scatter(rs_center_ids[:,0],rs_center_ids[:,1],c='red')
plt.show()

这里我们随机生成了1000组数据,聚类为3类,并用颜色来划分为3组,
红点是最后的质心


好了,上面我们就通过简单的调用,练习了简单的聚类使用,KMeans还有很多的参数可以调,我们以后在实际的数据集中再练习。

附录

简单易学的机器学习算法——K-Means算法

相关文章

网友评论

      本文标题:scikit-learn手册(2)-k-means简单实例

      本文链接:https://www.haomeiwen.com/subject/xqsreftx.html