什么是向后消除法?17 Mar 2025 | 6 分钟阅读 向后消除法是一种在构建机器学习模型时使用的特征选择技术。它用于移除那些对因变量或输出预测没有显著影响的特征。在机器学习中构建模型有多种方法,包括:
以上是机器学习中构建模型的可能方法,但我们在此只使用向后消除法,因为它是最快的方法。 向后消除法的步骤以下是用于应用向后消除法的一些主要步骤: 步骤-1: 首先,我们需要选择一个显著性水平以保留在模型中。(SL=0.05) 步骤-2: 使用所有可能的预测变量/自变量拟合完整模型。 步骤-3: 选择具有最高 P 值的预测变量,使得:
步骤-4: 移除该预测变量。 步骤-5: 用剩余变量重建并拟合模型。 向后消除法的必要性:一个最优的多元线性回归模型在上一章中,我们讨论并成功创建了我们的多元线性回归模型,其中我们使用了 4 个自变量(研发支出、管理支出、市场支出和州(虚拟变量))和一个因变量(利润)。但该模型并非最优,因为我们包含了所有自变量,并且不知道哪个自变量对预测影响最大,哪个影响最小。 不必要的特征会增加模型的复杂性。因此,只保留最重要的特征并保持模型简单以获得更好的结果是好的。 因此,为了优化模型性能,我们将使用向后消除法。此过程用于优化 MLR 模型性能,因为它只会包含影响最大的特征并移除影响最小的特征。让我们开始将其应用于我们的 MLR 模型。 向后消除法的步骤我们将使用我们在 MLR 前一章中构建的相同模型。以下是完整的代码: 从以上代码中,我们得到了训练集和测试集结果: Train Score: 0.9501847627493607 Test Score: 0.9347068473282446 两个分数之间的差值为 0.0154。 注意:我们将根据此分数,在使用向后消除过程后,估计特征对我们模型的影响。步骤 1:向后消除的准备
这里我们使用了 axis = 1,因为我们想添加一列。要添加一行,我们可以使用 axis = 0。 输出: 通过执行以上代码行,特征矩阵中将添加一个新列,所有值都等于 1。我们可以通过点击变量资源管理器选项下的 x 数据集来检查它。 ![]() 正如我们在上面的输出图像中看到的,第一列已成功添加,它对应于 MLR 方程中的常数项。 步骤:2
输出: 通过执行以上代码行,我们将得到一个摘要表。请看下图: ![]() 在上面的图片中,我们可以清楚地看到所有变量的p值。这里 x1、x2是虚拟变量,x3是研发支出,x4是管理支出,x5是营销支出。 从表格中,我们将选择最高的 p 值,即 x1=0.953。现在,我们得到最高 p 值大于 SL 值,因此将从表格中移除 x1 变量(虚拟变量)并重新拟合模型。以下是代码: 输出 ![]() 正如我们在输出图像中看到的,现在还剩下五个变量。在这些变量中,最高的 p 值为 0.961。因此,我们将在下一次迭代中将其移除。
输出 ![]() 在上面的输出图像中,我们可以看到虚拟变量 (x2) 已经被移除。下一个最高值是 .602,它仍然大于 .5,所以我们需要移除它。
输出 ![]() 正如我们在上面的输出图像中看到的,变量(管理支出)已被移除。但仍然有一个变量剩下,即 营销支出,因为它具有较高的 p 值 (0.60)。所以我们需要移除它。
输出 ![]() 正如我们在上面的输出图像中看到的,只剩下两个变量。因此,只有 研发自变量 是预测的显著变量。所以我们现在可以使用这个变量进行高效预测。 评估性能在上一主题中,我们计算了使用所有特征变量时模型的训练和测试分数。现在我们将检查只使用一个特征变量(研发支出)时的分数。我们的数据集现在看起来像: ![]() 以下是仅使用研发支出构建多元线性回归模型的代码 输出 执行上述代码后,我们将得到训练和测试分数如下: Train Score: 0.9449589778363044 Test Score: 0.9464587607787219 正如我们所看到的,训练分数是 94% 准确,测试分数也是 94% 准确。两个分数之间的差值是 .00149。这个分数非常接近之前使用所有变量时的分数,即 0.0154。 我们仅使用一个自变量(研发支出)而不是四个变量就得到了这个结果。因此,现在,我们的模型既简单又准确。 下一主题机器学习多项式回归 |
我们请求您订阅我们的新闻通讯以获取最新更新。