ReliefF算法是Relief算法的扩展, Relief算法只适用于两类样本的问题, ReliefF算法可以应用到多个样本上。
ReliefF算法步骤如下:
现有不同类别的样本若干, 对每类样本称作 Xn。
1. 从所有样本中,随机取出一个样本a。
2. 在与样本a相同分类的样本组内,取出k个最近邻样本。
3. 在所有其他与样本a不同分类的样本组内, 也分别取出k个最近邻样本。
4. 计算每个特征的权重。
对于每个特征的权重有:
其中, p(C) 为该类别的比例。 p(Class(R)) 为随机选取的某样本的类别的比例。
可以看到,权重意义在于, 减去相同分类的该特征差值, 加上不同分类的该特征的差值。(若该特征与分类有关,则相同分类的该特征的值应该相似, 而不同分类的值应该不相似)
最后可以根据权重排序,得到合适的特征。