递归特征消除:它是什么以及为什么重要?

已发表: 2023-03-27

数据是现代决策制定的支柱,企业一直在寻找从中提取有价值见解的方法。 机器学习是组织中用于数据分析的最常见技术之一,它涉及训练算法以根据历史数据进行预测。 然而,并非数据集中的所有特征生而平等,有些特征对模型性能的影响可能高于其他特征。

递归特征消除是一种流行的数据分析技术,用于从数据集中识别和消除不相关或冗余的特征,提高机器学习模型的准确性和效率。

获得世界顶尖大学的机器学习认证 获得硕士、行政 PGP 或高级证书课程,以快速推进您的职业生涯。

在本文中,我们将探讨递归特征消除是什么、它是如何工作的,以及为什么它对希望从数据中提取有意义的见解的企业很重要。

目录

特征选择有哪些不同的技术?

特征选择是机器学习中的关键步骤,涉及从数据集中选择最相关的属性以构建可准确预测结果的模型。 然而,选择正确的功能并不总是那么简单。 有许多不同的技术,每种技术都有其优点和缺点。 让我们来看看其中的一些吧!

过滤方法

过滤器方法选择根据统计属性创建的特征,例如它们与目标变量或方差的相关性。 这些方法计算效率高,可以在训练模型之前应用。 过滤方法的示例包括卡方检验、基于相关性的特征选择和方差阈值。

包装方法

包装器方法通过使用特征子集评估机器学习模型的性能来选择特征。 这些方法的计算成本很高,但可以带来更好的模型性能。 包装器方法的示例包括递归特征消除、前向选择和后向消除。

嵌入式方法

对于嵌入式方法,特征选择发生在训练期间。 这些方法包括 Lasso 和 Ridge 回归等技术,它们对模型系数增加惩罚以将不太重要的特征缩小为零。

混合方法

混合方法结合了不同的特征选择技术以获得更好的结果。 这些方法通常比单独使用一种方法更有效。 混合方法的示例包括 ReliefF 和随机森林特征选择。

本质上,特征选择技术的选择取决于具体问题、数据集和可用的计算资源。

现在,让我们深入探讨一种最重要的特征消除包装方法,即递归特征消除。

什么是递归特征消除?

递归特征消除 (RFE) 是一种包装方法,它递归地消除特征并在剩余特征上构建模型。 它根据重要性对特征进行排名,并消除最不重要的特征,直到达到所需的特征数量。 RFE 是一个迭代过程,其工作方式如下:

  1. 在所有特征上训练模型,并根据它们的重要性对它们进行排名。
  2. 消除最不重要的特征。
  3. 在剩余的特征上重复训练模型并消除最不重要的特征,直到达到所需的特征数量。

RFE 考虑特征之间的相互作用及其对模型性能的影响。

要了解 RFE 的工作原理,让我们考虑一个示例。

假设我们有一个包含十个不同特征的房价数据集,包括卧室数量、建筑面积和房屋年龄。 我们想建立一个机器学习模型来根据这些特征预测房屋的价格。 但是,我们怀疑某些特征可能并不重要,甚至可能会损害模型的性能。

我们可以使用 RFE 来识别最相关的特征,方法是使用所有特征训练模型,然后递归地消除最不重要的特征,直到我们达到最佳子集。 RFE 在每次迭代期间训练模型,并使用交叉验证集评估其性能。

例如,RFE 可能会确定卧室数量、平方英尺和位置是预测房价的最关键特征。 相比之下,其他特征,例如房屋的年龄,对模型的准确性影响不大。

为什么 RFE 出现在画面中? 它解决了什么?

随着机器学习变得越来越普遍,数据科学家意识到某些特征可能不相关或多余,而其他特征可能会显着影响模型的准确性。 这催生了构建高效机器学习模型的基本方法之一——递归特征消除的特征选择技术。

引入递归特征消除 (RFE) 是为了解决现有方法的一些局限性,同时作为包装方法出现,递归地去除特征并评估它们对模型性能的影响。 该过程一直持续到达到最佳特征数量为止。

RFE 解决了传统特征选择技术遇到的几个问题。

  • RFE 是一种反向选择方法,它从所有特征开始,然后迭代地删除最不重要的特征。 这种方法优于前向选择,前向选择从最不重要的特征开始,然后添加更多直到达到最佳数量。
  • RFE 在特征选择过程中通过交叉验证避免了过度拟合。 当模型太复杂并且太适合训练数据时会发生过度拟合,从而导致新数据的性能不佳。
  • RFE 可应用于任何模型类型,使其成为一种可用于许多不同场景的通用技术。

用Python实现RFE算法

Python 提供了几个可用于实现 RFE 算法的库。 现在让我们看一些RFE Python 示例。

RFE 与 scikit-learn

Scikit-learn 是 Python 中流行的机器学习库,它提供了 RFE 算法的简单实现。 以下代码片段演示了如何在 sci-kit-learn 中实现 RFE:

从 sklearn.feature_selection 导入 RFE

从 sklearn.linear_model 导入 LogisticRegression

模型 = LogisticRegression()

rfe = RFE(模型,n_features_to_select=5)

rfe.fit(X, y)

在上面的代码片段中,我们首先从 sci-kit-learn 的 feature_selection 模块中导入 RFE 类。 然后我们创建一个 LogisticRegression 类的实例,它将作为我们的基础估计器。 然后我们创建 RFE 类的实例,传递基本估计量和要选择的特征数。 然后我们将 RFE 对象与我们的数据和标签相匹配。

分类RFE

在分类问题中,RFE 递归地删除特征并在剩余特征上构建模型。 特征排名基于估计器计算的特征重要性分数。 以下代码片段演示了如何使用 RFE 解决分类问题:

从 sklearn.datasets 导入 make_classification

从 sklearn.feature_selection 导入 RFE

从 sklearn.tree 导入 DecisionTreeClassifier

X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=0, random_state=42)

模型 = 决策树分类器()

rfe = RFE(模型,n_features_to_select=5)

rfe.fit(X, y)

打印(“选定的功能:”,rfe.support_)

print(“特征排名:”, rfe.ranking_)

在上面的代码片段中,我们首先使用 sci-kit-learn 的 make_classification 函数生成一个合成数据集。 然后我们创建一个 DecisionTreeClassifier 类的实例,它将作为我们的基础估计器。 然后我们创建 RFE 类的实例,传递基本估计量和要选择的特征数。 然后,我们将 RFE 对象放入我们的数据和标签中,打印所选特征并对特征进行排名。

RFE 超参数

RFE 有几个超参数可以调整以获得更好的结果。 一些重要的超参数是:

  • n_features_to_select:这个超参数决定了要选择的特征的数量。
  • step:这个超参数决定了每次迭代要移除的特征数量。默认值为 1,这意味着每次迭代都会删除一个特征。
  • 估计器:此超参数指定要使用的基本估计器。默认情况下,使用线性 SVM。
  • 评分:此超参数指定用于特征排名的指标。默认值为 None,表示使用估计器的评分方法。
  • cv :此超参数确定要使用的交叉验证策略。默认值为 None,表示使用 3 折交叉验证。

最佳在线机器学习课程和 AI 课程

LJMU 机器学习与人工智能理学硕士 IIITB 的机器学习和人工智能执行研究生课程
IIITB 的机器学习和 NLP 高级证书课程 IIITB 的机器学习和深度学习高级证书课程 马里兰大学数据科学与机器学习执行研究生课程
要探索我们所有的课程,请访问下面的页面。
机器学习课程

递归特征消除的未来

递归特征消除 (RFE) 的未来看起来很有希望,因为它仍然是机器学习中特征选择的流行技术。 随着生成的数据量不断增加以及对更高效、更准确模型的需求,特征选择正成为机器学习管道中必不可少的一步。

最近的研究表明,RFE 可以通过降低数据的维度并消除不相关或冗余的特征来显着提高机器学习模型的性能。 例如,在NCBI的一项研究中,RFE 被用于基于功能磁共振成像 (fMRI) 数据对抑郁症患者进行分类的特征选择。 结果表明,RFE 选择了与抑郁症的临床诊断高度相关的特征子集。

随着机器学习领域的不断发展,需要更复杂、更高效的特征选择技术。 一个越来越受欢迎的研究领域是使用深度学习进行特征选择。 然而,深度学习模型通常计算量大且需要训练大数据。

相比之下,RFE 是一种简单有效的技术,可以应用于各种模型和数据集。 因此,RFE 很可能会继续用作流行的特征选择技术。

需求机器学习技能

人工智能课程 画面课程
自然语言处理课程 深度学习课程

结论

总之,递归特征消除 (RFE) 是机器学习中特征选择的一种有效技术,随着其不断发展的实施,它有望迎来光明的未来。 RFE 作为一种有效的特征选择技术,正在推动其在医学诊断、生物信息学和图像分析等不同领域的应用,使其不屈不挠地扩展。

如果您想了解有关机器学习和人工智能的更多信息,请考虑与 IIIT Bangalore 合作注册 upGrad 的机器学习和 AI PG 文凭课程这个综合计划涵盖了机器学习和人工智能领域的最新工具和技术,包括 RFE 等特征选择技术。

该计划将为您提供为实际应用程序构建和部署机器学习模型所需的技能和知识。

立即申请并通过 upGrad 获得沉浸式学习的各种好处!

您还可以查看upGrad 在管理、数据科学、机器学习、数字营销和技术方面提供的免费课程所有这些课程都有一流的学习资源、每周现场讲座、行业作业和课程结业证书——全部免费!

流行的人工智能和机器学习博客和免费课程

物联网:历史、现在和未来 机器学习教程:学习 ML 什么是算法? 简单易行
印度的机器人工程师薪水:所有角色 机器学习工程师的一天:他们做什么? 什么是IoT(物联网)
排列与组合:排列与组合的区别 人工智能和机器学习的 7 大趋势 使用 R 进行机器学习:您需要知道的一切
人工智能和机器学习免费课程
自然语言处理简介 神经网络深度学习基础 线性回归:分步指南
现实世界中的人工智能 Tableau 简介 使用 Python、SQL 和 Tableau 的案例研究

RFE和PCA在特征选择上有什么区别?

RFE 和主成分分析 (PCA) 都是用于特征选择的技术。 两者的主要区别在于 PCA 将原始属性修改为新的集合,而 RFE 消除了原始属性。

如何使用 RFE 确定要选择的最佳功能数量?

使用 RFE 确定要选择的最佳特征数量的一种方法是执行交叉验证并选择在验证集上提供最佳性能的特征数量。 另一种方法是使用碎石图,它根据相应的模型性能绘制特征数量。

RFE 可以用于无监督学习任务吗?

不,RFE 是一种监督学习技术,需要标记数据来选择特征。 其他技术,如聚类或降维,可用于没有标记数据的无监督学习任务中的特征选择。