高偏差与高方差

首先,要明白一点,高偏差High bias就是欠拟合underfit,高方差High variance就是过拟合overfit,如下图所示:

 从图示,我们当然可以明显看出区别,区分出哪一个是高偏差 ,哪一个是高方差。但是,这只是肉眼所观察到的,对于计算机而言,需要一个标准,来进行区分,看图是看出不来的。这就用到了训练集和验证集。

从图中可以看到,随着函数的最高次越来越大,训练集拟合效果越来越好,训练误差越来越低,而得到的模型应用到验证集,其验证误差先有大变小,再由小变大,其原因就是,一开始次数小,拟合效果差,也就是欠拟合,使得验证误差很大,随着次数增加,拟合效果变好,验证误差随之降低,但是,当次数太大时,会出现过拟合的情况,在用训练集训练模型时,得到的训练误差当然很低,因为可以说经过了每一个样本点,但是用验证集时误差就会很高,因为不能再保证经过新的样本点了。

从这幅图,也就区分了高偏差和高分差。如下图所示:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
偏差-方差权衡是机器学习中一个重要的概念,它涉及到模型的泛化能力。偏差意味着模型欠拟合,方差意味着模型过拟合。在Python中,我们可以通过绘制学习曲线来诊断偏差-方差问题。 学习曲线是一种可视化工具,用于评估模型的表现。它显示了模型在训练集和验证集上的表现随着训练样本数量的增加而变化的情况。通过观察学习曲线,我们可以判断模型是否存在偏差方差问题。 下面是一个简单的例子,演示如何使用Python绘制学习曲线: ```python from sklearn.model_selection import learning_curve from sklearn.linear_model import LinearRegression import numpy as np import matplotlib.pyplot as plt # 生成随机数据 X = np.random.rand(100, 1) y = 2 + 5 * X + np.random.randn(100, 1) # 定义模型 model = LinearRegression() # 绘制学习曲线 train_sizes, train_scores, test_scores = learning_curve(model, X, y, cv=10) train_mean = np.mean(train_scores, axis=1) train_std = np.std(train_scores, axis=1) test_mean = np.mean(test_scores, axis=1) test_std = np.std(test_scores, axis=1) plt.plot(train_sizes, train_mean, 'o-', color="r", label="Training score") plt.plot(train_sizes, test_mean, 'o-', color="g", label="Cross-validation score") plt.fill_between(train_sizes, train_mean - train_std, train_mean + train_std, alpha=0.1, color="r") plt.fill_between(train_sizes, test_mean - test_std, test_mean + test_std, alpha=0.1, color="g") plt.xlabel("Training examples") plt.ylabel("Score") plt.legend(loc="best") plt.show() ``` 上述代码中,我们使用`sklearn`库中的`learning_curve`函数生成学习曲线。该函数需要传入模型、训练数据、目标数据和交叉验证的折数。最后,我们使用`matplotlib`库绘制学习曲线。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值