机器学习----过拟合和欠拟合 实例+效果图详解
前言
使用多项式回归 可能出现的问题:过拟合和欠拟合
过拟合(Over Fitting):算法所训练的模型过多的表达了数据间的噪音关系 。
就是太过于细节了!
欠拟合(Under Fitting):算法所训练的模型不能完全表述数据关系。
就是太笼统了!
上手实践
线性回归:
x=np.random.uniform(-3,3,size=100) #生成x特征 -3到3 100个
X=x.reshape(-1,1)#将x编程100行1列的矩阵
y=0.5*x**2+x+2+np.random.normal(0,1,size=100)#模拟的是标记y 对应的是x的二次函数#使用线性回归看下score
from sklearn.linear_model import LinearRegression
reg=LinearRegression()
reg.fit(X,y)
reg.score(X,y)#将预测值y_pre画图 对比真实y
y_pre=reg.predict(X)
plt.scatter(x,y)
plt.plot(np.sort(x),y_pre[np.argsort(x)],color='r')#查看MSE
from sklearn.metrics import mean_squared_error
mean_squared_error(y,y_pre)
线性回归score:
0.5029149851435246
拟合效果图 此时曲线过于简单就是欠拟合
多项式回归:
#将Pipeline封装 方便使用
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import PolynomialFeatures
def PolynomialRegression(degree):return Pipeline([#构建Pipeline("poly",PolynomialFeatures(degree=degree)),#构建PolynomialFeatures("std_scaler",StandardScaler()),#构建归一化StandardScaler("lin_reg",LinearRegression())#构建线性回归LinearRegression
])#设置degree=2 进行fit拟合
poly2_reg =PolynomialRegression(2)
poly2_reg.fit(X,y)#求出MSE
y2_pre = poly2_reg.predict(X)
mean_squared_error(y2_pre,y)
MSE结果:
1.1286611246028457
拟合效果图:
如果我们使用degree=10 训练的预测结果更好的。
dgree=100 效果更好并不是真正的拟合曲线,只是原有数据点连接的曲线,对训练数据集的拟合程度太高,不具有泛化能力。曲线变得更弯曲更加复杂,过拟合数据点 但是逐渐变得更不能反应样本数据的形态了。
多项式回归deree传入越大拟合越高,取特别大的话能MSE为0,但是并不能反映样本数据形态。
模型的泛化能力
过拟合的情况下 ,如以上曲线,虽然学习到的曲线使得整个样本使用曲线预测误差变现小,新的样本呢?
如紫色的点,预测值显然错误的,这样这个模型的泛化能力差, 即对新数据预测能力。
模型的构建就是为了能够有更好的泛化能力,这样才能是一个好模型,能够更小的误差预测
怎么评判模型的泛化能力呢?
使用训练数据进行模型的拟合,使用测试数据进行模式的测试。
因为在拟合的时候使用的是训练数据,并没有牵扯到测试数据,这样的话我们用训练数据拟合的模型在测试数据上预测的话就能够看出这个模型的泛化能力怎么样。测试数据就相当于新来的数据,对新增加的数据预测。根据测试数据预测的结果对比测试数据的标记,能够检测出此模型的泛化能力。
网格搜索?
机器学习----过拟合和欠拟合 实例+效果图详解相关推荐
- 机器学习中过拟合、欠拟合与方差、偏差的关系是什么?
机器学习中过拟合.欠拟合与方差.偏差的关系是什么? 过拟合(overfitting)与欠拟合(underfitting)是统计学中的一组现象.过拟合是在统计模型中,由于使用的参数过多而导致模型对观测数 ...
- 百面机器学习 #2 模型评估:07 过拟合和欠拟合及其常用解决方法
如何有效地识别"过拟合"和"欠拟合"现象,并有针对性地进行模型调整,是不断改进机器学习模型的关键. 过拟合 模型对于训练数据拟合呈过当的情况 反映到评估指标上, ...
- 机器学习算法中的过拟合与欠拟合(转载)
在机器学习表现不佳的原因要么是过度拟合或欠拟合数据. 1.机器学习中的逼近目标函数过程 监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y). Y=f(X)Y ...
- 机器学习笔记(通俗易懂)---监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2)
机器学习笔记-监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2) 明天开始就打数模美赛了,今天简单地介绍一下监督学习 以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考 文章目录 机器学习笔 ...
- 机器学习中的过拟合与欠拟合
目录 一.什么是过拟合与欠拟合 二.原因及解决方法 三.正则化类别 四.拓展-原理 问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有 问题呢? 当算法在某个数据集当中出现这种情况,可能就出 ...
- 【机器学习】过拟合与欠拟合
我们在训练机器学习模型或者深度学习神经网络中经常会遇到过拟合与欠拟合的问题,接下来就对这两个问题进行简单介绍,并举出几种相应的解决办法. 1.过拟合与欠拟合 过拟合是指训练数据上能够获得比其他假设更好 ...
- 机器学习基础概念——过拟合和欠拟合
欢迎关注,敬请点赞! 机器学习基础概念--过拟合和欠拟合 1. 基本概念 1.1 偏差和方差 2. 欠拟合和过拟合 2.1 学习曲线 2.2 复杂程度曲线 2.3 支持向量机的过拟合和欠拟合 2.4 ...
- 机器学习之过拟合和欠拟合
文章目录 前言 什麽是过拟合和欠拟合? 过拟合和欠拟合产生的原因: 欠拟合(underfitting): 过拟合(overfitting): 解决欠拟合(高偏差)的方法 1.模型复杂化 2.增加更多的 ...
- 机器学习考点---过拟合与欠拟合、CNN原理......
2 . 与数据相关的内容:数据的标注来源.规范化.增广.噪声处理怎么处理?数据有噪声好不好? 测试集.验证集.训练集各自的作用: 训练集:参数调优. 验证集:超参.模型的选择,模型评估,正则化 . 为 ...
最新文章
- Android--实现自制录音/播放录音程序
- python还是hadoop_使用Python和Hadoop Streaming编写MapReduce
- Thymeleaf相关补充
- Nginx+Php-fpm+MySQL+Redis源码编译安装指南
- 机械师电脑_必看!面对电脑玩游戏卡顿,需要做些什么?
- 【STM32F042】使用NTC热敏电阻实现温度测量
- Python通过selenium操作edge浏览器
- Ubuntu 16.04 安装运行 ROVIO odometry
- 透明网桥自学习转发帧解题记录
- Python数据分析-google play store的app数据分析
- Chapter 2 (Matrix Algebra): Partitioned matrices (分块矩阵)
- CS224W-图神经网络 笔记5.3:Spectral Clustering - 谱图聚类的具体操作步骤
- 计算机显卡设置方法,显卡在哪里设置 显卡设置方法【详细介绍】
- 关于移动端适配,你必须要知道的
- 限流的方式,为什么要限流,怎么实现限流
- 怎么样写好头部姿态的研究背景?
- Linux进程详解 【Linux由基础到进阶】
- 为什么需要虚拟DOM?
- 【自考必看】你能学会的《信息资源管理》,计算机科学与基础(本科)
- 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型