【机器学习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
相关推荐
Coovally AI模型快速验证4 小时前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
orion-orion6 小时前
贝叶斯机器学习:高斯分布及其共轭先验
机器学习·统计学习
余炜yw7 小时前
深入探讨激活函数在神经网络中的应用
人工智能·深度学习·机器学习
赛丽曼8 小时前
机器学习-分类算法评估标准
人工智能·机器学习·分类
yuanbenshidiaos10 小时前
【大数据】机器学习----------计算机学习理论
大数据·学习·机器学习
汤姆和佩琦10 小时前
2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
人工智能·python·学习·机器学习·scikit-learn·sklearn
热爱编程的OP11 小时前
机器学习 vs 深度学习
人工智能·深度学习·机器学习
清图12 小时前
Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型
人工智能·python·深度学习·机器学习·计算机视觉·自然语言处理·ai作画
好评笔记16 小时前
AIGC视频扩散模型新星:Video 版本的SD模型
论文阅读·深度学习·机器学习·计算机视觉·面试·aigc·transformer
liruiqiang0516 小时前
机器学习-线性回归(简单回归、多元回归)
人工智能·机器学习