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

上一回,我们简单了解了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算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 聚类算法 前面介绍的集中算法都是属于有监督机器学习方法,这章和前面不同,介绍无监督学习算法,也就是聚类算法。在无监...
    飘涯阅读 41,508评论 3 52
  • 机器学习算法与Python实践这个系列主要是参考《机器学习实战》这本书。因为自己想学习Python,然后也想对一些...
    MiracleJQ阅读 12,412评论 0 0
  • 姓名:崔升 学号:14020120005 转载自:http://www.cnblogs.com/en-heng/...
    冬瓜小正太阅读 1,275评论 0 0
  • 正值春暖花开,画了一幅古典韵味的美女图。 线稿 先画叶子 继续装饰 旗袍 亭亭玉立的,很美。不上色也很好看呢,最后...
    手绘穿搭师阅读 718评论 2 12
  • 今天下午回到家,外婆独自坐在沙发上一言不发,我招呼了一声“外婆,我回来啦”然后径直走向了卧室。我想一定家里又发生了...
    杨丽Molly阅读 1,423评论 0 3