楼主贡献新书的精神实在可嘉,值得我们学习.
不过,本书的实际项目应用的参考价值不太大,全书基本上是两个研讨会上的论文汇总,每章的作者各不相同,全书的思路比较散,更重要的是从数据挖掘的项目实战来说,借鉴性不强.
本书的所有feature selection的方法基本上都是新的,探索性质的,这从另一个角度来说,就是跟目前成熟的方法有很大的区别,而我们在项目实战中当然要应用目前主流的成熟的方法了哟.
那什么是目前主流的成熟的变量挑选的方法呢?我之前写过一篇日志,在此抛砖引玉,欢迎大家批评指正:
数据挖掘交流谈论(17,关于预测模型的输入变量挑选的讨论)
背景介绍:有网友“莫小贝”来信,希望谈谈预测模型的输入变量的挑选甄别的问题,“请问博主,在预测模型的建设过程中,面对几十、上百甚至更多的变量,究竟哪些可以作为输入变量,又有哪些是应该不与考虑的,有没有什么系统性的方法论或经验总结?希望可以得到你的指点,谢谢!”。
我的回复:莫小贝你好,这个问题是数据挖掘中的重要问题和核心问题之一,适当的输入变量挑选是一项比较复杂、耗时的工作,更是直接影响预测模型的最终效果和准确程度,所以这个工作怎么强调都不过分。我之前也一直没有机会作些总结,正好借此机会,尝试作个汇总,有不准确之处,在所难免,欢迎指正。
为什么要挑选输入变量?是因为预测模型的需要:一方面,输入变量之间应该尽量不要有大的关联(否则就有共线性co linearity的危害,相互强关联的输入变量对于预测模型来说是多余的有害的,使模型预测效果大大降低);另一方面,输入变量跟目标变量之间应该有大的关联,即所挑选出的自变量应该具有相当的预测的功能和性能;
具体来说,对于输入变量的挑选目前有一系列成熟的方法和工具算法,分为统计分析技术和业务经验参考,下面分别阐述。
第一, 最先想到的是基于相关业务背景的常识可以去掉一些明显的跟目标变量没有相关性的变量;另外,顺便提一下,当对于类别型变量转化成哑元时,通常的做法是当一个变量有N种离散值时(N一般小于10,否则要另外处理),所对应产生的哑元变量数量为N-1。
第二, 利用R square 指标和chi- square指标分别判断。在回归算法中,基于stepwise、forward、backward三种挑选输入变量的方法,主要通过对于R square(Coefficient of Multiple Determination)的提升效率的判断,来挑选甄别输入变量,而R square这个指标在回归中的含义通俗讲就是指各个自变量在多大程度上可以解释目标变量的可变性的。对于chi-square技术来说,通俗讲,chi- square分析主要是评价希望值和实际值的差异的,公式等于两者差的平方除以希望值。当chi- square的值大时,相对应的P-Value就很小,而P-Value代表的是上述差异发生的偶然性的可能性。所以,通常讲,小于0.01的P-Value值,同时chi-square比较大时,该变量被认为是值得输入模型的。基本上主流的分析挖掘软件都有这些判断的功能,在SAS中,利用proc logistic(针对连续型变量)和proc freq(针对类别型变量)这些小程序都可以比较容易得出结论的。
第三, 从回归模型的结论中,对于各个变量的系数所对应的显著性(Significant)和方差的观察,也可以作出对于变量的重要性判断的(看对应的Pr>T的值,以及Pr>F的值,如果小于0.01的话,说明对应的变量有较好的预测性,可以考虑放入预测模型中作为输入变量)。在实践中,这种方法是先将一些认为不错的变量放入回归模型,然后根据这些结论指标做相应的增减变量的调整,重新做回归模拟,直到比较合理的变量经过权衡之后被确定为止。
第四, 另外,在SAS EM中,有两个专门的节点工具(tree node, variable selection node)用于输入变量的挑选,其中variable selection节点所采用的两种不同的挑选变量的算法就是分别对应上述的R square 指标和chi- square指标。不过在SAS EM中,基于回归的方法只给出了stepwise的这种计算方式,这也可以看出,stepwise这种方法是相对来说最常用也比较有效的方法。
第五, 另外,常用的主成分分析和因子分析也可以有效降低输入变量的个数,这是另外一个大话题,以后再详细讨论。
第六, 从业务经验参考来讲,业务专家因为熟悉业务,潜意识里对于模型里面因变量和自变量的相互之间的关系比较有直觉有判断,所以对于业务专家的建议,如果积极沟通交流采纳的话,也可以明显提升变量挑选的速度和质量以及效率的。当然了,业务专家的建议到底是否合理,最终还是要通过模型以及相关的指标做最后的判断的。
第七, 最后,从项目实践的角度考虑,限于时间、成本、目标的特定需要,有时候个别变量尽管很重要,但是有可能被排除在外,比如这些变量的收集要花费太长的时间、太多的精力,这样权衡下来,有可能将它排除在外,尽管在理论上它非常重要。
没有哪种方法是万能的,项目实践中推荐的做法是尽可能多的尝试不同的变量评估方法,相互比较权衡后,最终决定合适的输入变量。
以上个人看法,挂一漏万,欢迎批评指教!
本日志选自本人数据挖掘应用专业博客的日志,
http://shzxqdj.blog.163.com/
我喜欢并身体力行着数据挖掘的营销应用,
上述的观点和思路欢迎大家拍砖,\指正,在数据挖掘实战应用中结识朋友,人生一大乐也
再次向楼主致意!