ReliefF 的原理


🌟 ReliefF 是什么?

ReliefF 是一种"基于邻居差异"的特征选择方法,用来评估每个特征对分类任务的贡献大小。

它的核心问题是:

"我怎么知道某个特征是不是重要?是不是有能力把不同类别的数据区分开?"

而 ReliefF 的思路是:

"我拿一个样本,看看它和同类 样本在特征上是否接近,和异类样本是否远离。如果某个特征能保持'同类接近、异类远离',那这个特征就重要!"


✅ 用生活例子解释一下

假如你想根据一堆人的特征(如身高、体重、发色、学历等)来判断他们是否是"运动员",现在你想知道哪个特征最有用。

假设场景:

  • 你随机选中一个人小张,他是个运动员;
  • 你找到一个离他最像的非运动员 (比如小李),再找一个最像的运动员(小王);
  • 比较小张和小王、小李在每个特征上的差别:
    • 如果"身高"在小张和小王之间很接近、而和小李差很多,就说明"身高"可能是个好特征;
    • 如果"发色"在三人之间都差不多,那"发色"可能没啥用。

🧠 原理分解(逐步详解)

❶ 目标:

计算每个特征 A A A 的一个权重分数 W [ A ] W[A] W[A],表示该特征的区分能力。


❷ 基本流程:

假设你有 m m m 个样本、 d d d 个特征:

  1. 初始化所有特征的权重为 0
  2. 重复 N N N 次(采样 N N N 个样本):
    1. 随机选一个样本 x i x_i xi
    2. 找到:
      • 最近的同类样本(Hit)
      • 最近的异类样本(Miss)
    3. 对每个特征 A A A:
      • 减去 : x i x_i xi 与 Hit 的特征差异(越像越好,差异越小越重要)
      • 加上 : x i x_i xi 与 Miss 的特征差异(越不像越好,差异越大越重要)

公式是这样的(简化写法):
W [ A ] = W [ A ] − diff ( A , x i , Hit ) + diff ( A , x i , Miss ) W[A] = W[A] - \text{diff}(A, x_i, \text{Hit}) + \text{diff}(A, x_i, \text{Miss}) W[A]=W[A]−diff(A,xi,Hit)+diff(A,xi,Miss)

最终, W [ A ] W[A] W[A] 越大的特征,越有能力帮助分类。


❸ diff 怎么算?

对于一个特征 A A A 和两个样本 x i x_i xi, x j x_j xj:

  • 如果 A A A 是连续型特征:
    diff ( A , x i , x j ) = ∣ x i [ A ] − x j [ A ] ∣ max ( A ) − min ( A ) \text{diff}(A, x_i, x_j) = \frac{|x_i[A] - x_j[A]|}{\text{max}(A) - \text{min}(A)} diff(A,xi,xj)=max(A)−min(A)∣xi[A]−xj[A]∣
  • 如果 A A A 是离散型特征:
    diff ( A , x i , x j ) = { 1 , 若 x i [ A ] ≠ x j [ A ] 0 , 若 x i [ A ] = x j [ A ] \text{diff}(A, x_i, x_j) = \begin{cases} 1, & \text{若 } x_i[A] \ne x_j[A] \\ 0, & \text{若 } x_i[A] = x_j[A] \end{cases} diff(A,xi,xj)={1,0,若 xi[A]=xj[A]若 xi[A]=xj[A]

🧠 那 ReliefF 比原版 Relief 好在哪?

ReliefF 是对原始 Relief 的扩展,它有几个改进点:

原版 Relief ReliefF 改进点
只能处理二分类问题 支持多分类
只找一个 Hit 和 Miss 可以找多个(k 个)Hit 和 Miss,平均效果更稳定
对噪声敏感 多邻居平均后更鲁棒
不能处理缺失值 ReliefF 支持缺失值插补

✅ 总结一句话:

ReliefF 本质上是用"邻居之间的特征差异"来衡量一个特征的重要性:

如果同类越像、异类越不像,就说明这个特征越有区分能力,权重越高。


相关推荐
万事可爱^2 个月前
特征选择方法
人工智能·学习·机器学习·监督学习·特征选择
CH3_CH2_CHO2 个月前
【机器学习】特征工程
人工智能·机器学习·特征预处理·特征选择·特征提取·特征组合
&永恒的星河&4 个月前
机器学习中的常用特征选择方法及其应用案例
人工智能·机器学习·特征工程·特征选择·机器学习特征选择方法·特征选择常用方法
机器不会学习CL8 个月前
智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器)
python·算法·matlab·特征选择·鲸鱼优化
机器不会学习CL8 个月前
智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(SVM分类器)
算法·支持向量机·matlab·特征选择
胖哥真不错9 个月前
Python基于逻辑回归的L1正则化(Lasso Logistic Regression)进行分类数据的特征选择项目实战
python·逻辑回归·项目实战·特征选择·l1正则化·分类数据
deephub9 个月前
深入浅出:可视化理解揭示决策树与梯度提升背后的数学原理
人工智能·python·决策树·机器学习·特征选择
嘿嘻哈呀10 个月前
基于遗传算法和决策树的特征选择
决策树·机器学习·遗传算法·特征选择
SZX03111 年前
机器学习python实践——由特征选择引发的关于卡方检验的一些个人思考
人工智能·python·机器学习·特征选择·卡方检验