我正在尝试计算 ML 模型的偏差和方差。
Err(x)=E[(Y−f^(x))2]Err(x)=Bias2+Variance+Irreducible Error
f^(x)是我们的模型
Y是我们试图预测的变量
Err(x)是总体误差 (MSE)。
我正在将mlxtend 库用于bias variance decomposition.
我遵循的步骤:
生成训练数据集Y=f(x)+ϵ
f(x)=a+bx+cx2
ϵ∼N(0,σ2).是正态分布的噪声,均值0,方差σ2
f(x)=a+bx+cx2生成测试数据集。这里我创建了 X_test 和 y_test。y_test 包含真值(无噪声),因为偏差是使用真函数计算的。
使用 mlxtend 库函数计算偏差和方差。在这里,我将线性回归估计器传递给函数。
我的问题是即使这里的 MSE 公式是Err(x)=Bias2+Variance+Irreducible Error并且我还读到如果我们的模型是在包含噪声的数据上训练的,那么就不可能从估计器。尽管如此,分解后我得到Irreducible Error=0。即使我使用真正的函数(f(x))来计算Bias,仍然Irreducible Error是0。
我究竟做错了什么?
根据我的理解,如果我计算Err(x)、Bias2和Variance我应该能够从上面的方程中得到Irreducible Error