机器学习中的最佳子集选择(解释和示例)
在机器学习中,我们经常希望使用一组预测变量和响应变量来构建模型。我们的目标是建立一个模型,可以有效地使用预测变量来预测响应变量的值。
给定一组p个总预测变量,我们可以构建许多模型。我们可以用来选择最佳模型的一种方法称为最佳子集选择,其工作原理如下:
1.设 M 0为空模型,不包含预测变量。
2.对于 k = 1, 2, … p:
- 拟合所有恰好包含k 个预测变量的p C k模型。
- 从这些pCk模型中选择最好的一个并将其命名为Mk 。将“最佳”定义为具有最高 R 2或同等地最低 RSS 的模型。
3.使用交叉验证预测误差、Cp、BIC、AIC 或调整后的 R 2从 M 0 … M p中选择单个最佳模型。
请注意,对于一组p个预测变量,有 2 p个可能的模型。
选择最佳子集的示例
假设我们有一个包含 p = 3 个预测变量和一个响应变量 y 的数据集。为了使用该数据集执行最佳子集选择,我们将拟合以下 2 p = 2 3 = 8 模型:
- 没有预测变量的模型
- 具有预测器 x 1的模型
- 具有预测器 x 2的模型
- 具有预测器 x 3的模型
- 具有 x 1 、 x 2预测变量的模型
- 具有预测变量 x 1 , x 3的模型
- 具有 x 2 、 x 3预测变量的模型
- 具有预测变量 x 1 、 x 2 、 x 3的模型
然后我们会从每组具有k个预测变量的模型中选择R2最高的模型。例如,我们最终可能会选择:
- 没有预测变量的模型
- 具有预测器 x 2的模型
- 具有 x 1 、 x 2预测变量的模型
- 具有预测变量 x 1 、 x 2 、 x 3的模型
然后,我们将交叉验证并选择最佳模型作为导致最低预测误差、Cp、BIC、AIC 或调整后的R2 的模型。
例如,我们最终可能会选择以下模型作为“最佳”模型,因为它产生的交叉验证预测误差最低:
- 具有 x 1 、 x 2预测变量的模型
选择“最佳”模型的标准
选择最佳子集的最后一步是选择具有最低预测误差、最低 Cp、最低 BIC、最低 AIC 或最低调整R2的模型。更高。
以下是用于计算每个指标的公式:
Cp: (RSS+2dσ̂) / n
AIC: (RSS+2dσ̂ 2 ) / (nσ̂ 2 )
BIC: (RSS+log(n)dσ̂ 2 ) / n
R 2调整: 1 – ( (RSS / (nd-1)) / (TSS / (n-1)) )
金子:
- d:预测变量的数量
- n:观察总数
- σ̂:与回归模型中每个响应度量相关的误差方差的估计
- RSS:回归模型的残差平方和
- TSS:回归模型的总平方和
最佳子集选择的优点和缺点
选择最佳子集可带来以下好处:
- 这是一种易于理解和解释的简单方法。
- 这使我们能够确定最佳的模型,因为我们考虑了预测变量的所有组合。
然而,这种方法有以下缺点:
- 这可能需要大量计算。对于一组p个预测变量,有 2 p个可能的模型。例如,如果有 10 个预测变量,则有 2 10 = 1000 个可能的模型需要考虑。
- 因为它考虑了大量的模型,所以它可能会找到一个在训练数据上表现良好但在未来数据上表现不佳的模型。这可能会导致过度拟合。
结论
尽管选择最佳子集很容易实现和理解,但如果您正在使用包含大量预测变量的数据集,则可能不切实际,并且可能导致过度拟合。
此方法的替代方法称为逐步选择,它的计算效率更高。