Relief 特征选择算法简单介绍
相关文章
特征选择
LVW(Las Vegas Wrapper)特征选择算法简单介绍
Relief(Relevant Features) 是著名的过滤式特征选择方法,Relief 为一系列算法,它包括最早提出的 Relief 以及后来拓展的 Relief-F 和 RRelief-F ,其中最早提出的 Relief 针对的是二分类问题,RRelief-F 算法可以解决多分类问题,RRelief-F 算法针对的是目标属性为连续值的回归问题。
1 原始的 Relief 算法
最早提出的 Relief 算法主要针对二分类问题,该方法设计了一个“相关统计量”来度量特征的重要性,该统计量是一个向量,向量的每个分量是对其中一个初始特征的评价值,特征子集的重要性就是子集中每个特征所对应的相关统计量之和,因此可以看出,这个“相关统计量”也可以视为是每个特征的“权值”。可以指定一个阈值 τ\tauτ,只需选择比 τ\tauτ 大的相关统计量对应的特征值,也可以指定想要选择的特征个数 kkk,然后选择相关统计量分量最大的 kkk 个特征。
有了 Relief 的基本思想,那么现在的问题就转换成如何得到一种有效的权值或者相关统计量类对特征进行度量,Relief 借用了 “假设间隔”(hypothesis margin) 的思想,我们知道在分类问题中,常常会采用决策面的思想来进行分类,“假设间隔”就是指在保持样本分类不变的情况下,决策面能够移动的最大距离,可以表示为:
θ=12(∥x−M(x)∥−∥x−H(x)∥)(1)\theta = \frac{1}{2}(\|x-M(x)\|-\| x-H(x)\|) \tag{1}θ=21(∥x−M(x)∥−∥x−H(x)∥)(1)
其中,M(x)M(x)M(x)、H(x)H(x)H(x) 指的是与 xxx 同类的和与 xxx 非同类的最近邻点。
我们知道,当一个属性对分类有利时,则该同类样本在该属性上的距离较近,而异类样本在该属性上的距离较远,因此,若将假设间隔推广到对属性的评价中,则对应于公式(1)圆括号中的第一项越小,第二项越大,则该属性对分类越有利。“假设间隔”能对各维度上的特征的分类能力进行评价,从而就可以近似地估计出对分类最有用的特征子集,Relief 正是利用了这个特性。
假设训练集 DDD 为 (x1,y1),(x2,y2),⋯,(xm,ym){(x_1,y_1), (x_2,y_2),\cdots,(x_m,y_m)}(x1,y1),(x2,y2),⋯,(xm,ym),对每个样本 xix_ixi,计算与 xix_ixi 同类别的最近邻 xi,nhx_{i,nh}xi,nh,称为是 “猜中近邻”(near-heat),然后计算与 xix_ixi 非同类别的最近邻 xi,nmx_{i,nm}xi,nm,称为是 “猜错近邻”(near-miss),则属性 jjj 对应的相关统计量为:
δj=∑i−diff(xij,xi,nhj)2+diff(xij,xi,nmj)2(2)\delta^j=\sum_i{-diff(x_i^j, x_{i,nh}^j)^2+ diff(x_i^j, x_{i,nm}^j)^2} \tag{2}δj=i∑−diff(xij,xi,nhj)2+diff(xij,xi,nmj)2(2)
其中,xajx_a^jxaj 代表样本 xax_axa 在属性 jjj 上的取值,diff(xaj,xbj)diff(x_a^j,x_b^j)diff(xaj,xbj) 的计算取决于属性 jjj 的类型:
(1)对离散型属性:
diff(xaj,xbj)={0,xaj=xbj1,otherwisediff(x_a^j,x_b^j)= \begin{cases} 0, & x_a^j=x_b^j \\ 1, & otherwise \end{cases} diff(xaj,xbj)={0,1,xaj=xbjotherwise
(2)对连续型属性:
diff(xaj,xbj)=∣xaj−xbj∣diff(x_a^j,x_b^j)=| x_a^j-x_b^j | diff(xaj,xbj)=∣xaj−xbj∣
注:xajx_a^jxaj,xbjx_b^jxbj已经规范化到 [0,1][0,1][0,1] 区间。
从公式(2)中可以看出,若 xix_ixi 与其猜中近邻 xi,nhx_{i,nh}xi,nh 在属性 jjj 上的距离小于 xix_ixi 与其非同类别的最近邻 xi,nmx_{i,nm}xi,nm 的距离,则说明属性 jjj 对区分同类与异类样本是有利的,反之则不利,因此公式(2)的值越大则说明该属性的分类能力越强。
公式(2)得到的是单个样本对每个属性的评价值,将所有样本对同一个属性的评价值进行平均就得到了该属性的相关统计分量,分量值越大,分类能力就越强。
2 Relief-F
Relief 算法只能直接处理两分类的特征选择,改进的 Relief-F 算法能够处理多分类问题,它将多分类视为是一类对多类直接加以解决。其方法是寻找当前样本的各类最近邻点并综合加以计算。
假设数据集为 DDD,该数据集一共包含 ∣y∣|y|∣y∣ 个类别,对示例 xix_ixi,若它属于第 kkk 类(k∈{1,2,⋯,∣y∣}k\in\{1,2,\cdots, |y|\}k∈{1,2,⋯,∣y∣}),则 Relef-F 算法先在第 kkk 类的样本中寻找 xix_ixi 的最近邻 xi,nhx_{i,nh}xi,nh,作为样本 xix_ixi 的猜中近邻,然后在第 kkk 类之外的每个类别的样本中寻找 xix_ixi 的最近邻 xi,l,nmx_{i,l,nm}xi,l,nm(l=1,2,⋯,∣y∣;l≠kl=1,2,\cdots, |y|;l\neq kl=1,2,⋯,∣y∣;l=k),作为样本 xix_ixi 的猜错近邻,则相关统计量对应于属性 jjj 的分量为:
δj=∑i−diff(xij,xi,nhj)2+∑l≠k(pl×diff(xij,xi,l,nmj)2)\delta^j=\sum_i{-diff(x_i^j, x_{i,nh}^j)^2+\sum_{l\neq k} (p_l \times diff(x_i^j, x_{i,l,nm}^j)^2)} δj=i∑−diff(xij,xi,nhj)2+l=k∑(pl×diff(xij,xi,l,nmj)2)
其中,plp_lpl 为第 lll 类样本在数据集 DDD 中所占的比例。
【参考文献】
《机器学习》周志华著.–北京:清华大学出版社
Relief 特征选择算法简单介绍相关推荐
- 【转载】Relief 特征选择算法简单介绍
Relief 特征选择算法简单介绍 原创 2017年03月11日 16:56:11 标签: 机器学习 4279 相关文章 特征选择 LVW(Las Vegas Wrapper)特征选择算法简单介绍 ...
- Karplus-Strong 算法简单介绍和实现
Karplus-Strong 算法简单介绍和实现 本文为Coursera数字信号处理课程第一周内容,对相关课程刚兴趣的同学,请参看这里 为了有更好的交互性,本文所有代码均上传至Microsoft Az ...
- Relief特征选择算法
Relief特征选择算法 Relief算法最早由Kira提出,最初局限于两类数据的分类问题.Relief算法是一种特征权重算法(Feature weighting algorithms),根据各个特征 ...
- python特征选择relieff图像特征优选_基于Relief特征选择算法的研究与应用
作者姓名导师姓名文献出处论文摘要伴随着当代科学技术的高速发展,人类已经进入了信息爆炸的时代.数据挖掘技术通过从大量数据中揭示出隐含的信息,将海量的高维数据转换为有用的信息和知识.特征选择是数据挖掘中的 ...
- LRU(Least Recently Used)算法简单介绍
文章目录 LRU算法简介 使用场景 简单实现 简单介绍 LRU算法简介 LRU英文翻译过来就是least recently used,字面意思就是最近最少使用,说白了就是一种淘汰算法,当有新的元素插入 ...
- RSYNC及其算法简单介绍
现在的存储系统,本身都具备很强的迁移以及备份策略,虽然还是基于网络传输,有相对延迟,但是方便了不少.另外,现在使用的存储系统,读写瓶颈的问题,也大都改为对象存储. 而我们那时候做文件存储,最头疼的就是 ...
- 文本分析算法简单介绍-1
以下内容是基于李博<机器学习实践应用>,邹博小象学院<机器学习课程>以及李航书籍<统计学习方法>加上自己的理解提炼而成 文本分析算法大致可以分成3种方法:机械分词, ...
- 垃圾回收算法简单介绍——JVM读书笔记lt;二gt;
垃圾回收的过程主要包含两部分:找出已死去的对象.移除已死去的对象. 确定哪些对象存活有两种方式:引用计数算法.可达性分析算法. 方案一:引用计数算法 给对象中加入一个引用计数器.每当有一个地方引用它时 ...
- 神经网络之感知器算法简单介绍和MATLAB简单实现
Perceptron Learning Algorithm 感知机学习算法,在1943年被生物学家MeCulloch和数学家Pitts提出以后,面临一个问题:参数需要依靠人工经验选定,十分麻烦.因此人 ...
- Annoy算法简单介绍
Annoy算法 与Faiss相比,Annoy搜索,速度更快一点,主要目的是建立一个数据结构快速找到任何查询点的最近点.通过牺牲查询准确率来换取查询速度,这个速度比faiss速度还要快. 是什么 Ann ...
最新文章
- 清华团队曝光「新冠病毒」3D高清结构照!这个恶魔已感染1亿地球人
- js面向对象开发互联网机顶盒应用头端之四
- LeetCode Max Points on a Line
- org.apache.ibatis.binding.BindingException原因总结
- win7_oracle11g_64位连接32位PLSQL_Developer
- 判断字符串是数字、字符、还是...
- 数据:BTC全网算力为146.06 EH/s,新增地址数51.19万
- UE4之windows.h冲突
- poj 2018 Best Cow Fences 二分查找dp
- C#读取Excel文件(*.xls)|*.xls(2种方法)
- 铅酸电池充电C语言程序,铅酸电池如何充电_铅酸电池充电原理 - 全文
- 文氏电桥振荡电路Mulitisim仿真
- 如何爬取新三板数据库(一)
- Notification通知全文 7.0 and 8.0通知 ,横幅 ,显示,抖动,响铃
- 常规放大电路和差分放大电路
- hook(2)Activity启动流程,涨知识
- 如何做好软件维护工作
- 用计算机处理医学信息处理,医学信息处理
- 【Go语言学习】——HTTP客户端和服务端
- grant change notification to 用户名的探究
热门文章
- 关于 mcafee 8.7 更新失败的 解决办法
- pp助手苹果版_PP助手将下架?越狱时代已经过去,到底是该喜该悲
- html css js介绍ppt,HTML+CSS+JS-入门基础.ppt
- jxta p2p 网络实现
- 中达优控触摸屏编程视频教程_中达优控触摸屏编程软件下载
- 群辉做无盘服务器,累了,最后的福利:NAS做家用无盘近完美资源包
- 小米max2刷android p,小米max2刷LineageOS记录
- PowerDesigner绘制ER图
- 精讲贪吃蛇(c语言篇)(代码可直接取)
- android ijk 播放器,ijkplayer 播放器:在Android端进行native调试