资源简介
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
评论
共有 条评论