特征选择:11 种特征选择策略总结

太多的特征会增加模型的复杂性和过拟合,而太少的特征会导致模型的拟合不足。将模型优化为足够复杂以使其性能可推广,但又足够简单易于训练、维护和解释是特征选择的主要工作。

 

“特征选择”意味着可以保留一些特征并放弃其他一些特征。本文的目的是概述一些特征选择策略:

  1. 删除未使用的列
  2. 删除具有缺失值的列
  3. 不相关的特征
  4. 低方差特征
  5. 多重共线性
  6. 特征系数
  7. p 值
  8. 方差膨胀因子 (VIF)
  9. 基于特征重要性的特征选择
  10. 使用 sci-kit learn 进行自动特征选择
  11. 主成分分析 (PCA)

该演示的数据集在 MIT 许可下发布,来自 PyCaret——一个开源的低代码机器学习库。

数据集相当干净,但我做了一些预处理。请注意,我使用此数据集来演示不同的特征选择策略如何工作,而不是构建最终模型,因此模型性能无关紧要。

首先加载数据集:

  1. import pandas as pddata = 'https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/automobile.csv'
  2. df = pd.read_csv(data)
  3. df.sample(5)

该数据集包含 202 行和 26 列——每行代表一个汽车实例,每列代表其特征和相应的价格。这些列包括:

  1. df.columns
  2. >> Index(['symboling', 'normalized-losses', 'make', 'fuel-type', 'aspiration', 'num-of-doors', 'body-style', 'drive-wheels', 'engine-location','wheel-base', 'length', 'width', 'height', 'curb-weight', 'engine-type', 'num-of-cylinders', 'engine-size', 'fuel-system', 'bore', 'stroke', 'compression-ratio', 'horsepower', 'peak-rpm', 'city-mpg', 'highway-mpg', 'price'], dtype='object')

现在让我们深入研究特征选择的 11 种策略。

删除未使用的列

当然,最简单的策略是你的直觉。虽然是直觉,但有时很有用的,某些列在最终模型中不会以任何形式使用(例如“ID”、“FirstName”、“LastName”等列)。如果您知道某个特定列将不会被使用,请随时将其删除。在我们的数据中,没有一列有这样的问题所以,我在此步骤中不删除任何列。

完整文章

https://www.overfit.cn/post/6d872f2534f2460493caa108cc546c15

 

posted @ 2022-04-29 11:20  deephub  阅读(217)  评论(0编辑  收藏  举报