共计 860 个字符,预计需要花费 3 分钟才能阅读完成。
为啥要进行特征选择?
在学习训练模型的样本会包含许多特征属性,如果样本数量较大且属性较多,直接用于训练则出现数据量较大的情况,训练复杂大较大且训练出来的模型不一定很好,因此有必要在训练模型之前进行相应的子集选择和特征选择,减小训练复杂度,在不影响模型效果的基础上。
特征选择方式
目前了解的特征选择方式有三种,过滤式、包裹式和L1\L2正则化处理
过滤式
过滤式首先进行特征选择,在训练模型,特征选择与模型训练无关
常见的是Relief方法,在Relief方法中定义里统计相关量来衡量当前的特征或者子集,统计先关量的计算如下:
假设有N个样本,选取x(i),在x(i)的同类样本中寻找最近的样本,然后再异类中选取最近的样本,然后可以得到在每个属性j上相关统计量
上式中TN表示True Nearest 同类最近的样本,NN 表示Negtive Nearest 异类最近的样本,Diff表示相应的距离,若上式中左边的部分小于右边的部分说明当前的特征属性是有益的,若左边的表达式大于右边则表示当前的属性不适合作为训练的特征。
需要统计的样本个数与特征的维数决定了当前方法的复杂度
包裹式
跟过滤式完全相反,模型的训练决定了特征的选择,因此对于给定一个训练集可能需要多次模型,从而确定最佳的训练模型,在开销上会比过滤式更大。
L1\L2正则化
常见的评价当前模型的好坏是通过误差函数方差能判定,优化目标就是使当前的误差函数最小来得到相应的模型参数,假定给的样本较少特征较大则有可能导致训练出现过拟合现象,将一些不必要的特征都学习到模型里面,以后再做预测的时候会出现偏差的可能性变大,同过在优化目标函数中加入相应的正则项则会避免过拟合的现象。
L1\L2范数都会起到相应的效果,但是L1会更好的得到稀疏解,在此稀疏解的定义是啥?假设当前样本有两个特征,需要训练线性回归模型,因此需要得到W1和W2,使用L1训练的结果可能会出现其中W1或者W2一个为0的现象,这就是可以使用一部分特征就起到较好的效果。
上式以L1正则化为例给出相应的优化目标,可以使用梯度下降法来估计W