relief
Relief(Relevant Features)是著名的过滤式特征选择方法,Relief 为一系列算法,它包括最早提出的 Relief 以及后来拓展的 Relief-F 和 RRelief-F ,其中最早提出的 Relief 针对的是二分类问题,RRelief-F 算法可以解决多分类问题,RRelief-F 算法针对的是目标属性为连续值的回归问题。
1、原始的 Relief 算法
最早提出的 Relief 算法主要针对二分类问题,该方法设计了一个“相关统计量”来度量特征的重要性,该统计量是一个向量,向量的每个分量是对其中一个初始特征的评价值,特征子集的重要性就是子集中每个特征所对应的相关统计量之和,因此可以看出,这个“相关统计量”也可以视为是每个特征的“权值”。可以指定一个阈值 ττ,只需选择比 ττ 大的相关统计量对应的特征值,也可以指定想要选择的特征个数 kk,然后选择相关统计量分量最大的 kk 个特征。
有了 Relief 的基本思想,那么现在的问题就转换成如何得到一种有效的权值或者相关统计量类对特征进行度量,Relief 借用了“假设间隔”(hypothesis marginhypothesis margin)的思想,我们知道在分类问题中,常常会采用决策面的思想来进行分类,“假设间隔”就是指在保持样本分类不变的情况下,决策面能够移动的最大距离,可以表示为:
θ=12(∥x−M(x)∥−∥x−H(x)∥) (1)θ=12(‖x−M(x)‖−‖x−H(x)‖) (1)
其中,M(x)M(x)、H(x)H(x) 指的是与 xx 同类的和与 xx 非同类的最近邻点。
我们知道,当一个属性对分类有利时,则该同类样本在该属性上的距离较近,而异类样本在该属性上的距离较远,因此,若将假设间隔推广到对属性的评价中,则对应于公式(1)圆括号中的第一项越小,第二项越大,则该属性对分类越有利。“假设间隔”能对各维度上的特征的分类能力进行评价,从而就可以近似地估计出对分类最有用的特征子集,Relief 正是利用了这个特性。
假设训练集 DD 为 (x1,y1),(x2,y2),⋯,(xm,ym)(x1,y1),(x2,y2),⋯,(xm,ym),对每个样本 xixi,计算与 xixi 同类别的最近邻 xi,nhxi,nh,称为是“猜中近邻”(near−heatnear−heat),然后计算与 xixi 非同类别的最近邻 xi,nmxi,nm,称为是“猜错近邻”(near−missnear−miss),则属性 jj 对应的相关统计量为:
δj=∑i−diff(xji,xji,nh)2+diff(xji,xji,nm)2 (2)δj=∑i−diff(xij,xi,nhj)2+diff(xij,xi,nmj)2 (2)
其中,xjaxaj 代表样本 xaxa 在属性 jj 上的取值,diff(xja,xjb)diff(xaj,xbj) 的计算取决于属性 jj 的类型:
对离散型属性:
diff(xja,xjb)={0,1,xja=xjbotherwisediff(xaj,xbj)={0,xaj=xbj1,otherwise
对连续型属性:
diff(xja,xjb)=|xja−xjb|diff(xaj,xbj)=|xaj−xbj|
注:xjaxaj,xjbxbj已经规范化到 [0,1][0,1] 区间。
从公式(2)中可以看出,若 xixi 与其猜中近邻 xi,nhxi,nh 在属性 jj 上的距离小于 xixi 与其非同类别的最近邻 xi,nmxi,nm 的距离,则说明属性 jj对区分同类与异类样本是有利的,反之则不利,因此公式(2)的值越大则说明该属性的分类能力越强。
公式(2)得到的是单个样本对每个属性的评价值,将所有样本对同一个属性的评价值进行平均就得到了该属性的相关统计分量,分量值越大,分类能力就越强。
2、Relief-F
Relief 算法只能直接处理两分类的特征选择,改进的 Relief-F 算法能够处理多分类问题,它将多分类视为是一类对多类直接加以解决。其方法是寻找当前样本的各类最近邻点并综合加以计算。
假设数据集为 DD,该数据集一共包含 |y||y| 个类别,对示例 xixi,若它属于第 kk 类(k∈{1,2,⋯,|y|}k∈{1,2,⋯,|y|}),则 Relef-F 算法先在第 kk 类的样本中寻找 xixi 的最近邻 xi,nhxi,nh,作为样本 xixi 的猜中近邻,然后在第 kk 类之外的每个类别的样本中寻找 xixi 的最近邻 xi,l,nmxi,l,nm(l=1,2,⋯,|y|;l≠kl=1,2,⋯,|y|;l≠k),作为样本 xixi 的猜错近邻,则相关统计量对应于属性 jj 的分量为:
δj=∑i−diff(xji,xji,nh)2+∑l≠k(pl×diff(xji,xji,l,nm)2)δj=∑i−diff(xij,xi,nhj)2+∑l≠k(pl×diff(xij,xi,l,nmj)2)
其中,plpl 为第 ll 类样本在数据集 DD 中所占的比例。
【参考文献】
相关阅读
mRMR特征选择算法(feature_selection)的使用
源程序下载地址,本机电脑安装java环境,具体环境安装可自行百度,google. 用以实现用 mRMR 从特征集中提取特征的程序(python) #inpor