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

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

简介

在机器学习中,数据特征是最能影响模型性能的参数之一。数据的特征或变量应该具有足够的信息量,并能提供给机器学习算法,因为人们注意到,如果提供的数据量再少,质量再好,模型也能表现得最好。

传统的机器学习算法在得到更多的数据时表现得更好。然而,在数据的某个值或数量之后,模型的性能变得恒定,没有增加。这时,变量的选择仍然可以帮助我们提高性能。

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

特征选择

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

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

方法1:利用你的知识

在直接跳到一些复杂的特征选择方法之前,使用关于数据的常识,然后放弃不常用的特征是节省时间和计算工作的最好方法。

你可以利用你对数据的了解,然后根据它来决定。例如,带有序列号列的数据大多被忽略,不实用,带有ID或No等列的回归数据集也没有帮助,可以直接放弃。

方法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是选择的最佳5个特征。

方法4:使用方差分析测试

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个给定特征中最好的10个特征。

方法5:使用Chi-Square测试

Cho-square方法是数据科学家最著名的特征选择的统计方法之一。这种方法适用于我们有分类数据作为独立和依赖数据的情况。

通过使用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)

与上面的代码类似,所有特征的chi-square度量也将被计算出来,根据chisquare值,最佳特征将作为最终输出可见。

重要启示

  • 特征选择是在模型部署过程中为减少计算和存储能力需求以及提高模型性能而应该采取的基本步骤之一。
  • 在建立模型的时间有限的情况下,领域知识和标准的皮尔逊相关方法可以用来快速选择特征。
  • ANOVA和Chi-Square测试可用于对分类和数字形式的数据进行精确的特征选择。

总结

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程