过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。这相当于先用特征选择过程对初始特征进行“过滤“,再用过滤后的特征来训练模型。
Relief算法
Relief是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量“来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征多对应的相关统计量之和来决定。 于是,最终只需指定一个阈值τ,然后选择比τ大的相关统计量分量所对应的特征即可;也可指定欲选取的特征个数k,然后选择相关统计量分量最大的k个特征。 显然relief的关键式如何确定相关统计量。给定训练集{(x1,y1),(x2,y2),…,(Xn,Yn)},对每个实例x_i,Relief现在x_i的同类样本中寻找其近邻x_(i,nh),称为“猜中近邻“,再从x_i的异类样本中寻找其最近邻x_(i,nm),称为”猜错近邻“,然后,相关统计量对应属性j的分量为: 其中x_a^j表示样本x_a在属性j上的取值,diff(x_a^j,x_b^j)取决于属性j的类型:若属性j为离散型,则x_a^j=x_b^j时(x_a^j,x_b^j)=0,否则为1;若属性j为连续型,则diff(x_a^j,x_b^j)=| x_a^j-x_b^j|,注意x_a^j ,x_b^j已规范化到[0,1]区间。 从分量的计算公式可以看出,若x_i与其猜中近邻x_(i,nh)在属性j上的距离小于x_i与其猜错近邻x_(i,nm)在属性j上的距离,则说明属性j对于区分同类与异类样本是有益的,于是增大属性j所对应的统计量分量; 反之则说明属性j起负面作用,于是减小属性j所对应的统计量分量。最后,对于基本不同样本得到的估计结果进行平均,就得到个属性的相关统计量分量,分量值越大,则对应属性的分类能力就越强。 分量计算公式中的i指出了用于平均的样本下表。实际上Relief秩序在数据集的采样上而不必在整个数据集上估计相关统计量。显然Relief的时间开销随采样次数以及原始特征数线性增长,因此是一个运行效率很高的过滤式特征选择算法。