过拟合与欠拟合

欠拟合与过拟合讲解

以某市房价随地域波动情况大致讲解

一般来说,我们会使用训练数据进行模型的拟合,使用测试数据进行模型的测试,比如在使用线性回归的时候,将x,y数据的某种映射关系用曲线表示出来,往往只能通过对训练数据进行拟合曲线,无法绘制出准确的图线,即构建算法模型来符合给定数据的特征,而在拟合的过程中,算法可能会出现过度符合样本数据的特征,或者符合样本的数据特征太少的情况。即我们所说的过拟合与欠拟合。
过拟合:算法太符合样本数据的特征 ,对于实际生产中的数据特征无法拟合。
欠拟合:指的是算法不太符合样本的数据特征。

假如说我们要进行房价预测,通过对训练数据集的拟合来做一个反映某市房价随着距离市中心的距离变化情况的曲线,一般来说,越靠近市中心房价越高,随着距离的增加,房价总体呈现下降趋势,这里我们根据某一线城市房价情况合理假设了一组房价数据。

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import make_interp_spline
#设置中文显示
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

plt.figure()
x_value = np.arange(1,21)
y_value = np.array([20,18.6,18.8,16.7,17.4,17,14.5,15.7,13.6,12.4,11.3,12.8,13.6,10.4,7.3,5.6,4.8,4.4,3.7,3.4])
x_smooth = np.linspace(x_value.min(),x_value.max(),300)
y_smooth = make_interp_spline(x_value,y_value)(x_smooth)
plt.scatter(x_value,y_value,s = 50)
plt.title("Apartment Purchase Price",fontsize = 24)
plt.xlabel("distance",fontsize = 20)
plt.ylabel("price",fontsize = 20)
plt.savefig("Apartment Purchase Price.jpg")
plt.plot(x_value,y_value,label = "过拟合")#过拟合图线绘制
plt.plot([1,20],[20,3.4],color = "green",label = "欠拟合") #欠拟合曲线绘制
plt.plot(x_smooth,y_smooth,color = "red",label = "拟合") #拟合曲线绘制
#显示图例
plt.legend()

在这里插入图片描述
由图可知,我们如果采用的训练数据过于简单,则拟合出来的模型泛化能力就会较差(图中很多点都不在绿色的线上),也就是欠拟合;而我们如果使用的算法完全符合或者过于符合训练数据集的特征,则就会出现过拟合的现象,模型的泛化能力也会降低。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值