1.特征选择
定义
:
从N个特征中选择其中M(M<=N)个子特征,并且在M个子特征中,准则函数可以达到最优解。
目的
:
选择尽可能少的子特征,模型的效果不会显著下降,并且结果的类别分布尽可能的接近真实的类别分别。
1.1 特征
在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价y的因素有房子面积x1、卧室数量x2等,我们得到的样本数据就是(x1,x2)这样一些样本点,这里的x1、x2又被称为特征。
1.1.1 特征的分类
在现实生活中,一个对象往往具有很多属性(以下称为特征),这些特征大致可以被分成三种主要的类型:
相关特征
:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果;无关特征
:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升;冗余特征
:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出
但是对于一个特定的学习算法来说,哪一个特征是有效的是未知的。因此,需要从所有特征中选择出对于学习算法有益的相关特征。
进行特征选择的主要目的
:
1. 降维
2. 降低学习任务的难度
3. 提升模型的效率
1.2 特征选择的四个过程
特征选择主要包括四个过程:
- 生成过程:生成候选的特征子集
- 评价函数:评价特征子集的好坏
- 停止条件: 决定什么时候该停止
- 验证过程:特征子集是否有效
1.2.1 特征选择之生成过程
生成过程是一个搜索过程,这个过程主要有以下三个策略:
- 完全搜索:根据
评价函数
做完全搜索。完全搜索主要有两种:穷举搜索和非穷举搜索; - 启发式搜索:根据一些
启发式规则
在每次迭代时,决定剩下的特征是应该被选择还是被拒绝。这种方法很简单并且速度很快。 - 随机搜索:
每次迭代时会设置一些参数
,参数的选择会影响特征选择的效果。由于会设置一些参数(例如最大迭代次数)。
1.2.2 特征选择之评价函数
评价函数主要用来评价选出的特征子集的好坏,一个特征子集是最优的往往指相对于特定的评价函数来说的。
评价函数主要用来度量一个特征(或者特征子集),可以区分不同类别的能力。根据具体的评价方法主要有三类:
- 过滤式(filter):先进行特征选择,然后去训练学习器,所以特征选择的过程与学习器无关,先对于特征进行
过滤操作
,然后用特征子集来训练分类器
。对每一维的特征“打分”
,即给每一维的特征赋予权重
,这样的权重就代表着该维特征的重要性,然后依据权重排序
。 - 包裹式(wrapper) : 直接把最后要使用的
分类器
作为特征选择的评价函数,对于特定的分类器选择最优的特征子集,将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较
。这样就将子集的选择看作是一个优化问题. - Filter和Wrapper组合式算法: 先过滤,再组合
- 嵌入式(embedding):把特征选择的过程与
分类器学习
的过程融合一起,在学习的过程中进行特征选择。其主要思想是:在模型既定的情况下学习出对提高模型准确性最好的属性。这句话并不是很好理解,其实是讲在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。
1.2.2.1 五种常见的评价函数
一般有5种比较常见的评价函数:
- 距离度量:如果 X 在不同类别中能产生比 Y 大的差异,那么就说明 X 要好于 Y;
- 信息度量:主要是计算一个特征的
信息增益
(度量先验不确定性和期望, 后验不确定性之间的差异); - 依赖度量:主要用来度量从一个变量的值预测另一个变量值的能力。如果 X 和类别的相关性高于 Y与类别的相关性,那么X优于Y。
- 一致性度量:对于两个样本,如果它们的类别不同,但是特征值是相同的,那么它们是不一致的;否则是一致的。找到与全集具有同样区分能力的最小子集。严重依赖于特定的训练集和 最小特征偏见(Min-Feature bias)的用法;找到满足可接受的不一致率(用户指定的参数)的最小规模的特征子集。
- 误分类率度量:主要用于Wrapper式的评价方法中。
使用特定的分类器
,利用选择的特征子集来预测测试集的类别,用分类器的准确率来作为指标。这种方法准确率很高,但是计算开销较大。
1.2.3 特征选择之停止条件
停止条件用来决定迭代过程什么时候停止,生成过程和评价函数可能会对于怎么选择停止条件产生影响。停止条件有以下四种选择:
- 达到预定义的最大迭代次数;
- 达到预定义的最大特征数;
- 增加(删除)任何特征不会产生更好的特征子集;
- 根据评价函数,产生最优特征子集;
2.特征提取
特征选择与特征提取的异同
:
不同
:
特征提取是通过属性间的关系,如组合不同的属性得到新的属性,这样就改变了原来的特征空间。
而特征选择则是是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间,是提取的子集。
相同
:
特征选择(feature selection)和特征提取(Feature extraction)都属于降维(Dimension reduction)
主要两种特征提取方法:
传统的特征提取方法
:基于图像本身的特征进行提取;
深度学习方法
:基于样本自动训练出区分图像的特征分类器;
2.1 传统的图像特征提取
预处理、特征提取、特征处理;然后再利用机器学习等方法对特征进行分类等操作;
预处理
:预处理的目的主要是排除干扰因素,突出特征信息;主要的方法有:
图片标准化:调整图片尺寸;
图片归一化:调整图片重心为0;特征提取
:利用特殊的特征提取子对图像进行特征提取。特征处理
:主要目的是为了排除信息量小的特征,减少计算量等:常见的特征处理方法是降维,常见的降维方法有:- 主成分分析(PCA);
- 奇异值分解(SVD);
- 线性判别分析;