如何使用给定机器学习模型的偏差和方差计算不可约误差?

数据挖掘 方差 偏见
2022-02-14 11:36:08

我正在尝试计算 ML 模型的偏差和方差。

Err(x)=E[(Yf^(x))2]Err(x)=Bias2+Variance+Irreducible Error
f^(x)是我们的模型

Y是我们试图预测的变量

Err(x)是总体误差 (MSE)。

我正在将mlxtend 库用于bias variance decomposition.

我遵循的步骤:

  1. 生成训练数据集Y=f(x)+ϵ

    f(x)=a+bx+cx2

    ϵN(0,σ2).是正态分布的噪声,均值0,方差σ2

  2. f(x)=a+bx+cx2生成测试数据集这里我创建了 X_test 和 y_test。y_test 包含真值(无噪声),因为偏差是使用真函数计算的。

  3. 使用 mlxtend 库函数计算偏差和方差。在这里,我将线性回归估计器传递给函数。

我的问题是即使这里的 MSE 公式是Err(x)=Bias2+Variance+Irreducible Error并且我还读到如果我们的模型是在包含噪声的数据上训练的,那么就不可能从估计器。尽管如此,分解后我得到Irreducible Error=0即使我使用真正的函数(f(x))来计算Bias,仍然Irreducible Error0

我究竟做错了什么?

根据我的理解,如果我计算Err(x)Bias2Variance我应该能够从上面的方程中得到Irreducible Error

1个回答

不可约误差来自噪声(或您没有的未知变量)。你没有噪音,所以不可约误差为零!请参阅 Wikipedia 上的推导