Clustering(聚类)

前言

       在前面我们给大家介绍的机器学习算法都是针对监督学习的,在这一章我们将给大家介绍无监督学习算法,首先我们给大家介绍的就是来解决聚类问题的K均值算法。关于K均值算法只是其中一种无监督学习算法,在后面的学习中,我还会给大家介绍其他的算法。

      最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!

第十一章 Clustering(聚类)

11.1 介绍无监督学习

      在第一章,我们对机器学习分类时,把它分成两类监督学习和无监督学习,我们也简单地对两种方法进行了举例说明,在这里我们将重新对两者进行比较和有一个更好的认识。在前面我们对监督学习进行了详细的介绍,总结一下它的特点就是,我们有一组训练集,每个数据都有一个标签,即我们知道这个数据是输入哪一类的,比如图1所示的两类数据,我们很清楚的知道这是两类数据,他们的训练集是这样的:{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})},我们都很清楚,我们也知道该如何对此进行分类,该如何做出怎样的决策边界是最好的。

                                                                                          图1 监督学习

      而我们的无监督学习却是这样的,它的训练数据集是没有标签的,如图2所示,我们不知道这些数据原本是属于哪一类的,它的训练集是这样的:x^{(1)},x^{(2)},...,x^{(m)},所以我们只能根据哪些数据聚集在一起,然后把他们分成一类,比如图2所示的数据,我们就可以分成这样的两类,这也就是聚类的含义。

                                                                                        图2 无监督学习

       在实际生活中,我们还有很多聚类问题的应用,如图3所示,关于社交网络的分析,天文数据的分析等等,所以聚类问题在生活中还是应用比较广泛的。

扫描二维码关注公众号,回复: 6514260 查看本文章

                                                                                     图3 关于聚类的一些应用

11.2 K-means algorithm(K均值算法)

      在前面我们给大家介绍了关于无监督学习中的聚类问题,那么对于这类问题,我们该如何对数据进行比较好的分类了,下面将给大家介绍一个算法K均值算法,这只是其中一种算法,并不是唯一的,在后面我将给大家介绍其他的算法。下面我们就来看看K均值算法是如何工作的。如图4所示,我们有这样的一组数据,我们任意选择两个标准,即我们想要分成不同的两类,如图5所示,我们选择了两个聚集中心,红色的和蓝色的,接下来我们就需要计算原有的数据和这两个聚集中心的距离,然后进行比较,距离哪一个聚集中心更近,则把它归为这一类,所以我们的数据就会变成这样,如图6所示,然后再重新分别计算两个新的类别里数据的均值,重新定义为两个不同的聚集中心,再又进行计算距离分类,如此重复下去,最终当聚集中心不再改变时,分类就结束了,就成了如图7所示的结果。

                                                                                   图4 一组没有标签的数据

                                                                                    图5 任选两个聚集中心

                                                                             图6 根据聚集中心对数据进行分类

                                                                                       图7 最终分类的结果

       关于K均值算法,上面我们用比较直观的解释让大家清楚了整个的过程,下面我们就算法本身来说说。对于K均值算法,关于它的输入,首先我们会有K种聚集,就是我们要把数据分成几类,第二个输入就是我们的训练集x^{(1)},x^{(2)},...,x^{(m)}。对于我们前面所说的聚集中心,我们用\mu _{1},\mu _{2},...,\mu _{k}来表示,这些聚集中心是任意选择的,还有就是我们重复在做的一件事:

Repeat:

{

     for i=1 to m

        c^{(i)}:=index (from 1 to K) of cluster centroid closest to x^{(i)}

     for k=1 to K

        \mu _{k}:=average (mean) of points assigned to cluster k

}

以上不是真正的算法,只是一个算法的大致框架,这样只是为了让大家更好的理解。在这个算法中,我们一直更新的就是两个c^{(i)}\mu _{k}c^{(i)}即是我们通过计算每个数据和聚集中心的距离,得到最近距离的聚集中心下标。即c^{(i)}=min\left \| x^{(i)}-\mu _{k} \right \|^2,这里的k是第k个聚集中心,是1~K其中的任意一个,然后我们的\mu _{k}就是根据新的分类计算出新的聚集中心,例如假设有c^{(1)}=2,c^{(2)}=2,c^{(5)}=2,c^{(10)}=2,则\mu _{2}=\frac{1}{4}(x^{(1)}+x^{(2)}+x^{(5)}+x^{(10)}),这就是整个算法的实现过程。

      在实际问题中,并不是所有的数据一眼就可以看出需要分成几类的,比如图8中,我们有一组这样的数据,我们通过数据的外形看不出来需要分几类,而我们注意这是关于决定T-shirt大小的问题,可以根据我们实际的要求来进行分类,比如我们需要3种大小的T-shirt,S、M、L,这样我们就可以对数据进行分成3类了。

                                                                               图8 关于T-shirt大小的问题

11.3 优化目标

       在前面给大家介绍监督学习时,我们都会有一个目标函数也称为假设函数,还有一个代价函数,那么在K均值中是否也有了?同样的,我们也有优化的目标。我们先再次给大家回顾下K均值中的一些标记,c^{(i)}就是训练集x^{(i)}距离聚集中心最近的聚集中心下标,\mu _{k}就是第k个聚集中心,而我们又定义一个\mu _{c^{(i)}}就是我们的训练集x^{(i)}经过计算分类后的类别,比如c^{(i)}=5,则\mu _{c^{(i)}}=\mu _{5}。而我们的优化目标就是:J(c^{(1)},c^{(2)},...,c^{(m)},\mu _{1},\mu _{2},...,\mu _{K})=\frac{1}{m}\left \| x^{(i)}-\mu _{c^{(i)}} \right \|^2minJ(c^{(1)},c^{(2)},...,c^{(m)},\mu _{1},\mu _{2},...,\mu _{K})。即我们希望当我们最终分类好了后,每一个聚集类中的数据离对应聚集中心的距离和最小。

       我们在前面有给大家介绍到,关于最开始选择聚集中心的方法,就是任意的选择,在这里我们重新给出一个方法,在这里我们的聚集中心虽然也是任意选择,但是选择的范围是在我们的训练集中选择,而且要求K<m,这大家应该可以理解,分类的类别肯定不能超过我们的训练集的个数,如图9所示,我们对此数据分成两类,K=2,在数据中任意选择两处作为我们的聚集中心。

                                                                          图9 任意选择两个数据作为聚集中心

        在这里既然是任意选择,所以对于图9所示的选择,我们可能最后会得到比较好的分类结果,但是我们选择如果是这样的了。如图10所示,这个时候我们的最后分类结果可能就没有之前那个那么理想了。既然是随机选择,不可避免会出现这样的情况,那么我们该如何解决了?这个时候优化目标就派上了用场了,我们需要进行大量的重复计算,根据开始随机选取的不同聚集中心计算每个的优化目标值,我们可以选择计算100次,或者更多也可以,然后再对每个优化目标的值进行比较选取最小的作为最终的结果,这样就可能会避免局部最优解了。

                                                                    图10 选择了不同两个数据作为训练集中心

11.4 关于K的选择

       关于我们最初需要分成几类,我们还没有一个标准,在这里给大家简单地介绍一个方法,这个方法不是万能的,最终结果可能也不是最理想的,但一般情况是这样的,叫Elbow method,如图11所示,我们把J关于K的图像画出来,会发现和我们的肘关节类似,所以也是因此得名,我们常常会选择转折的那个点作为我们的选择,图11中的,我们就会选择K=3。但有时候J关于K的图像不是这样的,是一个平滑的,如图12所示,这个时候,我们可能没有那么容易选择出K。实际上,我们在选择K时很少会用这样的方法来进行选择,既然是解决实际问题,我们更愿意根据实际情况来对K进行选择,比如T-shirt的大小选择,实际中如果我们需要3中size,那么我们就可以对此进行分成3类,S、M、L,如果需要5中size,那么就分成5类,XS、S、M、L、XL,再根据实际贵客的要求和情况进行改进,所以很多情况我们都会根据实际的需求进行分类。

                                                                                         图11 J关于K的图像(1)

                                                                                     图12 J关于K的图像(2)

猜你喜欢

转载自blog.csdn.net/qq_36417014/article/details/84314188