当前位置:文档之家› 特征选择

特征选择

Relief算法最早由Kira提出,最初局限于两类数据的分类
问题。Relief算法是一种特征权重算法,根据各个特征和
类别的相关性赋予特征不同的权重,权重小于某个阈值的 特征将被移除。 Relief算法中特征和类别的相关性是基于特征对近距离样 本的区分能力。
-3-
Relief 算法
算法从训练集D中随机选择一个样本R,然后从和R同类的
-5-
-6-
Relief 算法
由于Relief算法比较简单,但运行效率高,并且结果也比较 令人满意,因此得到广泛应用,但是其局限性在于只能处理 两类别数据. 1994年Kononeill对其进行了扩展,得到了ReliefF作算法,
可以处理多类别问题。
该算法用于处理目标属性为连续值的回归问题。ReliefF算法 在处理多类问题时,每次从训练样本集中随机取出一个样本 R,然后从和R同类的样本集中找出R的k个近邻样本 (near Hits),从每个R的不同类的样本集中均找出k个近邻样 本(near Misses),然后更新每个特征的权重
1
2
0.1226
0.3590
0.3754
第四个特征最重要,第二个特征最不重要
-19-
rankfeatures 函数
[IDX, Z] = rankfeatures(X, Group) 使用类别可分性原则排序特征
Rankfeatures使用单独的评价准则对二元分类问题排序特
征。 X是数据矩阵,每一列是一个观测数据向量,行的数量对 应于原始特征集合中特征的数量,Group是类标号 IDX是那些最显著的特征的行的索引,Z是使用准则的绝对
是1-10,因此不需要归一化,但是数据样本中存在一些不 完整,会影响实际的程序运行,经过程序处理,将这一部 分数据删除。这些不完整的数据都是由于实际中一些原因 没有登记或者遗失的,以“?”的形式代表。
-13-
Relief 实例
1. 将数据直接可按ctrl+A,ctrl+C拷贝到excel文件中。 2. 拷贝后,在excel中可用数据分割,按属性分割单列数
特征权重的计算经常依赖于K,如果设置K为1,结果可能
因为数据噪声而不可靠,如果K设置为X矩阵中观测样本的 数量相当,relieff可能查找重要的属性失败。 一般情况下我们可设置K=10
可设置多个不同的K来评价属性排序的稳定性
-17-
Relief 函数介绍
例子: load ionosphere; %装载样本数据 [ranked,weights] = relieff(X,Y,10); %特征排序
和Near Miss上的距离,说明该特征对区分同类和不同类 的最近邻起负面作用,则降低该特征的权重。
-4-
Relief 算法
以上过程重复m次,最后得到各特征的平均权重。特征的
权重越大,表示该特征的分类能力越强,反之,表示该特
征分类能力越弱。Relief算法的运行时间随着样本的抽样 次数m和原始特征个数N的增加线性增加,因而运行效率 非常高。
7. 调用matlab函数 [ranked,weight] = relieff(breastcancer(:,1:10),breastcancer(:,11),10) 实现relieff特征选择
-15-
Relief 函数介绍
[RANKED,WEIGHT] = relieff(X,Y,K) 使用Relieff算法对分类问题计算属性的权重和排名
-7-
-8-
-9-
Relief 算法
Relief系列算法运行效率高,对数据类型没有限制,属于
一种特征权重算法,算法会赋予所有和类别相关性高的特 征较高的权重 算法的局限性在于不能有效的去除冗余特征。
-10-
Relief 实例
选用的数据集为:Breast Cancer Wisconsin Data 的索引,以特征的重要性排序,也即是说 RANKED(1)是最重要的特征
Y是结果列,如果列是数值型的,relieff函数默认执行回归分析,若是
非数值型的,例如整型类标号,默认执行分类预测
-16-
Relief 函数介绍
[RANKED,WEIGHT] = relieff(X,Y,K) 使用Relieff算法对分类问题计算属性的权重和排名
-21-
rankfeatures 函数
%使用线性判别式分类器测试前十个特征与rankfeature选 出的十个特征 C = classify(X(1:10,:)',X(1:10,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate Acc=0.8667
样本中寻找最近邻样本H,称为Near Hit,从和R不同类
的样本中寻找最近邻样本M,称为NearMiss,然后根据 以下规则更新每个特征的权重:如果R和Near Hit在某个 特征上的距离小于R和Near Miss上的距离,则说明该特 征对区分同类和不同类的最近邻是有益的,则增加该特征
的权重;反之,如果R和Near Hit在某个特征的距离大于R

-20-
rankfeatures 函数
例子: 找到约简的基因集合能够区分乳腺癌细胞和其他类型的癌 症细胞
load NCI60tmatrix; %装载样本数据
BC = GROUP == 8; %得到乳腺癌细胞的逻辑索引向量 %选择特征 I = rankfeatures(X,BC,'NumberOfIndices',12);
C = classify(X(I,:)',X(I,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate
Acc=1
-22-
rankfeatures 函数
% 使用交叉相关性权重进一步约简基因数量并测试这些特 征 I= rankfeatures(X,BC,'CCWeighting',0.7,'NumberOfIndices', 8); C = classify(X(I,:)',X(I,:)',double(BC)); cp = classperf(BC,C); cp.CorrectRate
据为多列数据,数据分割选用以符号(逗号)分割。
3. 查找含有?的数据行,整行删除 4. 保存数据为处理好的数据
-14-
Relief 实例
5. 打开matlab软件,在workspace窗口新增一变量 6. 点击导入数据按钮,选中刚刚保存好的excel数据文件,
导入数据,变量取名自定义如breastcancer
数据挖掘概念及技术
特征选择
Relief 算法
Relief为一系列算法,它包括最早提出的Relief以
及后来拓展的ReliefF和RReliefF,其中RReliefF
算法是针对目标属性为连续值的回归问题提出的,
下面仅介绍一下针对分类问题的Relief和ReliefF算法。
-2-
Relief 算法
%创建特征权重的直方图 bar(weights(ranked)); xlabel('Predictor rank'); ylabel('Predictor importance weight');
-18-
Relief 函数介绍
例子:
load fisheriris; %装载样本数据
[ranked,weight] = relieff(meas,species,10) %特征排序 ranked = 4 3 weight = 0.1399
中文名称为:威斯康星州乳腺癌数据集。 网址: /ml/datasets/Breast+Cancer+Wis consin
-11-
Relief 实例
下表是该数据集的11个属性名称及说明:
-12-
Relief 实例
在下载数据后,首先进行预处理,由于本文的数据范围都
-23-
-24-
相关主题