机器学习之特征选择

机器学习中很重要的一环是特征选择,因为选择的特征过少会造成欠拟合(高偏差), 相反会造成过拟合(高方差),所以选择合适的特征是很重要的。

特征选择包括封装性特征选择和过滤性特征选择,封装特征选择包括前向搜索和后向搜索。

特征选择:

特征子集F, 自己评价准则H。

封装性特征选择使用搜索方法,包括前向搜索和后向搜索。

前向搜索算法:

初始化F,将F设为空集

{

    for  i to n://n为特征的数目

        进行K交叉验证

    endfor

    选择误差最小的特征mi加入F;

}当F包含所有特征或者等于设定的阀值K跳出循环

然后利用所有数据训练模型

后向搜索:

初始化F,将F设为包含所有特征

{

    for  i to n://n为特征的数目

        进行K交叉验证

    endfor

    选择误差最大的特征mi,从F中剔除;

}当F等于设定的阀值K跳出循环

然后利用所有数据训练模型

前向和后向搜索适合特征数量较少的情况,如果特征数量太多会导致计算量增加,负担太重。实践中效果比较好。

过滤性特征选择:

算法:

初始化F,并设为空集

首先进行每个特征与标签的相关度评定,然后安照相关度大到小排列。

for i to n:

选取前i个,加入F,进行交叉验证

endfor

找到误差最小的i

训练所有数据

过滤性特征选择适合特征多的时候,但是其误差有点大。

对于每个特征与标签的相关度评定方法,我会在后面介绍。

猜你喜欢

转载自blog.csdn.net/fengziyihang/article/details/79786264
今日推荐