码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 机器学习入门(五)回归问题中的曲线过拟合问题及解决


    目录

    5 回归问题中的曲线过拟合问题及解决

    5.1 过拟合问题介绍

    5.1.1 线性回归中的曲线过拟合问题

    5.1.2 逻辑回归中的曲线过拟合问题 

    5.1.3 如何解决过拟合问题 

    5.2 将参数正则化解决过拟合问题 

    5.3 正则化线性回归 

    5.3.1 代价函数

    5.3.2 梯度下降法迭代θ 

    5.3.3 正规方程求θ 

    5.4 正则化逻辑回归  

    5.4.1 代价函数

    5.4.2  梯度下降法迭代θ 


    5 回归问题中的曲线过拟合问题及解决

    5.1 过拟合问题介绍

    5.1.1 线性回归中的曲线过拟合问题

            我们还拿卖房子为例,对于(房面积,房价)的数据集,我们给出了如下三种曲线拟合方式。

            我们先来了解一组概念:方差与偏差

            偏差:(bias)是指一个模型的在不同训练集上的平均性能和最优模型的差异。偏差可以用来衡量一个模型的拟合能力。偏差越大,预测值平均性能越偏离最优模型。偏差衡量模型的预测能力,对象是一个在不同训练集上模型,形容这个模型平均性能对最优模型的预测能力。

            方差:( variance)描述的是一个模型在不同训练集上的差异,描述的是一个模型在不同训练集之间的差异,表示模型的泛化能力,方差越小,模型的泛化能力越强。可以用来衡量一个模型是否容易过拟合。预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,预测结果数据的分布越散。方差用于衡量一个模型在不同训练集之间的关系,和最优模型无关。对象是不同训练集上的一个模型,表示选取不同的训练集,得出的模型之间的差异性。

    ①左侧的拟合方式:存在高偏差(High bias)的问题,预测值平均性能越偏离最优模型。

    ②中侧的拟合方式:优秀的拟合方式

    ③右侧的拟合方式:存在高方差的问题,虽然在这个模型中代价函数可能很少,但是它的泛化能力很差,难以泛化...

    5.1.2 逻辑回归中的曲线过拟合问题 

            左侧拟合高偏差;中间为优秀拟合;右侧为过拟合。 

    5.1.3 如何解决过拟合问题 

            减少特征数量:手动选择要保留的特征;模型选择算法(后章介绍)

            正则化参数:保留所有特征,但减小参数的权值\theta_{j} ;当我们有很多特征时,效果很好,每个特征都对预测y有所贡献。

    5.2 将参数正则化解决过拟合问题 

            如上图所示,左图是优秀拟合示例,右图蓝色是过拟合的示例,如果我们降低\theta_{3},\theta_{4}的权重(0.0000001),则可以得到紫色的优秀拟合示例。 

            在正则化线性回归中,我们选择\theta以最小化:

             那么我们如何选择参数\lambda呢?如果\lambda过大

    ①算法工作正常,设置\lambda非常大也无所谓。

    ②但算法无法消除过拟合

    ③算法导致欠拟合。(甚至无法很好地拟合训练数据)。

    ④梯度下降法无法收敛

            若设置\lambda过大最终拟合效果如上图:我们可以看到,曲线是欠拟合的....

    5.3 正则化线性回归 

    5.3.1 代价函数

    \jmath (\theta ) = \frac{1}{2m} [\sum_{i=1}^{m}(h_{\theta}(x^{i})-y^{(i)})^{2} + \lambda \sum_{i=1}^{n}\theta_{j}^2]

             这里,m表示数据集的数量,n表示待拟合参数的数量。

    5.3.2 梯度下降法迭代θ 

    \theta_{j} :=\theta_{j}(1-\alpha \frac{\lambda }{m})-\alpha \frac{1 }{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}

    5.3.3 正规方程求θ 

            对于n个特征的待拟合线性回归方程

    \theta = (X^TX + \lambda \begin{vmatrix} 0 &0 &0 &0 &0 & 0 &0 \\ 1&0 & 0 & 0 & 0 & 0 &0 \\ 0 & 1& 0 & 0 &0 &0 & 0\\ 0&0 & 1 & 0 & 0 &0 &0 \\ ...& ...& ... & ... & ... & ... & ...\\ ... &... & ... &... & ... & ...&... \\ 0&0 &0 & 0&0 &0 & 1 \end{vmatrix}^{-1})X^Ty

    5.4 正则化逻辑回归  

    5.4.1 代价函数

    \jmath (\theta) = -\frac{1}{m}\begin{bmatrix} \sum_{i=1}^{m} ( y^{(i)}log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1-h_{\theta}(x^{(i)})) \end{bmatrix} + \frac{\lambda }{2m}\sum_{j=1}^{n}\theta_{j}^{2}

    5.4.2  梯度下降法迭代θ 

    \theta_{j} := \theta_{j} - \alpha [\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}logh_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)} - \frac{\lambda }{m}\theta_{j}]

  • 相关阅读:
    “蔚来杯“2022牛客暑期多校训练营10
    强化学习-学习笔记5 | AlphaGo
    基于Ubuntu Server编译YTM32 SDK工程
    libcurl域名检测超时段错误分析
    【微信小程序】后台数据交互于WX文件使用
    NVIDIA TX2 与 维特 IMU CAN通信
    初步上手Git软件及GitHub平台:基本操作方法
    面试突击32:为什么创建线程池一定要用ThreadPoolExecutor?
    在Linux中使用docker【中】(常见命令上)
    开源项目汇总
  • 原文地址:https://blog.csdn.net/qq_41694024/article/details/127621439
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号