这个算法经常以局部最优结束。
(3)算法尝试找出使平方误差函数值最小的k个划分。
当簇是密集的、球状或团状的,而簇与簇之间区别明显时,它的聚类效果很好。
2)缺点
(1)k-平均方法只有在簇的平均值被定义的情况下才能使用,不适用于某些应用,如涉及有分类属性的数据不适用。
(2)要求用户必须事先给出要生成的簇的数目k。
(3)对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。
(4)不适合于发现非凸面形状的簇,或者大小差别很大的簇。
(5)对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。
算法的改进
针对算法存在的问题,对K-means算法提出一些改进:
一是数据预处理,
二是初始聚类中心选择,
三是迭代过程中聚类种子的选择。
1、首先对样本数据进行正规化处理,这样就能防止某些大值属性的数据左右样本间的距离。
给定一组含有n个数据的数据集,每个数据含有m个属性,分别计算每一个属性的均值、标准差对每条数据进行标准化。
3、其次,初始聚类中心的选择对最后的聚类效果有很大的影响,原K-means算法是随机选取k个数据作为聚类中心,而聚类的结果要是同类间尽可能相似,不同类间尽可能相异,所以初始聚类中心的选取要尽可能做到这一点。
采用基于距离和的孤立点定义来进行孤立点的预先筛选,并利用两两数据之间的最大距离在剩余数据集合中寻找初始聚类中心。
但对于实际数据,孤立点个数往往不可预知。
在选择初始聚类中心时,先将孤立点纳入统计范围,在样本中计算对象两两之间的距离,选出距离最大的两个点作为两个不同类的聚类中心,接着从其余的样本对象中找出已经选出来的所有聚类中心的距离和最大的点为另一个聚类中心,直到选出k个聚类中心。
这样做就降低了样本输入顺序对初始聚类中心选择的影响。
聚类中心选好以后,就要进行不断的迭代计算,在K-means算法中,是将聚类均值点(类中所有数据的几何中心点)作为新的聚类种子进行新一轮的聚类计算,在这种情况下,新的聚类种子可能偏离真正的数据密集区,从而导致偏差,特别是在有孤立点存在的情况下,有很大的局限性。
在选择初始中心点时,由于将孤立点计算在内,所以在迭代过程中要避免孤立点的影响。
这里根据聚类种子的计算时,采用簇中那些与第k-1轮聚类种子相似度较大的数据,计算他们的均值点作为第k轮聚类的种子,相当于将孤立点排除在外,孤立点不参与聚类中心的计算,这样聚类中心就不会因为孤立点的原因而明显偏离数据集中的地方。
在计算聚类中心的时候,要运用一定的算法将孤立点排除在计算均值点那些数据之外,这里主要采用类中与聚类种子相似度大于某一阈值的数据组成每个类的一个子集,计算子集中的均值点作为下一轮聚类的聚类种子。
为了能让更多的数据参与到聚类中心的计算种去,阈值范围要包含大多数的数据。
在第k-1轮聚类获得的类,计算该类中所有数据与该类聚类中心的平均距离S,选择类中与聚类种子相似度大于2S的数据组成每个类的一个子集,以此子集的均值点作为第k轮聚类的聚类种子。
在数据集中无论是否有明显的孤立点存在,两倍的平均距离都能包含大多数的数据。
对孤立点的改进—基于距离法
经典k均值算法中没有考虑孤立点。
所谓孤立点都是基于距离的,是数据U集中到U中最近邻居的距离最大的对象,换言之,数据集中与其最近邻居的平均距离最大的对象。
针对经典k均值算法易受孤立点的影响这一问题,基于距离法移除孤立点,具体过程如下:
首先扫描一次数据集,计算每一个数据对象与其临近对象的距离,累加求其距离和,并计算出距离和均值。
如果某个数据对象的距离和大于距离和均值,则视该点为孤立点。
把这个对象从数据集中移除到孤立点集合中,重复直到所有孤立点都找到。
最后得到新的数据集就是聚类的初始集合。
对随机选取初始聚类中心的改进
经典k均值算法随机选取k个点作为初始聚类中心进行操作。
由于是随机选取,则变化较大,初始点选取不同,获得聚类的结果也不同。
并且聚类分析得到的聚类的准确率也不一样。
对k均值算法的初始聚类中心选择方法—随机法进行改进,其依据是聚类过程中相同聚类中的对象是相似的,相异聚类中的对象是不相似的。
因此提出了一种基于数据对象两两间的距离来动态寻找并确定初始聚类中心的思路,具体过程如下:
首先整理移除孤立点后的数据集U,记录数据个数y,令m=1。
比较数据集中所有数据对象两两之间的距离。
找出距离最近的2个数据对象形成集合Am;比较Am中每一个数据对象与数据对象集合U中每一个对象的距离,在U中找出与Am中最近的数据对象,优先吸收到Am中,直到Am中的数据对象个数到达一定数值,然后令m=m+1。
再从U中找到对象两两间距离最近的2个数据对象构成Am,重复上面的过程,直到形成k个对象集合。
这些集合内部的数据是相似的,而集合间是相异的。
可以看出,这种聚类方法同时满足以下2个条件:
①每个组至少包含一个数据对象;②每个数据对象必须属于且仅属于一个组。
即数据对象Xi∈Ai,且U={{A1∪A2∪…∪Ak}∪A0},且Ai∩Aj=Φ。
最后对k个对象集合分别进行算术平均,形成k个初始聚类中心。
近似的k平均算法已经被设计用于原始数据子集的计算。
从算法的表现上来说,它并不保证一定得到全局最优解,最终解的质量很大程度上取决于初始化的分组。
由于该算法的速度很快,因此常用的一种方法是多次运行k平均算法,选择最优解。
k平均算法的一个缺点是,分组的数目k是一个输入参数,不合适的k可能返回较差的结果。
另外,算法还假设均方误差是计算群组分散度的最佳参数。
三、数据挖掘十大经典算法(3)Svm
支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。
它是一
种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。
支持向量机属于一般化线性分类器.他们也可以认为是提克洛夫规范化(Tikhonov Regularization)方法的一个特例.这族分类器的特点是他们能够同时最小化经验误差与最大化
几何边缘区.因此支持向量机也被称为最大边缘区分类器。
在统计计算中,最大期望(EM) 算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无
法观测的隐藏变量(Latent Variabl)。
最大期望经常用在机器学习和计算机视觉的数据集聚 (DataClustering)领域。
最大期望算法经过两个步骤交替进行计算:
第一步是计算期望(E), 也就是将隐藏变量象能够观测到的一样包含在内从而计算最大似然的期望值;
另外一步是最 大化(M),也就是最大化在 E步上找到的最大似然的期望值从而计算参数的最大似然估计。
M步上找到的参数然后用于另外一个 E步计算,这个过程不断交替进行。
Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了另一种设计最佳准则。
其原 理也从线性可分说起,然后扩展到线性不可分的情况。
甚至扩展到使用非线性函数中去,这
种分类器被称为支持向量机(SupportVectorMachine,简称SVM)。
支持向量机的提出有很深的 理论背景。
支持向量机方法是在近年来提出的一种新方法。
SVM的主要思想可以概括为两点:
(1)它是针对线性可分情况进行分析,对于线性不可分 的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使
其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可 能;
(2)它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得 到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。
在学习这种方法时,首先要弄清楚这种方法考虑问题的特点,这就要从线性可分的最简单情 况讨论起,在没有弄懂其原理之前,不要急于学习线性不可分等较复杂的情况,支持向量机
在设计时,需要用到条件极值问题的求解,因此需用拉格朗日乘子理论,但对多数人来说, 以前学到的或常用的是约束条件为等式表示的方式,但在此要用到以不等式作为必须满足的 条件,此时只要了解拉格朗日理论的有关结论就行。
介绍
支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。
在分开数据的超平面的两边建有两个互相平行的超平面。
分隔超平面使两个平行超平面的距 离最大化。
假定平行超平面间的距离或差距越大,分类器的总误差越小。
一个极好的指南是 C.J.CBurges的《模式识别支持向量机指南》。
vanderWalt和 Barnard将支持向量机和其他 分类器进行了比较。
动机
有很多个分类器(超平面)可以把数据分开,但是只有一个能够达到最大分割。
我们通常希望分类的过程是一个机器学习的过程。
这些数据点并不需要是中的点,而可以是 任意(统计学符号)中或者 (计算机科学符号)的点。
我们希望能够把这些点通过一个n-1维的 超平面分开,通常这个被称为线性分类器。
有很多分类器都符合这个要求,但是我们还希望 找到分类最佳的平面,即使得属于两个不同类的数据点间隔最大的那个面,该面亦称为最大 间隔超平面。
如果我们能够找到这个面,那么这个分类器就称为最大间隔分类器。
四、数据挖掘十大经典算法(4)Apriori
Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法。
它的核心是基于两阶段频集思想的递推算法。
该关联规则在分类上属于单维、单层、布尔关联规则。
在这里,所有支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集。
在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:
算法需要对数据集进行多步处理。
第一步,简单统计所有含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集。
从第二步开始循环处理直到再没有最大项目集生成。
循环过程是:
第k步中,根据第k-1步生成的(k-1)维最大项目集产生k维侯选项目集,然后对数据库进行搜索,得到侯选项目集的项集支持度,与最小支持度进行比较,从而找到k维最大项目集。
从算法的运行过程,我们可以看出该Apriori算法的优点:
简单、易理解、数据要求低,然而我们也可以看到Apriori算法的缺点:
(1)在每一步产生侯选项目集时循环产生的组合过多,没有排除不应该参与组合的元素;
(2)每次计算项集的支持度时,都对数据库D中的全部记录进行了一遍扫描比较,如果是一个大型的数据库的话,这种扫描比较会大大增加计算机系统的I/O开销。
而这种代价是随着数据库的记录的增加呈现出几何级数的增加。
因此人们开始寻求更好性能的算法,如F-P算法。
五、数据挖掘十大经典算法(5)EM
最大期望算法(Expectation-maximizationalgorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。
在统计计算中,最大期望(EM)算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(LatentVariable)。
最大期望经常用在机器学习和计算机视觉的数据聚类(DataClustering)领域。
最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。
M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。
M是一个在已知部分相关变量的情况下,估计未知变量的迭代技术。
EM的算法流程如下:
1.初始化分布参数
2.重复直到收敛:
1.E步骤:
估计未知参数的期望值,给出当前的参数估计。
2.M步骤:
重新估计分布参数,以使得数据的似然性最大,给出未知变量的期望估计。
应用于缺失值
最大期望过程说明
我们用 表示能够观察到的不完整的变量值,用 表示无法观察到的变量值,这样 和 一起组成了完整的数据。
可能是实际测量丢失的数据,也可能是能够简化问题的隐藏变量,如果它的值能够知道的话。
例如,在混合模型(MixtureModel)中,如果“产生”样本的混合元素成分已知的话最大似然公式将变得更加便利(参见下面的例子)。
估计无法观测的数据
让 代表矢量:
定义的参数的全部数据的概率分布(连续情况下)或者概率聚类函数(离散情况下),那么从这个函数就可以得到全部数据的最大似然值,另外,在给定的观察到的数据条件下未知数据的条件分布可以表示为:
六、数据挖掘十大经典算法(6)PageRank
PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(LarryPage)之姓来命名。
Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。
Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。
PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。
Google把从A页面到B页面的链接解释为A页面给B页面投票,Google根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。
简单的说,一个高等级的页面可以使其他低等级页面的等级提升。
PageRank让链接来"投票"
一个页面的“得票数”由所有链向它的页面的重要性来决定,到一个页面的超链接相当于对该页投一票。
一个页面的PageRank是由所有链向它的页面(“链入页面”)的重要性经过递归算法得到的。
一个有较多链入的页面会有较高的等级,相反如果一个页面没有任何链入页面,那么它没有等级。
2005年初,Google为网页链接推出一项新属性nofollow,使得网站管理员和网志作者可以做出一些Google不计票的链接,也就是说这些链接不算作"投票"。
nofollow的设置可以抵制垃圾评论。
Google工具条上的PageRank指标从0到10。
它似乎是一个对数标度算法,细节未知。
PageRank是Google的商标,其技术亦已经申请专利。
PageRank算法中的点击算法是由JonKleinberg提出的。
PageRank算法
1.PageRank
基本思想:
如果网页T存在一个指向网页A的连接,则表明T的所有者认为A比较重要,从而把T的一部分重要性得分赋予A。
这个重要性得分值为:
PR(T)/C(T)
其中PR(T)为T的PageRank值,C(T)为T的出链数,则A的PageRank值为一系列类似于T的页面重要性得分值的累加。
优点:
是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间。
不足:
人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低;另外,PageRank有很严重的对新网页的歧视。
2.Topic-SensitivePageRank(主题敏感的PageRank)
基本思想:
针对PageRank对主题的忽略而提出。
核心思想:
通过离线计算出一个 PageRank向量集合,该集合中的每一个向量与某一主题相关,即计算某个页面关于不同主题的得分。
主要分为两个阶段:
主题相关的PageRank向量集合的计算和在线