• 大小: 4KB
    文件类型: .m
    金币: 2
    下载: 2 次
    发布日期: 2021-01-03
  • 语言: Matlab
  • 标签: reliefF  

资源简介

Matlab reliefF多分类特征排序算法

资源截图

代码片段和文件信息

%输入:无标签的data(行为样本,列为特征)和其对应标签;M是重复次数;K为取近邻数
%输出:每个特征的权值,未排序。
function [W] = F_ReliefF(datalabelsMK)
 [nsampnattr]=size(data);                  %无标签data的行数nsamp即总样本数、列数nattr即特征数
 class_info=tabulate(labels);          %class_info第1列为各类的类别值,第2列为每类别的样本数,第3列为所占百分比。temp的行数即总类别数。
 class=size(class_info1);
 diff_divisor = max(data) - min(data);      %max(data)每列最大值并形成一个行向量,min(data)每列最小值并形成一个行向量,两向量相减
 weight=zeros(Mnattr);                     %初始化存放M次权值的矩阵

 for m=1:M                             %从随机选样本到算K个邻近值等都要做M次。  %rand(1)生成空格1个0-1(不包括1)随机数。
     R = round(nsamp * rand(1))+1;     %R是被选中的样本行号。将nsamp*rand(1)四舍五入取整,范围:1<=R     diff_base=zeros(nsampnattr); 
     distance=zeros(nsamp3);          %生成总样本数的行,3列的距离矩阵。第1列放各样本权值,第2列放样本编号,第3列放该样本的类别
     classk_miss=cell(1

评论

共有 条评论