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 的扩展,它有几个改进点:

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

✅ 总结一句话:

ReliefF 本质上是用“邻居之间的特征差异”来衡量一个特征的重要性:
如果同类越像、异类越不像,就说明这个特征越有区分能力,权重越高。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/76738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​asm汇编源代码之-汉字点阵字库显示程序源代码下载​

汉字点阵字库显示程序 源代码下载 文本模式下显示16x16点阵汉字库内容的程序(标准16x16字库需要使用CHGHZK转换过后才能使用本程序正常显示) 本程序需要调用file.asm和string.asm中的子程序,所以连接时需要把它们连接进来,如下 C:\> tlink showhzk file string 调用参…

【已更新完毕】2025泰迪杯数据挖掘竞赛B题数学建模思路代码文章教学:基于穿戴装备的身体活动监测

基于穿戴装备的身体活动监测 摘要 本研究基于加速度计采集的活动数据,旨在分析和统计100名志愿者在不同身体活动类别下的时长分布。通过对加速度数据的处理,活动被划分为睡眠、静态活动、低强度、中等强度和高强度五类,进而计算每个志愿者在…

Ubuntu24.04装机安装指南

文章目录 Ubuntu24.04装机安装指南一、分区说明二、基础软件三、使用fcitx5配置中文输入法四、安装搜狗输入法【**不推荐**】1. 安装fcitx2. 安装输入法 五、禁用/home目录下自动生成文件夹六、更新软件源1. 针对**新配置方式**的清华源替换方法2. 针对**老配置方式**的清华源替…

互联网三高-数据库高并发之分库分表ShardingJDBC

1 ShardingJDBC介绍 1.1 常见概念术语 ① 数据节点Node:数据分片的最小单元,由数据源名称和数据表组成 如:ds0.product_order_0 ② 真实表:再分片的数据库中真实存在的物理表 如:product_order_0 ③ 逻辑表&#xff1a…

BM25、BGE以及text2vec-base-chinese的区别

BM25、BGE以及text2vec-base-chinese的区别 BM25 原理:BM25(Best Matching 25)是一种基于概率检索模型的算法,它通过考虑查询词与文档之间的匹配程度、文档的长度等因素,来计算文档对于查询的相关性得分。具体来说,它会给包含查询词次数较多、文档长度适中的文档更高的分…

Python中try用法、内置异常类型与自定义异常类型拓展

目录 try介绍与语法格式try具体使用案例except的异常类型简介案例内置的常见异常类型自定义异常类型继承关系用途 注意事项 try介绍与语法格式 在 Python 里,try 语句主要用于异常处理,其作用是捕获并处理代码运行期间可能出现的异常,避免程…

【第41节】windows的中断与异常及异常处理方式

目录 一、中断与异常处理 1.1 中断与异常 1.2 IDT 1.3 异常的概念 1.4 异常分类 二、windows异常处理方式 2.1 概述 2.2 结构化异常处理 2.3 向量化异常处理之VEH 2.4 向量化异常处理之VCH 2.5 默认的异常处理函数 2.6 如何手动安装 SEH 节点 2.7 异常处理的优先级…

分布式日志治理:Log4j2自定义Appender写日志到RocketMQ

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

【HTML】html文件

HTML文件全解析:搭建网页的基石 在互联网的广袤世界里,每一个绚丽多彩、功能各异的网页背后,都离不开HTML文件的默默支撑。HTML,即超文本标记语言(HyperText Markup Language),作为网页创建的基…

oracle命令上下左右键无法使用如何解决?

1、问题如图 2、解决办法 (1) 安装readline yum -y install readline* (2)安装 rlwrap ##下载 wget http://files.cnblogs.com/files/killkill/rlwrap-0.30.tar.gz.zip ##解压 tar -xzvf rlwrap-0.30.tar.gz.zip ##编译安装 ./configure make &&…

vue事假机制都有哪些

Vue 的事件机制主要包含以下几种类型和方式,可以分为组件内部事件、父子组件通信事件、原生 DOM 事件封装、修饰符增强等,下面详细分类介绍: 一、DOM 事件绑定(最基础的事件) 使用 v-on(或简写 &#xff0…

系统编程2(消息队列)

⦁ 消息队列概念 Linux系统中消息队列(Message Queue)是进程间通信的一种方式,这种通信机制的好处是可以传输指定类型(用户可以自行定义)的数据,相同类型的数据根据到达顺序在队列中进行排队。 当然,不同类型的数据不…

Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(二)

Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(二) 7. 实现条件WGAN-GP # 训练条件WGAN-GP def train_conditional_wgan_gp():# 用于记录损失d_losses []g_losses []# 用于记录生成样本的多样性(通过类别分…

python 微博爬虫 01

起因, 目的: ✅下载单个视频,完成。✅ 获取某用户的视频列表,完成。剩下的就是, 根据视频列表,逐个下载视频,我没做,没意思。获取视频的评论,以后再说。 关键点记录: 1. 对一个视…

Servlet、HTTP与Spring Boot Web全面解析与整合指南

目录 第一部分:HTTP协议与Servlet基础 1. HTTP协议核心知识 2. Servlet核心机制 第二部分:Spring Boot Web深度整合 1. Spring Boot Web架构 2. 创建Spring Boot Web应用 3. 控制器开发实践 4. 请求与响应处理 第三部分:高级特性与最…

vue中根据html动态渲染内容2.0

上次使用的是p标签用的contenteditable代替的可编辑的input,最后实现还是选择了用el-input的textarea方式。 一开始考虑的是需要根据用户输入自动撑开输入框,所以选择了p标签可编辑。 最后发现还是el-input会更好一点,只不过需要处理输入框撑…

CentOS 系统磁盘扩容并挂载到根目录(/)的详细步骤

在使用 CentOS 系统时,经常会遇到需要扩展磁盘空间的情况。例如,当虚拟机的磁盘空间不足时,可以通过增加磁盘容量并将其挂载到根目录(/)来解决。以下是一个完整的操作流程,详细介绍了如何将新增的 10G 磁盘…

LINUX基础 [二] - Linux常见指令

目录 💻前言 💻指令 🎮ls指令 🎮pwd指令 🎮whoami指令 🎮cd指令 🎮clear指令 🎮touch指令 🎮mkdir指令 🎮rmdir指令 🎮rm指令 &#…

基于php的成绩分析和预警与预测网站(源码+lw+部署文档+讲解),源码可白嫖!

摘要 人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与网络技术的飞速发展,对政治、经济、军事、文化、教育等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套…

《从底层逻辑剖析:分布式软总线与传统计算机硬件总线的深度对话》

在科技飞速发展的当下,我们正见证着计算机技术领域的深刻变革。计算机总线作为信息传输的关键枢纽,其发展历程承载着技术演进的脉络。从传统计算机硬件总线到如今备受瞩目的分布式软总线,每一次的变革都为计算机系统性能与应用拓展带来了质的…