数据挖掘算法总结

来源:互联网 发布:java socket面试题 编辑:程序博客网 时间:2024/05/17 02:00

原文链接:http://qing.blog.sina.com.cn/tj/591d4f4933002uc9.html

数据挖掘的算法有很多种,我们经常会疑虑到底用哪种方法最合适。所以专门收集了常见的数据挖掘算法,让大家有一个总体的了解。

一、聚类


将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个

簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又

称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于

,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类

预报法等。

该方法说的通俗一点就是,将 n 个样本,通过适当的方法(选取m聚类中心,通过研究各样本和各个聚类中心的距离Xij,选择适当的聚类标

准,通常利用最小距离法(一个样本归于一个类也就意味着,该样本距离该类对应的中心距离最近)来聚类,从而可以得到聚类结果。

数据挖掘对聚类的典型要求如下:可伸缩性:许多聚类算法在小于 200 个数据对象的小数据集合上工作得很好;但是,一个大规模数据库可

能包含几百万个对象,在这样的大数据集合样本上进行聚类可能会导致有偏的结果。我们需要具有高度可伸缩性的聚类算法。
处理不同类型属性的能力:许多算法被设计用来聚类数值类型的数据。但是,应用可能要求聚类其他类型的数据,如二元类型(binary),分

类/标称类型(categorical/nominal),序数型(ordinal)数据,或者这些数据类型的混合。
发现任意形状的聚类:许多聚类算法基于欧几里得或者曼哈顿距离度量来决定聚类。基于这样的距离度量的算法趋向于发现具有相近尺度和

密度的球状簇。但是,一个簇可能是任意形状的。提出能发现任意形状簇的算法是很重要的。
用于决定输入参数的领域知识最小化:许多聚类算法在聚类分析中要求用户输入一定的参数,例如希望产生的簇的数目。聚类结果对于输入

参数十分敏感。参数通常很难确定,特别是对于包含高维对象的数据集来说。这样不仅加重了用户的负担,也使得聚类的质量难以控制。
处理“噪声”数据的能力:绝大多数现实中的数据库都包含了孤立点,缺失,或者错误的数据。一些聚类算法对于这样的数据敏感,可能导

致低质量的聚类结果。
对于输入记录的顺序不敏感:一些聚类算法对于输入数据的顺序是敏感的。例如,同一个数据集合,当以不同的顺序交给同一个算法时,可

能生成差别很大的聚类结果。开发对数据输入顺序不敏感的算法具有重要的意义。
高维度(high dimensionality):一个数据库或者数据仓库可能包含若干维或者属性。许多聚类算法擅长处理低维的数据,可能只涉及两到

三维。人类的眼睛在最多三维的情况下能够很好地判断聚类的质量。在高维空间中聚类数据对象是非常有挑战性的,特别是考虑到这样的数

据可能分布非常稀疏,而且高度偏斜。
基于约束的聚类:现实世界的应用可能需要在各种约束条件下进行聚类。假设你的工作是在一个城市中为给定数目的自动提款机选择安放位

置,为了作出决定,你可以对住宅区进行聚类,同时考虑如城市的河流和公路网,每个地区的客户要求等情况。要找到既满足特定的约束,

又具有良好聚类特性的数据分组是一项具有挑战性的任务。
可解释性和可用性:用户希望聚类结果是可解释的,可理解的,和可用的。也就是说,聚类可能需要和特定的语义解释和应用相联系。应用

目标如何影响聚类方法的选择也是一个重要的研究课题。
编辑本段计算方法传统的聚类分析计算方法主要有如下几种:
1. 划分方法(partitioning methods)
给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。而且这K个分组满足下列条件:(1) 每

一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给

定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的

标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、

CLARANS算法;
2. 层次方法(hierarchical methods)
这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如在“自底

向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组

成一个分组或者某个条件满足为止。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
3. 基于密度的方法(density-based methods)
基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“

类圆形”的聚类的缺点。这个方法的指导思想就是,只要一个区域中的点的密度大过某个阀值,就把它加到与之相近的聚类中去。代表算法

有:DBSCAN算法、OPTICS算法、DENCLUE算法等;
4. 基于网格的方法(grid-based methods)
这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。这么处理的一个突出的优点就是

处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。代表算法有:STING算法、CLIQUE算法

、WAVE-CLUSTER算法;
5. 基于模型的方法(model-based methods)
基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分

布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:统计的方案和神经网络的

方案。
当然聚类方法还有:传递闭包法,布尔矩阵法,直接聚类法,相关性分析聚类,基于统计的聚类方法等。


聚类有两种类型:
(1) Q 型聚类:即对样本聚类;
(2) R 型聚类:即对变量聚类;
通常聚类中衡量标准的选取有两种:
(1) 相似系数法
(2) 距离法
聚类方法:
(1) 最短距离法
 (2) 最长距离法
(3) 中间距离法
(4) 重心法
(5) 类平均法
(6) 可变类平均法
(7) 可变法
(8) 利差平均和法
在具体做题中,适当选区方法;
3、注意事项
在样本量比较大时,要得到聚类结果就显得不是很容易,这时需要根据背景
知识和相关的其他方法辅助处理。
4、方法步骤
(1)首先把每个样本自成一类;
(2)选取适当的衡量标准,得到衡量矩阵,比如说:距离矩阵或相似性矩
阵,找到矩阵中最小的元素,将该元素对应的两个类归为一类,
(3)重新计算类间距离,得到衡量矩阵
(4)重复第2 步,直到只剩下一个类;
补充:聚类分析是一种无监督的分类,下面将介绍有监督的分类。

二、数据分类


1、方法概述
数据分类是一种典型的有监督的机器学习方法,其目的是从一组已知类别的数据中发现分类模型,以预测新数据的未知类别。这里需要说明

的是:预测和分类是有区别的,预测是对数据的预测,而分类是类别的预测。

2、分类方法:
(1)神经网路
(2)决策树


3、注意事项

神经网路适用于下列情况的分类:
(1) 数据量比较小,缺少足够的样本建立数学模型;
(2) 数据的结构难以用传统的统计方法来描述
(3) 分类模型难以表示为传统的统计模型

神经网路的优点:
分类准确度高,并行分布处理能力强,对噪声数据有较强的鲁棒性和容
错能力,能够充分逼近复杂的非线性关系,具备联想记忆的功能等。
神经网路缺点:
需要大量的参数,不能观察中间学习过程,输出结果较难解释,会影响
到结果的可信度,需要较长的学习时间,当数据量较大的时候,学习速度会制约
其应用。
4、步骤
(1)初始化全系数
(2)输入训练样本
(3)计算实际输出值
(4)计算实际输出值和期望输出值之间的误差
(5)用误差去修改权系数
(6)判断是否满足终止条件,如果满足终止,否则进入第二步
 
三、判别分析
1、概述
其是基于已知类别的训练样本,对未知类别的样本判别的一种统计方法,也
是一种有监督的学习方法,是分类的一个子方法!
具体是:在研究已经过分类的样本基础上,根据某些判别分析方法建立判别式,
然后对未知分类的样本进行分类!
2、分类
根据判别分析方法的不同,可分为下面几类:
(1) 距离判别法
(2) Fisher 判别法
(3) Bayes 判别法
(4) 逐步判别法
关于这几类的方法的介绍,大家可以参考《多元统计学》,其中比较常用的
是bayes 判别法和逐步判别法
3、注意事项:
判别分析主要针对的是有监督学习的分类问题。共有四种方法,这里重点注
意其优缺点:
(1) 距离判别方法简单容易理解,但是它将总体等概率看待,没有差
异性;
(2) Bayes 判别法有效地解决了距离判别法的不足,即:其考虑了先
验概率——所以通常这种方法在实际中应用比较多!
(3) 在进行判别分析之前,应首先检验各类均值是不是有差异(因为
判别分析要求给定的样本数据必须有明显的差异),如果检验后某两个总体的差
异不明显,应将这两个总体合为一个总体,再由剩下的互不相同的总体重现建立
判别分析函数。
(4) 这里说明下 Fisher 判别法和bayes 判别法的使用要求:两者对总
体的数据的分布要求不同,具体的,Fishe 要求对数据分布没有特殊要求,而bayes
则要求数据分布是多元正态分布,但实际中却没有这么严格!

4、方法步骤
这里以 bayes 判别法为例讲述
(1) 计算各类中变量的均值 xj 及均值向量xh,各变量的总均值xi 及均值
向量x
(2) 计算类内协方差及其逆矩阵
(3) 计算 bayes 判别函数中,各个变量的系数及常数项并写出判别函数
(4)计算类内协方差矩阵及各总协方差矩阵做多个变量的全体判别效果的
检验
(5) 做各个变量的判别能力检验
(6) 判别样本应属于的类别

四、主成分分析
1、概述
主成分分析是一种降维数的数学方法,具体就是,通过降维技术立将多个变
量化为少数几个主成分的统计分析方法。在建模中,主要用于降维,系统评估,
回归分析,加权分析等等。
2、分类(无)
3、注意事项
 
在应用主成分分析时候,应该注意:
(1) 综合指标彼此独立或者不想关
(2)每个综合指标所反映的各个样本的总信息量等于对应特征向量的
特征值。
通常要选取的综合指标的特征值贡献率之和应为 80%以上
(3) 其在应用上侧重于信息贡献影响力的综合评价
(4) 当主成分因子负荷的符号有正也有负的时候,综合评价的函数意
义就不明确!


五、因子分析
1、概述
其是也是将变量总和为数量较少的几个因子,是降维的一种数学技术!它和
主成分分析的最大区别是:其是一种探索性分析方法,即:通过用最少个数的几
个不可观察的变量来说明出现在可观察变量中的相关模型(有点类似于前面讲述
的分类和聚类的区别)它提供了一种有效的利用数学模型来解释事物之间的关
系,体现出数据挖掘的一点精神!他可以用来解决降维,系统评估,加权分析等
方法。
2、分类
因子分析是 R 型,即对变量研究
3、注意事项
(1)其不是对研究总体的变量的降维,而是根据原始变量信息构造新的变
量,作为共同因子
(2)它通过旋转可以使得因子变量具有可解释性
(3)因子分析和主成分分析的区别和联系
<1>两者都是降维数学技术,前者是后者的推广和发展
<2>主成分分析只是一般的变量替换,其始终是基于原始变量研究
数据的模型规律;而因子分析则是通过挖掘出新的少数变量,来研究的一种方法,
有点像数据挖掘中的关联关则发现!


六、残差分析

1、概述
在实际问题中,由于观察人员的粗心或偶然因素的干扰。常会使我们所得到
的数据不完全可靠,即出现异常数据。有时即使通过相关系数或F 检验证实回归
方程可靠,也不能排除数据存在上述问题。残差分析的目的就在于解决这一问题。
所谓残差是指实际观察值与回归估计值的差。
2、分类

3、应用
(1)通过残差分析来排除异常数据
(2)通过残差分析来检验模型的可靠性
还有很多应用,大家在使用过程中据情况选取,灵活应用!

七、典型相关分析

1、概述
前面介绍的方法主要是一个变量和多个变量之间的关系,而典型相关分析研
 
究的是多个变量和多个变量之间的关系,或者是一组变量和一组变量之间关系!
其可以揭示两组变量之间的关系,从而供大家研究两个现象之间的关系,例如:
蔬菜的产出水平和影响产出水平的变量之间的关系!
2、分类
多对多的变量关系研究!
3、注意事项
(1)其可以很好地解决组合相关性的问题
(2)其还局限于两组变量的研究,而且要求这两组变量都是连续变量且需
服从多元正态分布

八、时间序列
1、概述
时间序列预测法是一种定量分析方法,它是在时间序列变量分析的基础上,
运用一定的数学方法建立预测模型,使时间趋势向外延伸,从而预测未来市场的
发展变化趋势,确定变量预测值。
其基本特点是:假定事物的过去趋势会延伸到未来;预测所依据的数据具有
不规则性;撇开市场发展之间的因果关系。
2、分类
时间序列的变动形态一般分为四种:长期趋势变动,季节变动,循环变动,
不规则变动。
方法分类:
(1) 平均数预测(简单算术平均法,加权算术平均法,几何平均数法)
(2) 移动平均数预测(一次移动平均法,二次移动平均法)
(3) 指数平滑法预测(一次,二次,三次指数平滑法)
(4) 趋势法预测(分割平均法,最小二乘法,三点法)
(5) 季节变动法(简单平均法,季节比例法)
3.注意事项
(1)季节变动法预测需要筹集至少三年以上的资料
(2)移动平均法在短期预测中较准确,长期预测中效果较差;
(3)移动平均可以消除或减少时间序列数据受偶然性因素干扰而产生的随
机变动影响。
(4)一次移动平均法适用于具有明显线性趋势的时间序列数据的预测;一次
移动平均法只能用来对下一期进行预测,不能用于长期预测,必须选择合理的移
动跨期,跨期越大对预测的平滑影响也越大,移动平均数滞后于实际数据的偏差
也越大。跨期太小则又不能有效消除偶然因素的影响。跨期取值可在3~20 间选
取。
(5)二次移动平均法与一次移动平均法相比,其优点是大大减少了滞后偏差,
使预测准确性提高;二次移动平均只适用于短期预测。而且只用于的情形。
(6)最小二乘法即适用于直线趋势的预测,也适用于曲线趋势的预测。
还有一些注意事项,这里就不在意义罗列

十、多元回归

1、方法概述:
在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可
以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归
方程可以求出因变量的估计值,从而可以进行预测等相关研究。
2、分类
分为两类:多元线性回归和非线性线性回归;其中非线性回归可以通过一
定的变化转化为线性回归,比如:y=lnx 可以转化为 y=u u=lnx 来解决;所以这
里主要说明多元线性回归应该注意的问题。
3、注意事项
在做回归的时候,一定要注意两件事:
(1) 回归方程的显著性检验
(2) 回归系数的显著性检验
检验是很多学生在建模中不注意的地方,好的检验结果可以体现出你模型的优劣,是完整论文的体现,所以这点大家一定要注意。

4、使用步骤:
(1)根据已知条件的数据,通过预处理得出图像的大致趋势或者数据之间
的大致关系;
(2)选取适当的回归方程;
(3)拟合回归参数;
(4)回归方程显著性检验及回归系数显著性检验
(5)进行后继研究(如:预测等)


十一、优化方法
1、概述
在一系列的条件限制下,寻求最优方案,使得目标达到最优的问题统称为优化问题。解决这类问题的方法,自然就称之为优化方法,又成为

数学规划!其是运筹学的一个重要分支!
2、分类
优化问题可以归结为优化模型,按照优化模型求解方法的不同,可以分为以下类别:
(1) 按照有无约束条件:无约束和约束最优化问题
(2) 按照决策变量是否取之连续分为:
a) 数学规划或连续规划:LP,NLP,QP
b) 离散优化或组合优化:IP
(3) 单目标规划和多目标规划
(4) 确定性规划和不确定性规划
(5) 目标规划,动态规划,非线性规划,多目标规划等
3、注意事项
(1)约束优化问题可以转化为无约束优化问题来解决
(2)多目标规划可以通过适当的方法转化为但目标规划来解决
(3)非线性规划,在一定的条件下,可以近似为线性规划来解决
(4)不确定性规划可以通过适当的技巧转化为确定性方法解决这些转化,
大家可以参阅优秀论文,注意学取人家的经验,从而建立自己的能力提升!
也可以参考相关优化书籍和运筹学书籍来学习,书上都有介绍!
4、步骤
简要概括
(1)建立规划模型
(2)选择方法
(3)结果解释

十二、排队论
1.概述
在我们的生活中,经常会做和排队想关的事情,比如:银行等待取钱,医院挂号排队,理发排队等等,都会涉及到排队问题,并且2009 年国

赛B 题第五小题就考了和排队论相关的问题。

排队论是一门研究拥挤现象的学科,具体就是研究各种排队系统概率基础上,解决相应的排队系统的最优设计和最优控制问题(注意:其实

解决排队最优设计和最优控制的问题)
2、分类
(1)泊松输入-指数服务排队模型
(2)M/M/1 等待排队模型
(3)M/M/S/inf 模型(2009 年B 题的排队就是一个这种模型)
3、注意事项
(1)排队系统常见的优化问题在于
a)确定最优服务率
b)确定最佳服务台数量
c)选择最为合适的服务规则
d)确定上述几个量的最优组合
(2)在使用时候,应该注意模型的选择,模型选择好后,注意顾客到达和
服务时间分布的选择和检验

 
十三、智能算法的优化应用

遗传算法,蚁群算法,贪婪算法,模拟退火算法,回溯法,分支定界法,禁忌搜索算法,粒子群算法等启发式算法。
这类算法在实际中应谨慎使用,固然这类算法有其好处,但是其不确定远远大于其确定性,所以大家在比赛中慎重使用,最好使用成熟的算

法!

十四、微分建模

1、使用背景介绍
我们通常会在研究一些问题时候,涉及到某些变量的变化率或导数,这样所得到的变量之间的关系就是微分方程模型,其反映的是变量之间

的间接关系,通过求解方程,就可以得到直接关系!

2、分类
按照求解方法的不同分为:精确求解,求数值解,定性分析方法
3、注意事项
(1)微分方程的集中建立方法:
A、根据规律建立方程
B、微元法
C、模拟近似
(2)几种常见的微分方程模型:
人口增长模型,传染病模型,捕鱼模型等

十五、差分方程
1、使用背景的介绍
它是研究离散变量的变化规律,具体就是:根据实际的规律性质,平衡关系
等,建立离散变量所满足的平很关系式,从而建立差分方程模型。通过求出和分
析解,研究方程解的性质,比如,平稳性,渐进性,振动性,周期性等等
2、分类
几个重要的差分方程模型:
商业贷款,离散形式的人口模型,汽车租赁,动物养殖问题等经典模型,
大家可以参考,然后对差分方程模型有个全面的认识

十六、图论
由于图论设计的内容比较多,系统庞杂,而且模型比较灵活,随着社交网络的流行,图论的算法也逐渐重要了起来。

图论〔Graph Theory〕是数学的一个分支。它以图为研究对象,研究顶点和边组成的图形的数学理论和方法。图是区域在头脑和纸面上的反

映,图论就是研究区域关系的学科。区域是一个平面,平面当然是二维的,但是,图在特殊的构造中,可以形成多维(例如大于3维空间)空

间,这样,图论已经超越了一般意义上的区域(例如一个有许多洞的曲面,它是多维的,曲面染色已经超出了平面概念)。
 
图论中的图是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用顶点代表事物,

用连接两顶点的边表示相应两个事物间具有这种关系。
 
图论起源于著名的柯尼斯堡七桥问题。
 
图论的研究对象相当于一维的拓扑学。


十七、其他方法介绍

灰色系统主要用来解决少数据的预测问题;层次分析法主要用来解决综合分析类的问题;模糊数学可以用来做模糊综合评判,模糊聚类分析

和模糊线性规划;
蒙特卡洛方法主要是一种计算机仿真方法,通常在排队论问题使用;神经网路可
以用来分类,预测,建立模型等等;还有一些其他的方法,这里就不一一介绍了。
这里我再补充一点:
预测方法的比较:
一般小样本内部预测用插值和拟合,大样本内部预测用回归模型。
移动平均法属于时间序列分析的内容,时间序列分析一般用作大样本外部预测,
就是对未来的预测,灰色理论用于小样本的外部预测,神经网络用于超大样本的
未来预测。
可以把这些预测方法归纳一下,对于建模,主要考虑这些方法的适用性。


0 0