Notes of Machine Learning

特征选择

1.去掉低方差的特征

这是一种比较朴素的方法,它尝试去掉那些方差比较低的哪些特征。特别的,去掉方差为0的特征,比如在所有的样本中,某一维上值都一样。

例如,我们有一个二值的数据集(),我们想去掉0或者1超过80%的特征。 二项分布的方差为:

给定数据集X=[0,0,1],[0,1,0],[1,0,0],[0,1,1],[0,1,0],[0,1,1],其第一维包含5个'0',1个'1','0'的期望为,所以去掉第一维。

Note:我感觉这里面还得考虑样本的标签,以上数据中正负样本的比例应该是接近1:1的,否则,如果样本的比例本来就是5:1,刚好对应第一维的5:1,那么反而恰恰是第一维的判别信息更重要。

2.单变量的特征选择

逐个地用每一维特征去测试性能,然后分别得到一个正确率,然后筛选出前维特征。

3.递归的特征淘汰

给定一个外部的分类器(如线性分类器),递归地淘汰特征,以得到越来越小的特征集。

  • 前向选择
  • 后想选择

4.基于L1正则化的特征选择

4.1选择系数非0的特征

在SVM中,参数控制了稀疏性:越大,保留的支持向量越多,选择的特征越多。

对于Lasso,越大,选择的特征越少。

4.2随机的稀疏模型

基于L1的稀疏模型的缺点是,当遇到一组高度相关的特征时,它只选取其中的一个特征。解决这一问题的方法是,分别对数据进行随机扰动或下采样,训练多个稀疏模型,然后投票。

5.基于树的特征选择

基于随机森林的特征选择。

参考: Feature Selection