【机器学习sklearn实战】计算偏差和方差

采用mlxtend可以很方便的计算Bias-Variance误差分解,下面是回归决策树方法的偏差-方差分解。

python 复制代码
from mlxtend.evaluate import bias_variance_decomp
from sklearn.tree import DecisionTreeRegressor
from mlxtend.data import boston_housing_data
from sklearn.model_selection import train_test_split

X, y = boston_housing_data()
X_train, X_test, y_train, y_test = train_test_split(X, y,
                                                    test_size=0.3,
                                                    random_state=123,
                                                    shuffle=True)

tree = DecisionTreeRegressor(random_state=123)

avg_expected_loss, avg_bias, avg_var = bias_variance_decomp(
        tree, X_train, y_train, X_test, y_test, 
        loss='mse',
        random_seed=123)

print('Average expected loss: %.3f' % avg_expected_loss)
print('Average bias: %.3f' % avg_bias)
print('Average variance: %.3f' % avg_var)

输出结果为:

sh 复制代码
Average expected loss: 31.536
Average bias: 14.096
Average variance: 17.440

作为对比,下面是Bagging方法的偏差-方差,可以看出采用Bagging方法可以降低variance。

python 复制代码
from sklearn.ensemble import BaggingRegressor

tree = DecisionTreeRegressor(random_state=123)
bag = BaggingRegressor(estimator=tree,
                       n_estimators=100,
                       random_state=123)

avg_expected_loss, avg_bias, avg_var = bias_variance_decomp(
        bag, X_train, y_train, X_test, y_test, 
        loss='mse',
        random_seed=123)

print('Average expected loss: %.3f' % avg_expected_loss)
print('Average bias: %.3f' % avg_bias)
print('Average variance: %.3f' % avg_var)

输出结果为:

sh 复制代码
Average expected loss: 18.620
Average bias: 15.460
Average variance: 3.159
相关推荐
yiqieyouliyuwo35 分钟前
DAY39打卡
机器学习
NewCarRen3 小时前
自动驾驶中安全相关机器学习功能的可靠性定义方法
安全·机器学习·自动驾驶
极客BIM工作室5 小时前
机器学习阶段性总结:对深度学习本质的回顾 20250813
人工智能·深度学习·机器学习
NeoFii5 小时前
Day 39: 图像数据与显存
python·深度学习·机器学习
Christo35 小时前
ECCV-2018《Variational Wasserstein Clustering》
人工智能·机器学习·支持向量机
victory04315 小时前
音频重采样使用RandomOverSampler 还是 SMOTE
人工智能·深度学习·机器学习
星仔编程5 小时前
DAY38作业(补)
人工智能·机器学习
西西弗Sisyphus6 小时前
一个基于 PyTorch 的完整模型训练流程
人工智能·pytorch·机器学习
一袋米扛几楼986 小时前
【机器学习】什么是DNN / MLP(全连接深度神经网络, Deep Neural Network / Multilayer Perceptron)?
人工智能·机器学习·dnn
Monkey PilotX8 小时前
把 7B 模型塞进车规级芯片:LoRA 在自动驾驶中的极限调参指南
人工智能·机器学习·自动驾驶