网站首页 > 技术文章 正文
欠拟合(Underfitting),过拟合(Overfitting)
欠拟合是指特征数选取过少,没法很好的描述数据。
过拟合是指特征数选取过多,同样也没法很好的描述数据。
我们以猜明星为例子:
- 他有2个耳朵。这就是欠拟合,你猜不出他是谁!
- 他长得像牛头梗。这个就是刚好拟合,你大概已经能猜出他是谁了。
- 他长得像王宝强。这个就是过拟合,特征太具体也就太泛了,你仍然猜不出他是谁。
回归到数学,我们来举一个数学的例子,假设我们要拟合的是-x^2,用左边60%的数据来训练。
如下是欠拟合的例子,使用1次多项式(线性)来拟合训练数据。
如下是刚好拟合的例子,使用的是2次多项式来拟合训练数据。
如下是过拟合的例子,使用的是11次多项式来拟合数据。
那么,我们如何来防止过拟合呢?
最朴素的思路,我们要让模型在所有数据上都效果不错。
机器学习中我们常用的方式是给代价函数增加正则项,或者叫惩罚因子,常用的是L2范数(后面再说说范式),简单理解就是参数的平方和,参数越多,惩罚也就越厉害,这个相当于增加了一个先验项。
最优化 = 代价函数(误差项) + 正则项(惩罚因子)
彩蛋:是不是跟贝叶斯一个原理!!!
下图是最简单的增加了平方和的惩罚项对应的表达式拟合误差,可以看到最佳拟合的是二次多项式。
当然,也有另外一种比较实在的方法,比较训练组和测试组的误差项的值,选择最小的那一个就行。
本文中使用到的技术
- 多项式拟合:numpy.ployfit,numpy.ploy1d
- 绘图:matplotlib.pyplot
- 均方差:sklearn.metrics.mean_squared_error
- 范数:numpy.linalg.norm
(如果对你有启发,请【在看】支持,谢谢!)
猜你喜欢
- 2025-02-04 python机器学习:机器学习模型评价-交叉验证与留一验证
- 2025-02-04 Python实现K维树(KD-Tree)算法查找最近邻项目实战
- 2025-02-04 Python机器学习库Sklearn系列教程(22)-交叉验证(K折、
- 2025-02-04 3D网格和点云的邻域分析【Python实战】
- 2025-02-04 统计学中的假设检验:Python实现U检验和卡方检验
- 2025-02-04 如何使用深度神经网络进行图像分类?来自TensorFlow使用者的强烈推荐
- 2025-02-04 Python 深度学习十大技巧,开启人工智能之旅新大门
- 2025-02-04 Python数值和符号算法计算及3D视图物理数学波形方程
- 2025-02-04 【Python特征工程系列】基于LIME对XGboost模型结果进行解释
- 2025-02-04 基于 Python 实践:深度学习从入门到进阶的全面探索
- 261℃Python短文,Python中的嵌套条件语句(六)
- 261℃python笔记:for循环嵌套。end=""的作用,图形打印
- 260℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python实现字符串小写转大写并写入文件
- 254℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 110℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)