数据挖掘算法综述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、 分类算法总结

比较各种常见的分类算法,在过分拟合,最优解等方面 决策树分类(三种属性选择度量)

基于规则的分类

贝叶斯(朴素贝叶斯,贝叶斯网络)基于后验概率 支持向量机(凸二次规划,全局最优解)

惰性学习法(k 最近邻分类法,基于案例的推理) 分类算法的验证和评估方法

二、 聚类算法总结

1、划分方法

1) 基于质心的技术,k-means (K 均值)聚类

k 均值算法以k 为输入,把n 个对象的集合分成k 个簇。首先,随机选择k 个对象,每个对象代表一个簇的初值均值或中心,对剩余的每个对象,根据其与各个簇均值的距离,将其指派到最相似的簇中。然后计算每个簇的新的均值,重复这个过程,直到准则函数的值收敛。通常采用平方误差准则。

E =∑∑|p −m i |2p∈C i

k

i=1

其中,E 是数据集中所有对象的平方误差和,P 是空间中的点,表示给定对象,m i 是簇c i 的均值,换句话说,对于每个簇中的每个对象,求其到其簇中心距离的平方,

然后求和。

具体算法过程如下:

首先任意选取k个对象作为初始的簇中心,根据对象与簇中心的距离,每个对象指派个最近的簇。

然后,更新簇中心,根据当前簇中的对象,重新计算每个簇的中心(均值),使用新的簇中心,将对象重新指派到距簇中心最近的簇中,即重新计算每个对象到新的簇中心的距离,将对象重新指派到距其最近的簇中。重复这个过程,直到簇中对象的重新分布不再发生改变。

:k均值算法的结果簇是紧凑的,对于处理大数据集,该算法是相对可伸缩的和有效率的。它的计算复杂度是O(nkt),n是对象总数,k是簇的个数,t是迭代次数。通常该方法终止于局部最优解。

k均值方法才能使用,在某些应用中,例如当涉及具有分类属性的数据时,均值可能无定义。另外,用户必须先给出簇的个数k也是一个缺点,该算法不适合发现非凸形状的簇,或者大小差别很大的簇。它对噪声和离群点是敏感的,少量的这种数据会对均值产生很大的影响。

所以对于k个初值的选取,通常采用一种启发式的选取方法,或者大多数情况下采取随机选取的方法。因为k 均值并不能保证全局最优解,而是否能收敛到全局最优

解其实和初值的选取有很大关系,所以通常会多次选取初值运行该算法,然后选取一个最好的结果。

2)基于代表对象的技术,k中心点法(k-medoids)

k均值对离群点是敏感的,一个具有很大的极端值的对象可能会显著扭曲簇的分布,平方误差函数的使用更是严重恶化了这种敏感性。

可不可以不采用簇中对象的均值作为参照点,而是在每个簇中选取一个实际的对象来代表该簇。其余的每个对象聚类到与其最相似的代表性的对象所在的簇中。这样,划分方法仍然基于最小化对象与其对应的参照点之间的相异度之和的原则来执行。这就是k中心点聚类算法的思想。

k-means 和k-medoids 之间的差异就类似于一个数据样本的均值(mean) 和中位数(median) 之间的差异:前者的取值范围可以是连续空间中的任意值,而后者只能在给样本给定的那些点里面选。那么,这样做的好处是什么呢?一个最直接的理由就是k-means 对数据的要求太高了,它使用欧氏距离描述数据点之间的差异(dissimilarity) ,从而可以直接通过求均值来计算中心点。然而并不是所有的数据都能满足这样的要求,对于数值类型的特征,比如身高,可以很自然地用这样的方式来处理,但是类别(categorical) 类型的特

征就不行了,这里欧氏距离没法用了。

这里我们将准则函数推广成如下形式:

E =∑∑v (p,q i )p∈C i

k

i=1

其中p 是当前对象,q i 是簇c i 的代表对象(中心点),v 是一个任意的距离函数,也可以叫做是计算相异度的函数,而不在是已经定死了的欧氏距离函数,这样对数据的要求就更低了,除此之外,由于中心点是在已有的数据点里面选取的,因此相对于 k-means 来说,不容易受到那些由于误差之类的原因产生的离群点的影响,更加 robust 一些。

E =∑∑|p −o j |p∈C i

k

i=1

k 中心点常用绝对误差标准,如上式所示,其中p 是当前对象,代表簇c i 中一个给定的点,o j 是簇c i 的代表对象(中心点)。通常该算法重复迭代,直到每个代表对象都成为他的簇的实际中心点,或者最靠近中心点的对象。 从 k-means 变到 k-medoids ,时间复杂度陡然增加了许多:在 k-means 中只要求一个平均值O(N)即可,而在 k-medoids 中则需要枚举每个点,并求出它到所有其他点的距离之和,复杂度为O(N 2)。

迭代过程即用非代表对象替代当前代表对象的过程:

a)选取k个初始点作为k个代表对象,这个k个代表对象是初始的k个簇的中心点。

开始迭代

b)按照一种相似度计算法则将其余对象指派到最近的代表对象所代表簇中。

c)随机选取一个非代表对象O random,用O random替换一个代表对象O j,代替后,所有剩余对象会重新分布(分四种情况),然后计算替换前后的绝对误差的差S,如果S小于零,则用O random替换O j,形成新的k个代表对象。否则不变。

迭代直至不在发生变化。

2、层次方法

3、基于密度的方法

4、基于模型的聚类方法(概率模型)

期望最大化方法EM

每个簇可以用一个概率分布函数来描述,整个数据就是这些分布的混合,其中每个单独的分布通常称作成员分布,于是我们可以使用k个概率分布的有限混合密度模型对数据进行聚类,其中每个分布代表一个簇。问题是估计概率分布的参数,使得分布最好的拟合数据。

Gaussian Mixture Model (GMM) 假设数据服从Mixture Gaussian Distribution ,换句话说,数据可

相关文档
最新文档