【机器学习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
相关推荐
Theodore_102211 分钟前
深度学习(12)正则化线性回归中的偏差与方差调试
人工智能·深度学习·算法·机器学习·线性回归
链巨人27 分钟前
理解L-平滑 (L-smoothness)和\mu-强凸 (\mu-strong convexity)并以此假设来证明梯度下降方法的收敛性
人工智能·机器学习
Zero4 小时前
机器学习概率论与统计学--(2)统计学基础
机器学习·概率论·统计学
做科研的周师兄4 小时前
巴音河中下游灌溉草地空间分布数据集(2020年)
大数据·人工智能·算法·机器学习·数据挖掘·聚类
纤纡.4 小时前
矿物识别分类:8 种机器学习算法对比与实战(平均值填充数据集)
python·深度学习·算法·机器学习
链巨人5 小时前
海森矩阵(Hessian矩阵)及其应用
线性代数·机器学习·矩阵·概率论
城俊BLOG5 小时前
已落地量产的自动驾驶VLA技术解析:从“感知智能“到“认知智能“的工程化突围
人工智能·机器学习·自动驾驶
云和数据.ChenGuang6 小时前
chromadb为什么需要模拟数据运行
人工智能·神经网络·目标检测·机器学习·计算机视觉
renhongxia16 小时前
生产线数智化质量可靠性管控与安全风险感知
运维·人工智能·安全·机器学习·架构·自动化
Westward-sun.6 小时前
矿物分类实战(一):从异常值到标准化——数据清洗全流程拆解
人工智能·算法·机器学习·数据清洗