人工智能算法大全:基于MATLAB
上QQ阅读APP看书,第一时间看更新

1.1 原理介绍

ReliefF算法能够直接对多分类问题中的参数进行选择,搜索当前样本的各种近邻,然后综合计算。ReliefF算法的原理是根据各个特征和类别的相关性赋予特征不同的权重,而特征参数的权重是各特征的统计量指标之和,权重小于某个阈值的特征将被移除。特征的权重越大,表示该特征对分类贡献度越高,反之,表示该特征对分类贡献度越低。选取那些对分类贡献度高的特征组成特征参数子集,即可优化选取特征。

1.1.1 算法思想

ReliefF算法需要有分类标签或回归标签,以分类问题为例,该算法基于目标特征的样本的类内和类外距离作为衡量标准,来计算样本集各维特征的重要性得分,得分越高代表越重要。

1.1.2 算法流程

ReliefF算法的总体思想可以用一句话概括:对分类有用的是重要特征,对分类无用的是不重要特征。

ReliefF算法的输入包括3个变量,即训练数据集、样本个数和最邻近样本个数,分别设输入为训练数据集D、样本个数为m、最近邻样本个数为k,输出为预测的特征权值向量W,其具体流程包括以下8个步骤。

第1步:初始化特征权值向量WA)=0,特征A=1,2,…,p

第2步:for i=1:m

第3步:D中随机选择一个样本记为Ri

第4步:找到与样本Ri同类的k个最近邻Hj

第5步:对每个类CclassRi),找出与Ri不同类的k个最近邻MjC)。

第6步:for A=1:p,更新权重WA)=WA)+A对特征下k个类外样本距离和求函数值-对A特征下k个类内样本距离和求函数值。

第7步:循环第6步1到p个特征。

第8步:转到第2步,循环m个样本。

1.1.3 算法详细介绍

ReliefF算法可以处理多分类问题,也可以用于处理目标属性为连续值的回归问题。ReliefF算法在处理多分类问题时,每次从训练样本集中随机取出一个样本R,然后从和R同类的样本集中找出Rk个近邻样本(Near Hits),再从每个R的不同类样本集中找出k个近邻样本(Near Misses),更新每个特征的权重。下面首先介绍分类问题中的ReliefF算法。

假设样本集X={x1x2 ,…,xn}, 任一样本由q维特征表示, 样本所属的标签集L={l1l2 ,…,lr}。

第1步, 先对样本集的每一维进行标准化:是样本均值。 为方便起见, 下文继续使用符号X表示经过标准化之后的样本集。

第2步,将样本随机排序:根据标签将不同类的样本分到各类别下的样本集中。下文用Xli表示所有属于li类的样本组成的样本集,i∈{1,2,…,r}。

从样本X中随机选择m个样本, 用于特征选择 (一般m=n, 即只是对全样本顺序进行打乱)。

第3步, 计算距离: 假设其中某个样本及其标签, 采用一种距离计算公式, 如欧几里得距离 (以下简称欧氏距离)。

计算与在中的同类样本的距离大小, 并取出距离最小的前k个样本 (不算自身) , 即取出的样本为:

其中,表示中与有相同标签的样本中与的欧式距离第k小的距离值。

同样, 依次计算中的某一非同类样本的距离大小, 并分别取出该类中与距离最小的前k个样本, 即在某一标签为的非同类样本集中取出的样本为:

其中,表示中标签为, 且与不同的样本中与欧式距离第k小的距离值, j共有r-1种取值, 因为除以外的标签有r-1种。

先利用中的样本进行类内k近邻距离和计算。

中的样本取其某一维的特征, 即上述样本集中第j维特征为:

使用1范数计算两个样本在第j维特征上的距离:

, (i=1,2,…,k) 给这k个样本赋权, 通常参数δ默认值为+∞, 即每个样本的权重均为1/k, 可以通过调节δ对权重分配进行调整。

计算的第j维特征在范围内的类内k近邻距离和为:

再利用中的样本进行类外k近邻距离和计算。

表示标签集L中与不同的r-1个其他标签。

表示标签为的样本占的比例。

的第j维特征在范围内的类外k近邻距离和为:

式 (1-7) 表达的是:的第j维特征在范围内, 与各种其他类别的k近邻样本在第j维特征上的距离加权和的类概率加权和的标准化结果。

第4步, 计算每一维特征的重要性得分:所提供的第j维特征的重要性得分scoreij为其类外k近邻距离和与类内k近邻距离和之差, 即:

第5步,遍历每一个样本,加总每一维特征的重要性得分,得到最终重要性得分:整个样本集x反映的第j维特征的重要性得分scorej中所有样本的第j维特征的重要性得分之和, 即:

通过比较各维特征的得分,可以得出哪些特征对体现样本的类别有重要帮助的结论。从式(1-9)可知,每一维特征的得分评价标准是:每种非同类的k个最近邻样本在该维上的距离越大、同类的k个最近邻样本在该维上的距离越小,则这样的特征越好。