zoukankan      html  css  js  c++  java
  • 回归

    回归

      回归的英文Regression,单词regress本意是退化,回退

      回归的意思是倒推,由果索因,分为线性和非线性

      由大量的函数结果和自变量反推回函数表达式的过程

      用python实现线性回归的例子

    import numpy as np
    import matplotlib.pyplot as plt
    #原始数据
    x=[1,2,3,4,5,6,7,8,9]
    y=[0.199,0.389,0.580,0.783,0.980,1.177,1.380,1.575,1.771]
    #生成1矩阵并追加在x矩阵之后
    A=np.vstack([x,np.ones(len(x))]).T
    #调用最小二乘法
    a,b=np.linalg.lstsq(A,y)[0]
    #转化为numpy array
    x=np.array(x)
    y=np.array(y)
    #画图
    plt.plot(x,y,'o',label='Original data',markersize=10)
    plt.plot(x,a*x+b,'r',label='Fitted line')
    plt.show()

     

    过拟合:我们通过对数据样本的归纳和抽象,最后得到一个完整的数据映射模型(拟合),但在归纳的过程中,可能会出现迎合所有样本点甚至是噪声点而使得模型过于复杂,失去泛化能力的情况

      泛化能力:通过学习得到的模型对未知数据的预测能力

      解决过拟合的办法:1)增加训练样本,2)在建模的过程中舍弃典型的噪声数据

      欠拟合:与过度拟合相反,由于建模不当导致误差太大

    import numpy as np
    from scipy.optimize import curve_fit
    import matplotlib.pyplot as plt
    #原始数据
    T=[1960,1961,1962,1963,1964,1965,1966,1967,1968]
    S=[29.72,30.61,31.51,32.13,32.14,32.85,33.56,34.20,34.83]
    
    xdata=np.array(T)
    ydata=np.log(np.array(S))
    
    def func(x,a,b):
        return a+b*xdata
    
    #使用非线性最小二乘法拟合函数
    popt,pcov=curve_fit(func,xdata,ydata)
    
    #画图
    plt.plot(xdata,ydata,'ko',label="Original Noised Data")
    plt.plot(xdata,func(xdata,*popt),'r',label="Fitted Curve")
    plt.show()

     

  • 相关阅读:
    Html-浅谈如何正确给table加边框
    如何在移动设备上调试html5开发的网页
    swiper嵌套小demo(移动端触摸滑动插件)
    移动端如何用swiper实现导航栏效果
    background-color:transparent
    点击按钮 发送短信验证码后60秒倒计时
    placeholder的样式设置
    linux 定时任务crontab
    laravel学习一
    centos 7安装jdk
  • 原文地址:https://www.cnblogs.com/Aaron12/p/7623563.html
Copyright © 2011-2022 走看看