标签:
main idea:
计算每一个feature的重要性,选取重要性前k的feature;
衡量一个feature重要的方式:如果一个feature重要,则在这个feature上加上noise,会对最后performance影响很大。
1.feature selection的含义及优缺点
去除冗余的特征(比如,年龄和出生年月两个特征,根据出生年月能计算出年龄)
无关的特征(研究病人的病情,和他的医保类型没有关系)
优点(选好特征后):
a. 效率(feature变少,维度变低)
b. 泛化(坏的特征被剔除,相当于剔除了特征中noise)
c. 可解释性
缺点(特征选择时):
a. 特征组合的个数很多,如果遍历每种组合,计算量大
b. 如果没有选到合适的特征,用一些不怎么好的特征进行模型训练,会带来过拟合
c. 如果b中情况发生,则不具有可解释性
2.feature select方法(random test)
根据加上noise和没有加noise之间的performance差距衡量特征的重要性
在feature i上加noise(保持了feature i的分布):
保持其他teature不变,随机排列 Xn,i 的顺序(permutation)
3.结合OOB做feature selection
根据上面的公式,可以知道,需要进行d+1次训练(d为特征的个数),原始数据上进行的训练+d*特征i上加了noise的数
据上进行的训练
当使用bootstrap+aggregation训练模型时,没有小g都会有一部分OOB数据,使用下列近似方法,避免d次训练
在验证时进行permutation
计算G时会用到每个小g,当使用 Xi (Xi1,Xi2,…,Xin)计算gt时(假设在第2个特征上加noise),从对于gt OOB的数据中,随
机选取一条数据,Xj (Xj1,Xj2,…,Xjn) ,使用其第2个特征上的值代替Xi中第2个特征,即使用
(Xi1,Xj2,…,Xin) 计算gt
标签:
原文地址:http://www.cnblogs.com/porco/p/4261006.html