数据科学家之路——了解一下聚类算法

Posted 科研圈的小强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据科学家之路——了解一下聚类算法相关的知识,希望对你有一定的参考价值。



前面我们讲了数据的预处理、回归、分类等,那么现在讲一下聚类算法。这些文章基本上包含了数据处理的各种处理方法分类,就这么多的处理方法大类,当然还有很多细分的处理数据的方法,这个在前面的文章也都提到了,可以翻翻历史文章,数据处理的方法基本上全了,看历史文章。

聚类顾名思义,就是将相似的对象集合在一起。这种算法是非监督学习,没有提前知道的训练对象,其实各种算法的定义都在之前的文章中提到了,可以再看看前面的文章。

聚类,把目标分为不同的类别,类别之内的相似度最大,类别之间的相似度最小。聚类之前同样得需要把数据标准化,最大-最小或z-score变换等。测量距离的公式除了前面提到的

对于分类变量还是有差异函数来变换的,前面的文章写到了,不再赘述。

 

聚类算法分为层次聚类方法和非层次聚类方法。在层次聚类中,树状簇结构是通过递归划分(分裂的方法)或凝聚现有的簇(凝聚)来创建。凝聚聚类方法初始化每个观察值来形成自己的一个小簇,然后将最接近的簇合成一个,最后合成一个大簇。分类聚类是将不相似的记录分割出去,直到每个记录有它的簇。大部分用的是凝聚方法,我们这里只讨论凝聚方法。

怎么描述他们之间的距离,有几个评价准则,单一链、完全链、平均链。

单一链又称为最近邻居方法,依据簇A和簇B中任意记录的最小距离。该方法往往形成细长的簇,有时会导致异构的记录聚集在一起。

完全链又称为最远邻居方法,依据簇A和簇B中任意记录的最大距离。该方法倾向于形成更紧凑的球状簇。

平均链的设计是为了减少簇链评价准则对极端值的依赖性,如最相似或最不相似的记录。该方法是簇A与簇B中的所有记录的平均距离。由此产生的簇趋向于近似等于簇内变化。

一般情况,平均链产生的形状与完全链更相似。

 

k-均值聚类

这是简单有效发现数据簇的算法。步骤如下:

1)用户设置多少个簇;

2)随机分配k个记录作为初始簇中心;

3)为每一个记录找到最近簇中心;

4)找到每个簇的质心,并更新簇中心位置;

5)重复(3~5)步骤,直到收敛。

这种算法在SAS软件或者SPSS软件上都能实现。当然最近我也在学习Python,这个软件貌似更加强大,建议入手学习起来!

为了提高实现全局最优的概率,分析人员可以考虑使用不同的初始簇中心。Moore建议在一个随机的数据点上放置第一个簇中心,随后的簇中心尽可能的离前面簇中心远。那么还是跟以前那个k-最近邻算法似的,k值怎么选择的问题,一是分析人员有一定的基本簇数量方面的知识作为先验知识,或者将外循环添加到算法中,选用不同的k值展开循环。如果有的因素我们权重大,那我们可以乘个系数,轴拉伸方法。

除了k均值聚类还有BIRCH聚类,这种方法可以选择最佳数量的簇。还有Kohonen网络。

这些内容可以在书上看看,当然网上也有很多类似的知识。建议还是有个书本,知识系统一点。