Matlab中特征选择reliefF算法使用方法(分类与回归)

  1. ReliefF简介

ReliefF是特征选择的一种算法,在高维特征样本中,选取部分具有代表性的特征,从而降低样本特征维度。它也是relief算法的进阶。Relief算法只能用来做二分类,但其算法简单,效率高,结果不错,因此才有了其进阶算法ReliefF。ReliefF不仅可以完成多分类任务,也可以胜任回归任务。

  1. relieff()函数

示例:

[ranks,weights] = relieff(X,y,k)
[ranks,weights] = relieff(X,y,k,Name,Value)

(1)输入参数

  • X:样本数据集
  • y:与X对应的样本标签
  • k:一个超参数,relieff中用到了KNN最近邻算法,k为同类样本最近邻的数量。需要根据不同数据处理情况调整参数
  • Name:一些拓展设置,一般不常用,详细可看matlab文档,其中’method’比较常用,用来选择是做回归还是分类任务
  • Value:为Name的值,’method’对应的Value为’regression’或’classification’,对应的”回归”或分类

(2)输出参数

  • ranks:对各个维度特征按照重要程度排序,例如ranks = [3,1,2],表示第3个维度最重要,第1个维度其次,第2个维度最不重要
  • weights:原样本每个维度的重要权重,例如:weights = [0.5,0.1,0.4],表示第一个维度权重为0.5,最重要,第二个维度权重0.1,最不重要,第三个为0.4,第二重要

  • relieff()函数做分类任务特征选择

示例代码:


load fisheriris%matlab中自带的数据集
[ranks,weights] = relieff(meas,species,10,'method','classification')

结果如下:表示第4维度特征和第3维度特征权重较大,因此我们就可以取原数据中第4维度数据和第3维度数据用于分类,其余丢弃,将4维数据降到了2维

Matlab中特征选择reliefF算法使用方法(分类与回归)

@注意@:标签是数字,函数会默认用于回归。如果想要标签是数字,但想用于分类,就需要加上’method’,’classification’;否则,函数会默认用于回归。上述例子中使用的species是字符串,因此默认用于分类,可以不需要加’method’,’classification’。

  1. relieff()函数做回归任务特征选择
%针对回归任务数据集,只需要将分类任务中的classification换成regression即可
[ranks,weights] = relieff(meas,species,10,'method','regression')

Original: https://blog.csdn.net/weixin_44248258/article/details/122180369
Author: Karthus_冲冲冲
Title: Matlab中特征选择reliefF算法使用方法(分类与回归)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/626941/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球