1 特征选择介绍
(1)特征选择的定义
对当前学习任务有价值的属性称为是 “相关特征”,没有价值的属性称为是 “无关特征”,从给定的特征集中选择出相关特征子集的过程,就称为是 “特征选择”。
其中还有一种特征称为是 “冗余特征”,这些特征指的是可以从其他特征中推演出来的特征。
(2)特征选择的重要性
特征选择是一个“数据预处理”过程,它的重要性体现在两个方面:
- 减轻维度灾难问题。
- 去除无关特征可以降低学习的难度。
2 子集搜索与评价
想要找一个最好的特征子集,最简单最笨的方法就是把所有的特征排列组合,遍历每一个子集从中选择里面最好的一个,这种方法必然不可取。对这种方法的一种改进就是使用子集搜索与评价,它的思想就是先产生一个特征子集,然后对它进行评价,之后根据评价结果选择下一个特征子集,再进行评价,……,直到无法找到更好的候选子集。
可以看出该算法是子集搜索与子集评价的一个迭代过程,下面分别对这两部分进行介绍:
(1)子集搜索
子集搜索分为“前向”(forward)搜索、“后向”(backward)搜索和“双向”(bidirectional)搜索。
- 前向搜索 就是从只一个特征开始,每次增加一个特征,直到某次的特征子集不如上一轮的子集为止。
- 后向搜索 就是从完整的特征集合开始,每次去掉一个无关的特征,直到去掉一个特征就会使效果明显下降为止。
- 双向搜索 就是将前两种方法结合在一起,每一轮逐渐增加选定的相关特征(这些特征在后续迭代中不会被去掉),同时减少无关特征。
(2)子集评价
每一个特征子集的特征都是对数据集的一种划分,而我们希望的就是这种划分与用样本标记信息对数据集的划分结果越相似越好,因此就可以利用这两种划分方式的不同来对特征子集进行评价,信息熵 是子集评价的一种方式,还有其他很多方式。
对于给定的数据集 D D D,假定第 i i i 类样本所占的比例为 p i ( i = 1 , 2 , ⋯ , ∣ y ∣ ) p_i\ (i=1,2,\cdots,|y|) pi (i=1,2,⋯,∣y∣),为了便于讨论,假定属性都是离散型,假设根据子集 A A A 将数据集 D D D 分成了个 V