//
数据挖掘(六):预测 - kingzone的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/kingzone_2008/article/details/8977837
数据挖掘的任务分为描述性任务(关联分析、聚类、序列分析、离群点等)和预测任务(回归和分类)两种。本文简介预测任务。
数据挖掘预测与周易预测有相似之处。周易建立在阴阳二元论基础上,对天地万物进行性状归类(天干地支五行论),精确到可以对事物的未来发展做出较为准确的预测。许多学者认为周易理论依据是万事万物的相似性、关联性和全息性原理。这三个原理已被现代科学所证实。全息性是指事物的某一局部包含了整体的信息。例如,法医工作者对一根毛发进行化验,得出受害者或嫌疑人的许多身体特征。
周易预测通过对历史事件的学习来积累经验,得出事物间的相似性和关联性,从而对事物的未来状况做出预测。数据挖掘预测则是通过对样本数据(历史数据)的输入值和输出值关联性的学习,得到预测模型,再利用该模型对未来的输入值进行输出值预测。一般地,可以通过机器学习方法建立预测模型。DM(Data Mining)的技术基础是人工智能(机器学习),但是DM仅仅利用了人工智能(AI)中一些已经成熟的算法和技术,因而复杂度和难度都比AI小很多[2]。
机器学习:假定事物的输入、输出之间存在一种函数关系y=f(x, β),其中β是待定参数,x是输入变量,则y=f(x, β)称为学习机器。通过数据建模,由样本数据(一般是历史数据,包含输入值和输出值)学习得到参数β的取值,就确定了具体表达式y=f(x, β),这样就可以对新的x预测y了。这个过程称作机器学习。
数据建模不同于数学建模,它是基于数据建立数学模型,它是相对于基于物理、化学和其他专业基本原理建立数学模型(即机理建模)而言的。对于预测来说,如果所研究的对象有明晰的机理,可以依其进行数学建模,这当然是最好的选择。但是实际问题中,一般无法进行机理建模。但是历史数据往往是容易获得的,这时就可使用数据建模。
典型的机器学习方法包括:决策树方法、人工神经网络、支持向量机、正则化方法。其他常见的预测方法还有近邻法、朴素贝叶斯(属于统计学习方法)等
1 决策树方法
决策树算法的典型代表是ID3算法(Iterative Dichotomiser 3,迭代二叉树3代)是由Ross Quinlan与1986年提出。ID3算法建立在奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(简单理论)。尽管如此,该算法也不是总是生成最小的树形结构,而是一个启发式算法。其核心思想是选取具有最高信息增益的属性(相对于信息熵最高的属性,可参考维基百科中二者的计算公式)作为当前节点的分裂属性。ID3算法构造的决策树对样本的识别率较高。
ID3算法的不足:1)ID3在搜索过程中不能回溯重新考虑选择过的属性,从而可能收敛到局部最优解而不是全局最优解;2)使用信息增益度量每次都选择取值数目最多的属性,这未必合理;3)ID3只能处理离散值,不能处理连续值;4)当训练样本过小或包含噪声时,容易导致过度拟合(overfitting)。
针对ID3的不足,Quinlan于1993年提出了ID3的改进算法:C4.5算法。C4.5主要特点:用信息增益比率作为选择标准;合并连续属性的值;可以处理缺少属性值的训练样本;运用不同的剪枝策略避免过度拟合;K折交叉验证等。剪枝策略可分为预剪枝(pre-pruning)和后剪枝(post-pruning)。预剪枝通过建立某些规则限制决策树的充分生长,后剪枝则是等决策树充分生长完毕后再剪去那些不具有一般代表性的叶节点或者分枝。实际应用中更多采用后剪枝。
2 人工神经网络
人工神经网络,Artificial Neural Networks(ANNs),是对人脑若干基本特性的抽象。它由大量神经元通过丰富的连接构成多层网络,用以模拟人脑功能。实际上,神经网络是不依赖于模型的自适应函数估计器,可以实现任意的函数关系。定量和定性的信息都可贮存在网络内的各神经元中,也就是说,它可以同时处理定量和定性知识,可以用于回归和分类。而且网络有很强的稳定性和容错性。
神经网络方法模拟人脑神经元结构,以MP模型和Hebb学习规则为基础。主要包括三种神经网络模型[2]:
(1)前馈式网络。它以感知机、反向传播模型、函数型网络为代表,可用于预测、模式识别方面。
(2)反馈式网络。它以Hopfield的离散模型和连续模型为代表,分别用于联想记忆和优化计算。
(3)自组织网络。它以ART模型、Koholon模型为代表,用于聚类分析等方面。
神经网络的不足:神经网络容易陷入局部最小点,易出现过度拟合而使得泛化能力较差;网络拓扑结构的确定没有成熟的理论指导;神经网络训练代价很高;其解不具有稀疏性且难以解释。
3 支持向量机
支持向量机,Support Vector Machines(SVM),是20世纪90年代Vapnik等人根据统计学习理论中结构风险最小化原则提出的一种机器学习方法。SVM最初是从分类问题提出的,后来扩展到求解回归问题。SVM是从线性可分的二分类问题开始的,再逐步向线性不可分问题、非线性问题深入,最后推广到线性和非线性回归问题建模。
对于二次规划的求解可采用SMO算法。对于回归问题,需要依靠不敏感损失函数。
SVM在解决小样本、非线性及高维模式识别中表现出许多特有的优势。
支持向量机方法是在机器学习理论指导下专门针对有限样本设计的学习方法,不仅对于小样本问题可以得到最优解,而且SVM模型具有很强的泛化能力。更为突出的是SVM最终转化为求解一个凸二次规划问题,在理论上可以得到全局最优解,克服了一些传统方法(如神经网络方法)可能陷入局部极值的不足。虽然SVM与神经网络相比有明显优势,但在实际应用中还存在一些问题,比如对于大规模的数据集,由于SVM要解凸二次规划而使算法效率很低,甚至无法进行;SVM对奇异值的稳健性不高;SVM的解不具有稀疏性,存在着大量冗余支撑向量;其参数没有好的选择策略。
4 正则化方法
针对上述神经网络和SVM的不足,提出了一些满足不同性能要求的基于正则化的框架模型,其典型代表有Lasso模型(Least Absolute Selection and Shrinkage Operator模型)和推广的Lasso模型、L1/2正则化模型及其迭代阈值算法等。
Lasso方法用模型系数的绝对值函数作为惩罚来压缩模型系数,使绝对值较小的系数自动压缩为0,这样得到的模型具有稀疏性,从而同时实现显著性变量的选择和对应参数的轨迹。Lasso模型采用平方损失函数而导致其稳健性较差,而且在很多应用场合(如分类问题)损失函数不宜采用平方损失,因此对Lasso模型进行推广,使用其他损失函数,可应用于回归问题和分类问题。
Lasso模型和推广的Lasso模型都属于L1正则化模型,是凸优化问题,有很多算法可以求解,但梯度Boosting算法最实用。L1/2正则化模型比L1正则化模型的解更稀疏,虽然它是非凸优化问题,难以求解,但使用L1/2迭代阈值算法可巧妙地对其求解。
参考资料:
[1]《大话数据挖掘》
[2]《数据仓库技术与联机分析处理》