递归特征消除2025 年 6 月 25 日 | 阅读 8 分钟 递归特征消除(Recursive Feature Elimination, RFE)是一种著名且有效的特征选择策略,在机器学习中被广泛应用。RFE 的主要目标是在任何预测任务中收集最佳特征,同时去除其他无关特征。该技术通过减少过拟合和提高泛化能力来支持模型的性能。 递归特征消除的重要性RFE 的重要性体现在以下几个方面:
让我们看看递归特征消除如何能够减少具有大量特征的数据,同时仍然生成与原始数据在各种 机器学习模型 上性能相当或更好的特征选择数据。 导入库和数据集现在我们将导入所需的数据集。 代码 输出 ![]() 我们需要处理“SeniorCitizen”(老年公民)和“TotalCharges”(总充电费用)的数据类型,使它们可用。 代码 输出 ![]() 我们需要删除任何包含空数据的行。 代码 输出 ![]() “TotalCharges”有一些 NaN 值。我们需要删除它们。 代码 输出 ![]() 现在,看起来很棒。 特征工程在这里,我们将把原始数据转换为有用的信息,以提高机器学习模型的性能。它构成了数据处理流程中最重要的一步之一,常常区分了一个一般的模型和一个具有高准确率的模型。 代码 输出 ![]() 现在我们将把选定的特征数量与 交叉验证 分数绘制成折线图。之后打印出理想的特征数量。 代码 输出 ![]() ![]() 在原始数据 19 个特征中,经过上述阶段后,只剩下 9 个特征。现在让我们看看它们在不同机器学习模型上的表现如何。 划分数据现在,我们将从特征选择后的 DataFrame 创建一个训练集和测试集,然后对原始 DataFrame 执行相同的操作。 代码 输出 ![]() 模型在测试以下分类器以创建机器学习模型时,我们将比较原始数据集和特征选择后数据集的性能。 代码 输出 ![]() 我们的模型都在这两种类型的数据上进行了训练。 现在我们将暂时验证这两个模型的准确性。 代码 输出 ![]() 正如我们所见,在大多数情况下,特征选择后的模型都有所提高。 为了查看准确性结果,我们还可以为每个模型创建一个条形图。 代码 输出 ![]() 根据以上结果,特征选择后数据集的平均准确率比原始数据集的平均准确率高 0.3%。其中,支持向量机(准确率为 79.6%)是使用特征选择后数据训练出的准确率最高的模型。当使用特征选择后数据训练多层感知器时,准确率提高了 2.3%。然而,一些分类器(K-近邻、AdaBoost、随机梯度下降和朴素贝叶斯)并未从特征选择后的数据中受益。 现在,为了确保结果,我们还可以使用交叉验证来评估模型。 模型评估我们将对整个数据集使用 k 折交叉验证(k=10)来确认准确性结果,并进一步评估这两个模型的性能。准确率和 ROC AUC 分数是用于验证的指标。 代码 输出 ![]() 精度让我们看看交叉验证准确性的结果。 代码 输出 ![]() 根据准确性结果,特征选择后数据集的平均准确率比原始数据集的平均准确率高 0.75%。在此,使用特征选择后数据训练出的 Logistic Regression(逻辑回归)模型表现最佳(80.4%)。使用特征选择后数据训练的多层感知器准确率提升最大,为 2.8%。对于 SVM 和 AdaBoost,特征选择后数据的准确率略低于(仅低 0.1%)原始数据。请注意,原始数据包含 19 个特征,而特征选择后数据只有 9 个。 ROC-AUC 分数让我们看看 ROC AUC 分数的结果。 代码 输出 ![]() AdaBoost 和 Logistic Regression 是 ROC AUC 值最高的模型,为 0.844。准确性结果和 ROC AUC 结果没有显著差异。然而,对于各种分类器(Logistic Regression、Naive Bayes 和 AdaBoost),特征选择后数据的 ROC AUC 分数比原始数据略差。 拟合时间让我们看看拟合时间的结果。 代码 输出 ![]() 在特征选择后数据上训练的所有模型的拟合时间都比在原始数据上训练的模型快。无疑,原因是模型所训练的特征数量不同。 特征重要性现在,我们将确定已开发预测模型中每个特征的重要性。由于逻辑回归是所有模型中准确率最高的,因此在此情况下使用它。 代码 输出 ![]() ![]() 两个 Logistic Regression 模型的前五个关键特征——“tenure”(任期)、“PhoneService”(电话服务)、“Contract”(合同)、“TotalCharges”(总充电费用)和“MonthlyCharges”(月度费用)是相同的。两个版本剩余的关键特征也是相同的。 为了进行比较,让我们检查 AdaBoost 分类器的特征重要性。 代码 输出 ![]() ![]() 两个 AdaBoost 模型的前五个关键特征略有不同。尽管在 RFE 步骤中未被选中,但在原始数据上训练的 AdaBoost 分类器在其特征重要性中将“PaymentMethod”(付款方式)排在了第五位。两个模型共享剩余的关键特征。 也确定支持向量机特征的重要性。 代码 输出 ![]() ![]() 两个支持向量机模型的前五个关键特征略有不同。在初始数据上训练的 SVM 分类器中,“tenure”排在第五位,而在另一个模型中,它排在第一位。在这三个模型中,“tenure”、“MonthlyCharges”和“TotalCharges”始终出现在每个模型最重要的前 5 个特征中。 结论递归特征消除是减少训练时间、仅选择所需特征,并且仍然获得与原始数据性能相当或更好的准确性的绝佳方法。RFE 的受欢迎程度源于其易于使用和配置,以及它能够精确识别训练数据集中与目标变量预测最相关的特征(列)。基于上述发现,特征选择后数据的特征重要性也得以保持,并且与原始数据相同。 |
我们请求您订阅我们的新闻通讯以获取最新更新。