一 聚类算法
基本概念:
1,无监督学习:训练样本的标记信息是未知的,目标通过对无标记样本的学习来揭示数据的内在性质及规律。聚类既可以作为一个单独过程,也可以作为分类学习的前驱过程。
2,聚类的性能度量:分类的性能度量方法有很多如准确率,AUC,召回率等等,聚类的性能度量主要分为两种类型,外部指标:将聚类结果与某个“参考模型”进行比较,称为“外部指标”。内部指标:直接考察聚类结果而不利用任何参考模型。
常用的聚类外部指标有(与参考模型进行比较):
聚类模型为C,参考模型为C*,
a=|ss|:在两个模型中均属于相同簇的样本对。
b=|sd|:在c中属于相同的簇,在c*中属于不同的簇
c=|ds|:在c中属于不同的簇,在c*中属于相同的簇
d=|dd|:在c中属于不同的簇,在c*中属于不同的簇
外部性能指标有:Jc系数,FM指数,Rand指数
Jaccard系数(JC):Jc=(AnB)/(AuB)
在此处为:Jc=a/a+b+c
拓展:JC系数与tf-idf区别于联系
Jc系数没有考虑频率的影响。
Tf-idf:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
对这两个术语感兴趣的,可以自行百度,在这里就不做赘述了。
内部指标:核心就是类内的距离越小越好,类间距离越大越好。
3,距离计算
聚类的相似度是如何衡量的?
有序属性:即表示确切的值,可以简单理解为数值型属性。
有序属性的距离公式可以有:
(1):闵可夫斯基距离:dist(x,y)=(Sum(|x(i)-y(i)|)^(p))^(1/p)
即两个样本之间对应的属性差值的p方的和的1/p方
(2)当p=1时,即为曼哈顿距离。即两两属性之间绝对值求和
(3)当p=2时,即为欧式距离。
无序属性距离公式:VDM公式
4,聚类分析的主要要求
(1)可伸缩性。许多聚类算法在小型数据集上效果不错,但是在大型数据集上聚类效果有偏差。所以我们要求高度可伸缩性的聚类算法。
(2)处理不同属性的能力。有的算法只能应用于数值型的数据集上,比如K-MEANS算法,这个后续再详讲。因此我们需要可以处理不同数据类型的聚类算法。
(3)发现任意形状的簇。基于划分的聚类算法大都以距离来衡量样本之间的相似度,因此趋向于发现球状簇。然而一个簇到底是什么样子的,大部分情况下是未知的。因此我们需要能够发现任意形状的簇的聚类算法。
(4)调参。对机器学习&&数据挖掘领域来说,模型的调参是绕不开的话题。参数的好坏将直接影响模型的效果,比如K-MEANS的K值,DBSCAN的参数。调参不进加重了我们的负担,而且是使得聚类质量难以把控。
(5)处理噪声数据的能力。如果要聚类的目标数据集好友噪声/异常点,那么可能会对聚类质量产生影响,比如K-MEANS算法对噪声点是机场敏感的。因此,我们需要对噪声鲁棒性强的算法。
(6)增量聚类和输入次序不敏感。在实际工程应用中,增量学习是一个很重要的模块,当我们根据当前数据集建立好模型之后,新的数据的加入未必符合当前的模型。聚类同样如此。而且一些聚类算法对数据输入的次序也是相当敏感的。
(7)高维数据处理能力。一些算法只能处理低维数据,高维数据的聚类是一个挑战。
(8) 可解释性和可用性。
在这里只是简单的把聚类的基本概念罗列了一下,以下几篇博文将会详细讲述聚类算法。主要分为以下几大模块:划分方法、层次方法、密度方法、网格方法,其他。对每个算法的原理,优缺点,应用场景,改进,会做一个详细的阐述。