在机器学习中,模型的性能通常会随着特征数量的增加而提升。然而,当特征数量超过某个峰值后,模型的性能可能会下降。因此,选择能够有效进行预测的特征至关重要。
特征选择与降维技术相似,目标都是减少特征的数量,但二者有本质的区别。特征选择关注于挑选保留或删除的数据特征,而降维则是通过投影生成全新的输入特征。
本文将介绍五种在 ScikIT-Learn 中常用的特征选择方法,它们既简单又极具实用价值。让我们开始吧。
1. 方差阈值特征选择
特征的方差高表示其值变化大,而方差低则表示值相似,零方差则意味着特征值完全相同。
方差选择法首先计算每个特征的方差,然后根据设定的阈值选择方差大于该阈值的特征。以下是一个简单的例子:
在这个例子中,我仅使用数字特征。为了使用方差阈值特征选择,我们首先需要对所有数字特征进行标准化,因为方差受数值刻度影响。
假设我们将方差阈值设置为一个特定值,仅使用方差阈值方法选择特征。
方差阈值是一种无监督学习的特征选择方法。如果我们希望在监督学习中选择特征,该如何进行呢?接下来我们将讨论。
2. SelectKBest 特征选择
单变量特征选择方法基于单变量统计检验,例如卡方检验、皮尔逊相关系数等。
SelectKBest 方法结合了未经验证的统计测试与基于 X 和 y 之间的统计结果,从中选择 K 个特征。
由于单变量特征选择方法是为监督学习设计的,因此我们将特征分为自变量和因变量。接下来,我将使用 SelectKBest 方法,假设我只想保留两个最重要的特征。
3. 递归特征消除 (RFE)
递归特征消除(RFE)是一种利用机器学习模型逐步消除不重要特征的特征选择方法。
根据 ScikIT-Learn,RFE 通过递归考虑越来越少的特征集来选择特征。
在这个例子中,我将使用泰坦尼克号数据集来解决分类问题,目标是预测哪些乘客将生存。
4. SelectFromModel 特征选择
ScikIT-Learn 中的 SelectFromModel 方法基于特征重要性的阈值来选择特征,默认阈值为平均值。
为了更好地理解这个概念,我们将使用一个数据集示例。
5. 顺序特征选择 (SFS)
顺序特征选择是一种贪婪算法,根据交叉验证得分和估计量来向前或向后选择最佳特征。该方法在 ScikIT-Learn 版本 0.24 中新增。
结论
特征选择在机器学习模型中扮演着重要角色。无用的特征不仅会影响模型的训练速度,还可能降低模型的整体表现。
