lasso特征选择python_特征选择怎么做?这篇文章告诉你

原标题:特征选择怎么做?这篇文章告诉你

lasso特征选择python_特征选择怎么做?这篇文章告诉你_第1张图片

照片由 Clem Onojeghuo 发布在 Unsplash 上面

作者 | Pier Paolo Ippolito

翻译 | Skura

编辑 | 唐里

原文标题:Feature Selection Techniques

原文链接:https://towardsdatascience.com/feature-selection-techniques-1bfab5fe0784

据《福布斯》报道,每天大约会有 250 万字节的数据被产生。然后,可以使用数据科学和机器学习技术对这些数据进行分析,以便提供分析和作出预测。尽管在大多数情况下,在开始任何统计分析之前,需要先对最初收集的数据进行预处理。有许多不同的原因导致需要进行预处理分析,例如:

收集的数据格式不对(如 SQL 数据库、JSON、CSV 等)

缺失值和异常值

标准化

减少数据集中存在的固有噪声(部分存储数据可能已损坏)

数据集中的某些功能可能无法收集任何信息以供分析

在本文中,我将介绍如何使用 python 减少 kaggle Mushroom Classification 数据集中的特性数量。本文中使用的所有代码在 kaggle 和我的 github 帐号上都有。

减少统计分析期间要使用的特征的数量可能会带来一些好处,例如:

提高精度

降低过拟合风险

加快训练速度

改进数据可视化

增加我们模型的可解释性

事实上,统计上证明,当执行机器学习任务时,存在针对每个特定任务应该使用的最佳数量的特征(图 1)。如果添加的特征比必要的特征多,那么我们的模型性能将下降(因为添加了噪声)。真正的挑战是找出哪些特征是最佳的使用特征(这实际上取决于我们提供的数据量和我们正在努力实现的任务的复杂性)。这就是特征选择技术能够帮到我们的地方!

lasso特征选择python_特征选择怎么做?这篇文章告诉你_第2张图片

图 1:分类器性能和维度之间的关系

1、特征选择

有许多不同的方法可用于特征选择。其中最重要的是:

1)过滤方法=过滤我们的数据集,只取包含所有相关特征的子集(例如,使用 Pearson 相关的相关矩阵)。

2)遵循过滤方法的相同目标,但使用机器学习模型作为其评估标准(例如,向前/向后/双向/递归特征消除)。我们将一些特征输入机器学习模型,评估它们的性能,然后决定是否添加或删除特征以提高精度。因此,这种方法可以比滤波更精确,但计算成本更高。

3)嵌入方法。与过滤方法一样,嵌入方法也使用机器学习模型。这两种方法的区别在于,嵌入的方法检查 ML 模型的不同训练迭代,然后根据每个特征对 ML 模型训练的贡献程度对每个特征的重要性进行排序。

lasso特征选择python_特征选择怎么做?这篇文章告诉你_第3张图片

图 2:过滤器、包装器和嵌入式方法表示 [3]

2、实践

在本文中,我将使用 Mushroom Classification 数据集,通过查看给定的特征来尝试预测蘑菇是否有毒。在这样做的同时,我们将尝试不同的特征消除技术,看看它们会如何影响训练时间和模型整体的精度。

首先,我们需要导入所有必需的库。

lasso特征选择python_特征选择怎么做?这篇文章告诉你_第4张图片

我们将在本例中使用的数据集如下图所示。

20ca3f5555126912a6a1b0300dac2bf3.png

图 3:Mushroom Classification 数据集

在将这些数据输入机器学习模型之前,我决定对所有分类变量进行 one hot 编码,将数据分为特征(x)和标签(y),最后在训练集和测试集中进行。

X = df.drop(['class'], axis =

你可能感兴趣的:(lasso特征选择python)