【机器学习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
相关推荐
超龄超能程序猿41 分钟前
使用 Python 对本地图片进行图像分类
开发语言·人工智能·python·机器学习·分类·数据挖掘·scipy
大千AI助手44 分钟前
RLHF:人类反馈强化学习 | 对齐AI与人类价值观的核心引擎
人工智能·深度学习·算法·机器学习·强化学习·rlhf·人类反馈强化学习
在猴站学算法4 小时前
机器学习(西瓜书) 第二章 模型评估与选择
人工智能·机器学习
2401_8786247915 小时前
pytorch 自动微分
人工智能·pytorch·python·机器学习
胖达不服输15 小时前
「日拱一码」021 机器学习——特征工程
人工智能·python·机器学习·特征工程
小哥谈16 小时前
论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
蓝婷儿16 小时前
Python 机器学习核心入门与实战进阶 Day 4 - 支持向量机(SVM)原理与分类实战
python·机器学习·支持向量机
杰夫贾维斯16 小时前
CentOS Linux 8 的系统部署 Qwen2.5-7B -Instruct-AWQ
linux·运维·人工智能·机器学习·centos
yzx99101317 小时前
AI大模型平台
大数据·人工智能·深度学习·机器学习
盛寒18 小时前
向量空间 线性代数
python·线性代数·机器学习