【机器学习】非监督学习初探—聚类

非监督学习

机器学习有两种,一种是监督学习,另一种是非监督学习。监督学习就是我告诉计算机你把班上同学分个类,分类标准是按照性别,男生和女生;非监督分类就是告诉计算机你自己去把班上同学分个类吧,我不告诉你分类标准。

没有分类标准该如何分类呢?这就需要引入一个新的方法:聚类(Clustering)

聚类

有两个人,一个叫做Sebastian,一个叫做Katie,这两个人对电影有不同的喜好,有一些电影Sebastian认为很好,但是Katie不喜欢看,就是下图左上角的那一堆;而又有一些电影Katie认为很好,但是Sebastian不喜欢看,就是右下角的那一堆。

有了两堆数据,接下来我们就只用把第一堆命名为Class A,第二堆命名为Class B,而不需要知道他们具体是按照电影品味分的。

【机器学习】非监督学习初探—聚类

K-均值 (K-Means)

聚类算法中使用最广泛的就是K-均值算法。

举个例子,下图的红色数据点,按照它们到蓝色点A和蓝色B的距离划分,离A更近的划为一类,可以连接AB,然后取中垂线,在A那边一侧的点就是距离A更近,而距离B更远的点,可以划分为A类

【机器学习】非监督学习初探—聚类

而一个完整的K-均值算法是一个反复迭代的过程,上面的那个过程要不断的进行,具体怎么操作呢?

1.就是面对一大群的数据,假如我们想要分成2类,那么我们就随便在图上找两个点(用黄色和红色的▲来表示)作为分类的中心点,然后计算每一个数据到这两个中心点的距离,距离红色近黄色远的就分类到红色,,距离黄色近红色远的就分类到黄色,直到所有的分类都全部完成

【机器学习】非监督学习初探—聚类

2.把所有红色组数据的平均值作为新的红色中心点的坐标,所有黄色组数据的平均值作为新的黄色中心点的坐标

【机器学习】非监督学习初探—聚类

3.以新的中心点再次进行分类,依然是距离红色近黄色远的就分类到红色,,距离黄色近红色远的就分类到黄色,直到所有的分类都全部完成

【机器学习】非监督学习初探—聚类

4.如此反复,直到所有的数据分组都不再发生变化为止(前面的过程中有些数据有的时候分到了红色组,有的时候分到了黄色组)

【机器学习】非监督学习初探—聚类

我们可以看一个动态的过程,网址是
http://www.naftaliharris.com/blog/visualizing-k-means-clustering/
选择 randomly,Guassian Mixture,然后添加3个中心点,经过多次反复聚类,最终确定中心点的位置

【机器学习】非监督学习初探—聚类

Sklearn中的K-均值

知道了什么K-均值之后就可以直接到Sklearn页面上去查看相关代码了。
点击Sklearn.cluster.KMeans来查看

其中有三个参数很重要:
【机器学习】非监督学习初探—聚类

n_clusters=8

意思就是聚类默认分成8组,但是实际上我们经常要根据具体的数据来设定具体的数值,比方说前面的gif图画中,我们就分成了3组,所以这个数值是需要自己调整的

max_iter=300

这个意思就是说最多进行多少次的调整中心点,其实往往我们的数据进行不到300次分组就已经确定下来了

n_init=10

对数据初始化多少次,这个参数比较难以理解,为什么要初始化很多次呢?因为即使是同样的数据,设置同样数量的中心点,依然可能得到不同的结果。这就是K-均值的局限,所以需要初始化很多次,来查看不同的结果

这里给出一个同样是均匀分布的例子
【机器学习】非监督学习初探—聚类

好啦,这就是非监督学习的中的K-均值聚类算法

你的是对作者莫大的支持哦~????

如果你想看其他的关于机器学习的一些知识,可以关注我的知乎专栏,我是一个机器学习小白,初学者总会遇到各种各样的困难,我会从初学者的角度把每一个坑都给你仔仔细细的讲明白咯~

【机器学习】非监督学习初探—聚类