特征选择
从原始特征集合中选出对当前学习任务有用的最重要的一些特征。
特征选择的原因:
(1)维度灾难:由于属性过多,导致维数灾难,若通过特征选择,则能大大减轻这一问题;
(2)降低学习任务的难度:去除不相关的特征,将复杂的特征只留下关键特征,降低学习任务的难度。
特征选择的步骤:
第一步:先产生一个“候选子集”,并评价其好坏;
第二步:基于以上评价结果产生下一个“候选子集”,再对其进行评价,以此重复。直至无法找到更好的“候选子集”。则最终的“候选子集”即为特征选择的结果。
特征选择包含两个方面:
- 子集搜索:搜索“候选子集”的过程。
- 前向搜索:从单特征子集开始,不断增加特征,直至“候选子集”效果没有改善;
- 后向搜索:从完整特征开始,每次尝试去掉一个无关特征,直至“候选子集”的效果无明显改善;
- 双向搜索:将前向搜索与后向搜索结合,每一轮逐渐增加选定相关特征、同时减少无关特征。
- 子集评价:
- 信息增益:对属性子集A,根据其取值将数据集划分为v个子集,每个样本子集在A上的取值相同,可计算A的信息增益。信息增益越大,意味着特征子集A包含的有助于分类的信息越多。以此作为评价准则。
过滤式选择
过滤式方法,先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。主要有Relief(二分类)和Relief-F(多分类)两种。
1、Relief
该方法设计了一个“相关统计量”,它是一个向量。
(1)以上向量中,每个分量对应了一个初始特征;
(2)特征子集的重要性由子集中每个特征所对应的相关统计量分量之和来决定;
(3)可指定阈值
δ
\delta
δ,选择相关统计量分量之和比
δ
\delta
δ大的所对应的特征即可;或者指定欲选取的特征个数k,选择相关统计量分量最大的k个特征。
关键是如何确定“相关统计量”。
(1)对于每个样本
x
i
x_{i}
xi,先在
x
i
x_{i}
xi的同类样本中寻找最近邻
x
i
,
n
h
x_{i,nh}
xi,nh,称为“猜中近邻”;
(2)再从
x
i
x_{i}
xi的异类样本中寻找其最近邻
x
i
,
n
m
x_{i,nm}
xi,nm,称为“猜错近邻”。
(3)然后,相关统计量对应于属性
j
j
j的分量为:
δ
j
=
∑
i
(
diff
(
x
i
j
,
x
i
,
n
h
j
)
2
+
diff
(
x
i
j
,
x
i
,
l
,
n
m
j
)
2
)
\delta^j=\sum_{i}( \operatorname{diff}\left(x_{i}^{j}, x_{i, n h}^{j}\right)^{2}+\operatorname{diff}\left(x_{i}^{j}, x_{i, l, n m}^{j}\right)^{2})
δj=i∑(diff(xij,xi,nhj)2+diff(xij,xi,l,nmj)2)
则,
1
0
1^0
10 若
x
i
x_{i}
xi与其猜中近邻
x
i
,
n
h
x_{i,nh}
xi,nh在属性
j
j
j上的距离小于
x
i
x_{i}
xi与其猜错近邻
x
i
,
n
m
x_{i,nm}
xi,nm的距离,说明属性
j
j
j对区分同类与异类样本是有益的,故增大属性
j
j
j所对应的分量;
1
1
1^1
11 反之,属性
j
j
j起负作用,则减小属性
j
j
j所对应的分量;
1
3
1^3
13 最后,对基于不同的样本得到的估计结果进行平均,就得到各属性的相关统计量分量,分量值越大,则对应属性的分类能力越强。
Relief只需要在样本集的采样上估计,而不需要在整个数据集上估计相关统计量。
2、Relief-F
假定数据集
D
D
D中的样本来自
∣
Y
∣
|Y|
∣Y∣个类别。对样本
x
i
x_{i}
xi,若它属于第
k
k
k类,则Relief-F先在第
k
k
k类的样本中寻找
x
i
x_{i}
xi的最近邻
x
i
,
n
h
x_{i,nh}
xi,nh,称为“猜中近邻”,然后在第
k
k
k类之外的每个类中找到一个
x
i
x_{i}
xi的最近邻
x
i
,
l
,
n
m
(
l
≠
k
)
x_{i,l,nm}(l≠k)
xi,l,nm(l=k),称为“猜错近邻”,则相关统计量对应属性
j
j
j得分量为:
δ
j
=
∑
i
d
i
f
f
(
x
i
j
,
x
i
,
n
h
j
)
2
+
∑
l
=
k
(
p
l
×
diff
(
x
i
j
,
x
i
,
l
,
n
m
j
)
2
)
\delta^j=\sum_{i} d i f f\left(x_{i}^{j}, x_{i, n h}^{j}\right)^{2}+\sum_{l=k}\left(p_{l} \times \operatorname{diff}\left(x_{i}^{j}, x_{i, l, n m}^{j}\right)^{2}\right)
δj=i∑diff(xij,xi,nhj)2+l=k∑(pl×diff(xij,xi,l,nmj)2)
其中
p
l
p_{l}
pl为第
k
k
k类样本在数据集
D
D
D中所占的比例。
包裹式选择
包裹式选择直接将最终将要使用的学习器的性能作为特征子集的评价准则。前提是给定学习器,根据指定学习器进行优化。在特征选择过程中,需多次训练学习器,因此计算开销较大。
LVW是一个典型的包裹式选择,它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。
停止条件控制参数
T
T
T,每一轮中,学习算法为
∑
∑
∑(每轮都需要重新训练),原始属性集合为
A
A
A,学习算法在
A
A
A上的误差为
E
E
E,每一轮随机抽取的特征为
A
∗
A^*
A∗,学习算法在
A
∗
A^*
A∗上的误差为
E
∗
E^*
E∗:
- 每一轮都使用交叉验证;
- 若 E ∗ E^* E∗比 E E E更小,或者误差相当,但 A ∗ A^* A∗包含的特征数量更少,则将 A ∗ A^* A∗保留下来。
由于LVW算法是基于拉斯维加斯方法框架,若初始特征数很多, T T T设置很大,则算法可能运行很长时间都达不到停止条件,换言之,若运行时间有限,则可能给不出解。
附录:
有时间限制:
(1)拉斯维加斯方法:给出满足需求解;或者不给出解。
(2)蒙特卡罗方法:给出满足需求解;给出不满足需求解。
无时间限制:
(1)拉斯维加斯方法:给出满足需求的解;
(2)蒙特卡罗方法:给出满足需求的解。
嵌入式选择
嵌入式选择是将特征选择过程与学习器训练过程融为一体,二者在同一优化过程中完成,则在学习器训练过程中自动地进行了特征选择。
以简单的线性回归,损失函数为平方误差为例,目标函数中加入正则项,如
L
1
L_{1}
L1范数正则化(LASSO回归)或
L
2
L_{2}
L2范数正则化(岭回归),均有助于降低过拟合风险,但前者会带来一个额外的好处:前者比后者更容易获得“稀疏”解,即其求得的解有更少的非零分量(非零分量少,则选择出来的有效特征少,达到特征选择的目的)。
L
1
L_{1}
L1正则化:正则化等值线与平方误差等值线在坐标轴相交;
L
2
L_{2}
L2正则化:正则化等值线与平方误差等值线在某一象限中相交;
则
L
1
L_{1}
L1比
L
2
L_{2}
L2更容易得到稀疏解。
故 L [ 1 ] L_[1] L[1]范数正则化可以利用稀疏解获得选择后的特征,则基于 L 1 L_{1} L1范数正则化的学习方法是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。