特征选择方法在建模中的应用
——以CHAID树模型为例
华东师范大学邝春伟
特征选择是指从高维特征集合中根据某种评估标准选择输出性能最优的特征子集,其目的是寻求保持数据集感兴趣特性的低维数据集合,通过低维数据的分析来获得相应的高维数据特性,从而达到简化分析、获取数据有效特征以及可视化数据的目标。
目前,许多机构的数据均已超载,因此简化和加快建模过程是特征选择的根本优势。
通过将注意力迅速集中到最重要的字段(变量)上,可以降低所需的计算量,并且可以方便地找到因某种原因被忽略的小而重要的关系,最终获得更简单、精确和易于解释的模型。
通过减少模型中的字段数量,可以减少评分时间以及未来迭代中所收集的数据量。
减少字段数量特别有利于Logistic 回归这样的模型。
SPSS Modeler是一个非常优秀的数据挖掘软件。
它的前身是SPSS Clementine及PASW Modeler。
该软件
的特征选择节点有助于识别用于预测特定结果的最重要的字段。
特征选择节点可对成百乃至上千个预测变量进行筛选、排序,并选择出可能是最重要的预测变量。
最后,会生成一个执行地更快且更加有效的模型—此模型使用较少的预测变量,执行地更快且更易于理解。
案例中使用的数据为“上海高中生家庭教育的调查”,包含有关该CY二中的304名学生参与环保活动的信息。
该数据包含几十个的字段(变量),其中有学生年龄、性别、家庭收入、身体状况情况等统计量。
其中有一个“目标”字段,显示学生是否参加过环保活动。
我们想利用这些数据来预测哪些学生最可能在将来参加环保活动。
案例关注的是学生参与环保活动的情况,并将其作为目标。
案例使用CHAID树构建节点来开发模型,用以说明最有可能参与环保活动的学生。
其中对以下两种方法作了对比:
•不使用特征选择。
数据集中的所有预测变量字段
均可用作CHAID 树的输入。
•使用特征选择。
使用特征选择节点选择最佳的4
个预测变量。
然后将其输入到CHAID 树中。
通过比较两个生成的树模型,可以看到特征选择如何产生有效的结果。
CHAID或卡方自动交互效应检测是一种通过使用卡
方统计量识别最优分割来构建决策树的分类方法。
CHAID 首先检查每个预测变量和结果之间的交叉列表,然后使用卡方独立性测试来检验显著性。
如果以上多个关系具有显著的统计意义,则CHAID将选择最重要(p 值最小)的预测变量。
如果预测变量具有两个以上的类别,将会对这些类别进行比较,然后将结果中未显示出差异的类别合并在一起。
此操作通过将显示的显著性差异最低的类别对相继合并在一起来实现。
当所有剩余类别在指定的检验级别上存在差异时,此类别合并过程将终止。
对于集合预测变量,可以合并任何类别;对于有序集合预测变量,只能合并连续的类别。
在一个空流工作区中,放置一个Statistics 文件源节点。
将此节点指向案例数据文件“上海高中生家庭教育的调查”。
添加类型节点。
在其“类型”选项卡上,将变量“q23是否参与过环保活动”的方向更改为输出。
将学生ID 字段的方向更改为无。
将所有其他字段的方向设
置为输入。
为流添加特征选择建模节点。
在此选项卡上,我们指定要筛选的规则和标准,或要筛选的字段。
例如在重要性指标中,我们可以设置“重要”的最小值及“一般重要”的最小值。
执行流以生成特征选择模型块。
在模型管理器中右键单击模型块,选择浏览以查看结果。
顶部面板显示了所找到的对预测非常有用的字段。
这些字段基于重要性排序。
底部面板显示了从分析中筛选出来的字段及筛选的原因。
通过检查顶部面板中的字段,可以确定在随后的建模会话中要使用哪些字段。
使用生成的特征选择模型,将其添加到流中,并将其与类型节点相连接。
双击该节点并使用模型浏览器以选择要在下游使用的字段。
虽然最初已将12个字段识别为重要字段和一般重要字段,但我们希望进一步减少预测变量集合的数目。
使用复选标记选中前
4个预测变量:
性别
q17(加强环保意识教育
的重要性)
q5 (整理房间经常性)q3 (征得父母同意?)
目标变量及4个预测变量的详细情况
目标变量(应变量)
Q23.您有没有为保护环境做过什么事情?
1. 没有
2. 有(请注明)
预测变量(自变量)
D1.您的性别是
1. 男
2. 女
Q3.您做学习之外的其它事情,是否需要征得父母同意?
1. 总是
2. 经常
3. 有时
4. 偶尔
5. 从不
Q5.您自己整理房间经常性如何?
1. 总是
2. 经常
3. 有时
4. 偶尔
5. 从不
Q17.您认为加强环保意识教育的重要性程度如何?
1. 非常重要
2. 比较重要
3. 一般
4. 不太重要
5. 一点也不重要
为了比较结果,我们向流中添加两个CHAID 建模节点:一个模型使用特征选择,另一个模型不使用特征选择。
将其中的一个模型连接到类型节点,另一个模型连接到已生成的特征选择模型。
在每个CHAID 节点上,选择节点设置中的启动交互会话选项。
以便展示模型的输出结果——生长树及模型提升情况。
执行使用数据集中所有预测变量的CHAID 节点(即连接到类型节点的节点)。
当节点执行时,注意观察执行节点所用的时间。
表会显示在结果窗口中。
从菜单中,选择树> 生长树,可生成并显示展开的树。
对另一个CHAID 节点(此节点仅使用4个预测变量)执行相同的操作,发现:
第二个模型的执行速度应比第一个模型快。
第二个树比第一个树包含的树节点也要少。
因此更易于理解。
但在决定使用此模型之前,需要查明此模型是否有效,并查明其与使用所有预测变量的模型相比较的结果。
打开树构建器后再次生成树。
在每个收益表中,都将其树的终端节点分组为四分位数。
要比较两个模型的有效性,可查看每个表中25% 分位数的提升(指数值)。
包括所有预测变量时,模型显示提升值170%。
即,具有这些节点中的特征的学生,其响应目标参与环保互动的可能性是其他学生的1.7倍。
要查看这些具体特征,可单击以选定顶部的行。
然后切换到“查看器”选项卡,其中相应的节点正以黑色突出显示。
沿树往下寻找每个突出显示的终端节点以查明这些预测变量是如何分割的。
25% 分位数自身包括4个节点。
如果仅包括前4个预测变量(由特征选择识别),则提升值为148%。
虽然此模型不如使用所有预测变量的模型那样有效,但它无疑也是有用的。
并且此模型25% 分位数仅包括3个节点,因此它更简单。
因此,我们可以确定特征选择模型比使用所有预测变量的模型更优越。
总结
使用较少的预测变量会降低成本。
这意味着要收集、处理和输入模型的数据减少。
并且节省了计算时间。
在本案例中,即使增加了额外的特征选择步骤,但因具有较小的预测变量集合,模型构建的速度也明显提高。
如果使用较大的实际数据集,则节省的时间应大大增加。
使用数目较少的预测变量会使评分更加简单。
如案例所示,可能仅需识别有可能参与环保活动的学生的4 个而不是12 个特征。
请注意,如果预测变量数越多,则过度拟合模型的风险越大。
生成的模型越简单,则对其他数据集会越有利。