线性回归中的特征选择

数据挖掘 特征选择 线性回归 特征工程
2021-09-26 00:35:47

我有一个保险数据集,如下所示。为此,我需要建立一个模型来计算费用。

   age     sex     bmi  children smoker     region      charges
0   19  female  27.900         0    yes  southwest  16884.92400
1   18    male  33.770         1     no  southeast   1725.55230
2   28    male  33.000         3     no  southeast   4449.46200
3   33    male  22.705         0     no  northwest  21984.47061
4   32    male  28.880         0     no  northwest   3866.85520

但我不确定是否可以删除“区域”列。是否可以进行任何测试以仅考虑重要变量?

3个回答

首先,转换你的列,然后应用线性回归,但是你想知道你的特征对你选择的因变量的影响吗?

阅读这篇文章,因为它提供了关于如何解释算法给出的系数的深刻见解,并进一步讨论或调整。

为什么不考虑使用梯度提升决策树 (GBDT) 进行回归,您会发现许多 Python 实现(XGboost、LightGBM 和 CatBoost)。

GBDT 的优点(与您的问题更相关)是:

  • 他们有一种计算特征重要性的内在方法(由于树分裂的工作方式,例如基尼分数等)。
  • 他们可以处理您拥有的分类变量(性别、烟雾、地区)
  • 还要考虑变量之间任何可能的相关性。简单的线性模型无法捕捉任何可能导致过度拟合的相关性。
  • 有很多方法可以规范 GBDT,这可能会非常方便!

使用 GBDT,您只需要注意连续变量,在您的情况下是 bmi 变量,而不是人为地推翻您的树(树很难处理非常连续的数据)。您可以通过向上/向下舍入或合并连续变量或其他方法轻松克服这一挑战。

如果您有充分的理由坚持线性回归,也许您可​​以使用 LASSO,它是一种正则化线性回归,它严厉惩罚 (=0) 不太重要的变量。人们实际上也使用 LASSO 进行特征选择。

R 中的 pacakgeleaps具有执行此操作的功能,例如regsubsets本质上,此函数所做的是将不同的模型与您可以选择的标准进行比较,并根据所选标准选择表现最佳的模型。

请注意,保持模型最高 R2 不是一个很好的标准,因为具有更多变量的模型总是具有更高的 R2. regsubsets可以使用的标准是调整后的 R^2贝叶斯信息标准等。