码农知识堂 - 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}]

  • 相关阅读:
    Android UI 开发·界面布局开发·案例分析
    实证与虚无,抽象和具象,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang接口(interface)的使用EP08
    uniapp 微信小程序使用ec-canvas图表
    融云观察:全球 GenAI TOP50 应用的「6 大启示」
    Mac M1运行、连接 Docker MongoDB7。导出、恢复数据库
    Python接口自动化搭建过程,含request请求封装!
    vue中使用MINIO将文件上传到指定的bucket库中(vue2和vue3)
    Keil MDK 安装
    DC-4 靶机
    IO模型1-初识IO
  • 原文地址:https://blog.csdn.net/qq_41694024/article/details/127621439
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号