python和机器学习 第八章 多项式回归与模型泛化(三)过拟合和欠拟合_python回归模型过拟合解决-程序员宅基地

技术标签: 机器学习  过拟合和欠拟合  python与机器学习  

过拟合和欠拟合

欠拟合underfitting
算法所训练的模型不能完整的表述数据关系
高偏差,低方差
过拟合
算法所训练的模型过多地表达了数据间地噪音关系
低偏差,高方差。

模型的泛化能力
预测新的样本点的能力
测试模型的泛化能力,使用测试数据集
在这里插入图片描述

红线表明了,随着模型复杂度的提高,会出现由欠拟合到过拟合的变化

学习曲线

随着训练样本的逐渐增多,算法训练出的模型的表现能力

构造数据
In [118]: import numpy as np
     ...: import matplotlib.pyplot as plt

In [119]: np.random.seed(666)
     ...: x = np.random.uniform(-3.0,3.0,size=100)
     ...: X = x.reshape(-1,1)
     ...: y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,size=100)

In [121]: from sklearn.model_selection import train_test_split
     ...: X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)
In [122]: X_train.shape
Out[122]: (75, 1)     
绘制学习曲线
对于这75个数据,每次都多加入一些训练数据来训练我们的模型。
据此来观察我们得到的这个模型在训练数据集和测试数据集上的表现

最开始只给一个数据进行训练,每次训练一个模型。再逐渐增加

In [123]: from sklearn.linear_model import LinearRegression
     ...: from sklearn.metrics import mean_squared_error
     ...: 
     ...: train_score = []
     ...: test_score = []
     ...: for i in range(1,76):
     ...:     lin_reg = LinearRegression()
     ...:     lin_reg.fit(X_train[:i], y_train[:i])
     ...:     
     ...:     y_train_predict  = lin_reg.predict(X_train[:i])
     ...:     train_score.append(mean_squared_error(y_train[:i], y_train_predict))
     ...:     
     ...:     y_test_predict = lin_reg.predict(X_test)
     ...:     test_score.append(mean_squared_error(y_test,y_test_predict))  

In [124]: plt.plot([i for i in range(1,76)], np.sqrt(train_score),label="train")
     ...: plt.plot([i for i in range(1,76)], np.sqrt(test_score),label="test")
     ...: plt.legend()
     ...: 
下图说明,训练数据集的拟合误差小,但是泛化到测试数据集上,误差会增大
欠拟合

在这里插入图片描述

最佳拟合
下图是使用二阶多项式回归得到的学习曲线(degree=2)
整体趋势和线性回归差不多。但是二阶多项式回归稳定在1和0.9,说明二阶效果较好。

在这里插入图片描述

(degree=20)过拟合

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dear_leslie/article/details/96153258

智能推荐

java aes256 加密_如何基于Java 256位AES密码的加密?-程序员宅基地

文章浏览阅读534次。小编典典与带外接收者共享password(a char[])和salt 所byte[]选择的 SecureRandom- 8个字节,这是个好习惯,不需要保密)。然后从此信息中得出一个好的密钥:/* Derive the key, given password and salt. */SecretKeyFactory factory = SecretKeyFactory.getInstance("P..._secretkeyfactory factory = secretkeyfactory.getinstance("pbkdf2withhmacsha25

PHP在线小说电子书阅读系统设计与实现-程序员宅基地

文章浏览阅读1.9k次,点赞27次,收藏20次。【后台功能】系统设置:设置关于我们、联系我们、加入我们、法律声明广告管理:设置小程序首页轮播图广告和链接留言列表:所有用户留言信息列表,支持删除会员列表:查看所有注册会员信息,支持删除资讯分类:录入、修改、查看、删除资讯分类录入资讯:录入资讯标题、内容等信息管理资讯:查看已录入资讯列表,支持删除和修改资讯评论列表:所有用户的评论信息列表资讯评论管理:支持对评论信息审核,删除;审核后的信息用户才可见图书分类设置:设置有哪些科目类型录入图书:录入图书标题、选择分类、图书价格、上传图片、图书详

饲料企业精细化生产管理方案_饲料厂的管理新方案有哪些-程序员宅基地

文章浏览阅读199次。摘要:现代化的饲料企业需要用现代化的方法进行管理,只有脱去作坊型粗放化管理的外衣,才能实现工业化生产的精细管理。饲料企业的生产管理可以细化为十项日常工作,每一项工作的开展都要本着从虚到实、由小到大、由浅入深、循序渐进的原则进行。  关键词:精细化生产管理 企业管理重在创新,但凡成功的企业,其管理模式与管理方法都能够体现出鲜明的时代特色。在饲料工业坎坷而又辉煌的发展历程中,生产管理一直与精细化..._饲料厂的管理新方案有哪些

lvgl页面管理 简单实现_lvgl界面关联-程序员宅基地

文章浏览阅读4.6k次,点赞12次,收藏69次。在lvgl使用的过程中,最初的时候,肯定都会遇到这样的问题,页面之间的切换以及空间的释放。如果不合理的设计的话,一上来就将所有的页面进行初始化,那将会占用许多不必要的内存空间,硬写之间的切换的话,界面一旦多起来,那切换逻辑将会绕来绕去,最终会写不下去。所以合理设计一个页面管理函数或者说是对象将会非常重要。欢迎关注 !!!!!!!基于上面三点就可以完成一个基本的页面管理对象了,是不是非常简单。页面管理对象的实现,页面管理对象主要是为了方便页面之间的切换以及内存的释放(即删除没有加载在界面上页上的资源)。_lvgl界面关联

从视觉任务(识别/定位/分割/追踪..)出发,调研各种模态提示的视觉大模型CV-VLM综述论文详细阅读:Foundational Models Defining a New Era in Vision_视觉问题vlm算法综述-程序员宅基地

文章浏览阅读43次。视觉系统可以观察和推理视觉场景的构成性质,是理解我们这个世界的基础。现实世界环境中物体及其位置、模糊性和变化之间的复杂关系可以用人类语言进行更好的描述,而人类语言自然受语法规则以及音频和深度等其他模态的制约。为弥合这些模式之间的差距而学习的模型与大规模的训练数据相结合,有助于在测试时进行上下文推理、概括和提示。这些模型被称为基础模型。这些模型的输出可以通过人类提供的提示进行修改,而无需重新训练,例如,通过。_视觉问题vlm算法综述

Unity Shader总结(五)——基础纹理_unity内置的shader通用纹理名有:-程序员宅基地

文章浏览阅读166次。单张纹理实践Shader "Unity Shaders Book/Chapter 7/Single Texture" { Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) //white是内置纹理的名字 _MainTex ("Main Tex", 2D) = "white" {} _Specular ("Specular", Color) = (1, 1, 1, 1) _Gloss ("Gloss", Range(8._unity内置的shader通用纹理名有:

随便推点

python中config命令_Python config.config方法代码示例-程序员宅基地

文章浏览阅读7.5k次。本文整理汇总了Python中config.config方法的典型用法代码示例。如果您正苦于以下问题:Python config.config方法的具体用法?Python config.config怎么用?Python config.config使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在模块config的用法示例。在下文中一共展示了config..._config.config

QWidget添加阴影_qq widget-程序员宅基地

文章浏览阅读207次。QWidget阴影添加_qq widget

人均 3.6万行代码, C++ 成最烫手山药:腾讯首度披露技术研发数据!-程序员宅基地

文章浏览阅读598次。点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱来自:机器之心你每天都在用的 QQ 微信,是如何被打造出来的?作为国内科技巨头,腾..._3万行c++代码项目多大

SecureCRT登录会话密码解密_securecrt密码解密-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏4次。此文章是针对忘记了SecureCRT登录时输入的密码,选择了保存密码,后面忘记了密码,需要通过SecureCRT的密码保存记录,恢复找回机器登录密码的情况。以下为我的操作步骤,特此记录,以备忘。_securecrt密码解密

桌面编号自动生成工具日历修正版_桌面编号程序-程序员宅基地

文章浏览阅读10次。显示桌面编号,日历、守则。_桌面编号程序

xshell 5评估期已过,不能使用的解决办法_xshell5不联网也过期-程序员宅基地

文章浏览阅读8k次。 早上上班突然发现 xshell 5 过期了不能使用,当场就是懵逼状态,重新安装还是不行。百度找了好久才找到解决办法,其实xshell 5有免费版的,即Home & school 版本。卸载原程序,下载安装免费版本的xshell 5即可。免费版本的链接:http://www.netsarang.com/download/free_license.html 1.点击免费版..._xshell5不联网也过期

推荐文章

热门文章

相关标签