机器学习笔记【Week6】

一、模型结果下一步

  • 训练模型得到结果后,常面临:模型性能不理想,下一步如何改进?

  • 通过对训练误差和验证误差的观察,判断是高偏差(欠拟合)还是高方差(过拟合)。

  • 一般步骤:

    • 计算训练误差和验证误差,不包含正则项。

    • 判断两者的大小和差距。

    • 根据判断选择策略:

      情况训练误差验证误差结论改进方向
      欠拟合(高偏差)模型能力不足增加特征,减小正则化
      过拟合(高方差)泛化能力差增加训练数据,增加正则化

二、评估假设的误差

  • 训练误差计算:在训练集上的平均平方误差(MSE),不含正则化项。

Jtrain(θ)=12mtrain∑i=1mtrain(hθ(x(i))−y(i))2 J_{\text{train}}(\theta) = \frac{1}{2 m_{\text{train}}} \sum_{i=1}^{m_{\text{train}}} \left(h_\theta(x^{(i)}) - y^{(i)}\right)^2 Jtrain(θ)=2mtrain1i=1mtrain(hθ(x(i))y(i))2

  • 验证误差计算:在验证集上的平均平方误差(MSE),同样不含正则化项。

Jcv(θ)=12mcv∑i=1mcv(hθ(x(i))−y(i))2 J_{\text{cv}}(\theta) = \frac{1}{2 m_{\text{cv}}} \sum_{i=1}^{m_{\text{cv}}} \left(h_\theta(x^{(i)}) - y^{(i)}\right)^2 Jcv(θ)=2mcv1i=1mcv(hθ(x(i))y(i))2

  • 关键点:评估时不要使用包含正则项的代价函数,因为正则项并不反映模型拟合效果,而是防止过拟合。

三、模型选择和交叉验证

为何需要交叉验证集?

  • 训练集用于训练模型。

  • 交叉验证集用于调超参数,避免用测试集调参造成测试结果偏差。

  • 测试集用于最后模型评估。

  • 调参流程

    • 选取一系列超参数组合(如 λ\lambdaλ 正则化参数,或者多项式阶数 ddd)。
    • 对每组参数,训练模型 θ(i)\theta^{(i)}θ(i)
    • 计算对应交叉验证误差 Jcv(θ(i))J_{\text{cv}}(\theta^{(i)})Jcv(θ(i))
    • 选择使交叉验证误差最低的参数。
    • 使用训练集 + 交叉验证集合并训练最终模型。
    • 在测试集上评估模型性能。

四、诊断偏差和方差

训练误差和验证误差的表现:

情况训练误差验证误差说明
高偏差模型欠拟合
高方差模型过拟合
适中模型拟合良好

调整建议

  • 高偏差时:
    • 增加模型复杂度(如使用多项式回归的更高阶)。
    • 减小正则化系数 λ\lambdaλ
    • 添加更多特征。
  • 高方差时:
    • 增加训练数据量。
    • 增加正则化系数 λ\lambdaλ
    • 简化模型(降阶、多项式次数减小等)。

五、正则化与偏差/方差权衡

  • 正则化项加入代价函数:

J(θ)=12m∑i=1m(hθ(x(i))−y(i))2+λ2m∑j=1nθj2 J(\theta) = \frac{1}{2m} \sum_{i=1}^m \left(h_\theta(x^{(i)}) - y^{(i)}\right)^2 + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2+2mλj=1nθj2

  • λ\lambdaλ 越大,模型越受到限制,倾向欠拟合(偏差增大)。
  • λ\lambdaλ 越小,模型自由度越大,可能过拟合(方差增大)。
  • 调整 λ\lambdaλ 是偏差-方差权衡的重要手段。

六、学习曲线

  • 通过画学习曲线,观察训练误差和验证误差随训练样本数 mmm 增加的变化趋势。

  • 画法步骤:

    1. 取前 mmm 个训练样本,训练模型 θ(m)\theta^{(m)}θ(m)
    2. 计算训练误差:

    Jtrain(θ(m))=12m∑i=1m(hθ(m)(x(i))−y(i))2 J_{\text{train}}(\theta^{(m)}) = \frac{1}{2 m} \sum_{i=1}^m \left(h_{\theta^{(m)}}(x^{(i)}) - y^{(i)}\right)^2 Jtrain(θ(m))=2m1i=1m(hθ(m)(x(i))y(i))2

    1. 计算验证误差:

    Jcv(θ(m))=12mcv∑i=1mcv(hθ(m)(x(i))−y(i))2 J_{\text{cv}}(\theta^{(m)}) = \frac{1}{2 m_{\text{cv}}} \sum_{i=1}^{m_{\text{cv}}} \left(h_{\theta^{(m)}}(x^{(i)}) - y^{(i)}\right)^2 Jcv(θ(m))=2mcv1i=1mcv(hθ(m)(x(i))y(i))2

  • 曲线含义

    • 如果训练误差和验证误差都很高,且差距小,通常是高偏差,需增加模型复杂度。
    • 如果训练误差远低于验证误差,通常是高方差,需增加训练样本或正则化。
    • 验证误差随训练样本增加不断下降,说明模型受益于更多数据。

七、最终结果决定下一步

结合误差分析和学习曲线判断:

  • 高偏差(欠拟合)
    • 增加模型复杂度(更高阶多项式等)。
    • 减小正则化强度。
    • 添加更多有意义的特征。
  • 高方差(过拟合)
    • 增加训练样本数。
    • 增强正则化。
    • 减少特征数量或简化模型。

八、机器学习系统的要求

  • 明确业务目标和任务定义。
  • 明确性能指标(准确率、查准率、召回率等)。
  • 确定数据来源。
  • 制定评估标准和成功标准。

九、误差分析

  • 目的:通过人工分析验证集上的错误样本,发现模型主要缺陷。
  • 步骤
    1. 选择验证集上的若干错误样本。
    2. 分类这些错误样本的类型或原因(比如特征不足,数据噪声,模型欠拟合等)。
    3. 针对常见错误类型,设计改进方案,比如:
      • 添加新特征。
      • 改变模型结构。
      • 清理数据。
  • 效果:误差分析指导方向比盲目调参更有效。

十、类别不平衡的误差度量

  • 真实世界问题中,类别分布通常不均衡。
  • 准确率可能不适合衡量模型好坏:
    • 如正例占极少数,模型全预测为反例准确率也很高,但毫无用处。
  • 需采用其他指标,如查准率、召回率

十一、查准率与查全率

定义:

Precision=TPTP+FP \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP

Recall=TPTP+FN \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP

  • 查准率(Precision):模型预测为正的样本中,有多少是真正正例。
  • 查全率(Recall):所有正例中,模型正确预测出来的比例。

权衡关系:

  • 提高查准率会降低查全率,反之亦然。
  • 具体应用中,需根据任务侧重点调整阈值或优化目标。

十二、机器学习系统中的数据

  • 数据质量直接影响模型性能。
  • 需要:
    • 数据清洗,去除脏数据。
    • 特征工程,挖掘有用特征。
    • 增加训练数据,提升泛化。
    • 考虑数据增强技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值