如何从数据集中选择重要变量?


介绍

在机器学习中,数据特征是最影响模型性能的参数之一。数据的特征或变量应该具有信息量且足够好,以便将其馈送到机器学习算法中,因为据观察,即使提供少量高质量数据,模型也能达到最佳性能。

传统的机器学习算法在馈送更多数据时性能更好。然而,在达到某个数据量值之后,模型的性能会保持不变,不再提高。此时,变量的选择仍然可以帮助我们提高性能。

本文将讨论一些最佳方法,以帮助我们从数据集中选择最佳变量,从而获得具有核心直觉、工作机制和示例的准确模型。

特征选择

特征选择是一种用于从数据集中选择最佳特征的技术。在每个机器学习问题中,不可能拥有数据集中最佳的特征。在训练和构建机器学习模型时,必须丢弃或忽略一些无用的特征。

有很多方法可以从数据集中选择变量。

方法 1:利用你的知识

在直接跳到一些复杂的特征选择方法之前,利用关于数据的常识,然后丢弃无用的特征是节省时间和计算资源的最佳方法。

你可以利用你对数据的了解,然后据此做出决定。例如,带有序列号列的数据大多被忽略且不实用,回归数据集中的ID或编号之类的列没有帮助,可以直接删除。

方法 2:使用皮尔逊相关系数

相关特征选择方法是特征选择中最简单和计算量最小的方法之一。这里计算每个自变量与因变量之间的相关性,并根据相关值手动选择最佳特征。

#importing pandas import pandas as pd #dataframe df = pd.read_csv("data.csv") #correlations df.corr()

方法 3:使用 SelectKBest

SelectKBest 是选择数据最佳和最合适的特征最著名和最有价值的方法之一。此方法在因变量和自变量或列为数字形式的情况下最有用。

可以使用 Sci-kit Learn 轻松实现此方法。只需传入我们想要的最佳特征数量,它就会计算所有相关性并将指定的最佳特征作为输出返回。

#importing libraries from sklearn.datasets import make_regression from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_regression # dataset generation X, y = make_regression(n_samples=50, n_features=5, n_informative=5) # feature selection fs = SelectKBest(score_func=f_regression, k=5) # apply feature selection X_best = fs.fit_transform(X, y)

正如我们在上面的代码中看到的,我们可以使用名为“k”的参数定义我们想要的最佳特征数量。将此代码应用于数据后,最终形状将为 (100,5),其中 100 指定行数,5 是选择的五个最佳特征。

方法 4:使用方差分析检验 (ANOVA)

方差分析检验 (ANOVA) 也是一种常用的著名技术,用于从数据中选择最佳特征。使用此检验,我们也可以定义我们想要的最佳特征数量,它将据此生成新数据。

当我们的数据集中有数值数据和类别数据时,主要使用此方法。

示例

# ANOVA feature selection from sklearn.datasets import make_classification from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_classif # generate dataset X, y = make_classification(n_samples=100, n_features=100, n_informative=10) # define feature selection fs = SelectKBest(score_func=f_classif, k=10) # apply feature selection X_best = fs.fit_transform(X, y)

上述代码的输出可能是从给定的 100 个特征中选择的最佳十个特征。

方法 5:使用卡方检验

卡方检验是数据科学家最著名的特征选择统计方法之一。此方法应用于自变量和因变量为类别数据的情况。

通过为 score_func 使用参数值“chi2”,我们可以快速地在 SKLearn 中实现和计算数据的最佳变量。

示例

# Chi2 feature selection from sklearn.datasets import make_classification from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2 # generate dataset X, y = make_classification(n_samples=100, n_features=100, n_informative=10) # define feature selection fs = SelectKBest(score_func=chi2, k=10) # apply feature selection X_best = fs.fit_transform(X, y)

与上面的代码类似,也将计算所有特征的卡方值,并根据卡方值,最佳特征将作为最终输出显示。

关键要点

  • 特征选择是必须采取的重要步骤之一,因为它可以减少计算和存储能力的需求,并在模型部署期间提高模型的性能。

  • 在需要在有限时间内构建模型的情况下,可以使用领域知识和标准的皮尔逊相关系数方法进行快速特征选择。

  • 方差分析和卡方检验可用于对类别和数值形式的数据进行准确的特征选择。

结论

在本文中,我们讨论了一些用于从数据集中选择最佳特征或变量以提高模型性能的最佳特征选择技术。了解这些方法将帮助人们非常有效地对任何数据执行特征选择,并能够据此做出最佳决策。

更新于:2023年1月16日

1K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始
广告