欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合的方法

 更新時(shí)間:2018年12月29日 10:53:55   作者:薛定諤的DBA  
今天小編就為大家分享一篇Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

多元函數(shù)擬合。如 電視機(jī)和收音機(jī)價(jià)格多銷售額的影響,此時(shí)自變量有兩個(gè)。

python 解法:

import numpy as np
import pandas as pd
#import statsmodels.api as sm #方法一
import statsmodels.formula.api as smf #方法二
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
 
df = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X = df[['TV', 'radio']]
y = df['sales']
 
#est = sm.OLS(y, sm.add_constant(X)).fit() #方法一
est = smf.ols(formula='sales ~ TV + radio', data=df).fit() #方法二
y_pred = est.predict(X)
 
df['sales_pred'] = y_pred
print(df)
print(est.summary()) #回歸結(jié)果
print(est.params) #系數(shù)
 
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d') #ax = Axes3D(fig)
ax.scatter(X['TV'], X['radio'], y, c='b', marker='o')
ax.scatter(X['TV'], X['radio'], y_pred, c='r', marker='+')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合

擬合的各項(xiàng)評(píng)估結(jié)果和參數(shù)都打印出來了,其中結(jié)果函數(shù)為:

f(sales) = β0 + β1*[TV] + β2*[radio]

f(sales) = 2.9211 + 0.0458 * [TV] + 0.188 * [radio]

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合

圖中,sales 方向上,藍(lán)色點(diǎn)為原 sales 實(shí)際值,紅色點(diǎn)為擬合函數(shù)計(jì)算出來的值。其實(shí)誤差并不大,部分?jǐn)?shù)據(jù)如下。

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合

同樣可擬合一元函數(shù);

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
 
df = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X = df['TV']
y = df['sales']
 
est = smf.ols(formula='sales ~ TV ', data=df).fit()
y_pred = est.predict(X)
print(est.summary())
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(X, y, c='b')
ax.plot(X, y_pred, c='r')
plt.show()

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合

Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合

Ridge Regression:(嶺回歸交叉驗(yàn)證)

嶺回歸(ridge regression, Tikhonov regularization)是一種專用于共線性數(shù)據(jù)分析的有偏估計(jì)回歸方法,實(shí)質(zhì)上是一種改良的最小二乘估計(jì)法,通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價(jià)獲得回歸系數(shù)更為符合實(shí)際、更可靠的回歸方法,對(duì)病態(tài)數(shù)據(jù)的擬合要強(qiáng)于最小二乘法。通常嶺回歸方程的R平方值會(huì)稍低于普通回歸分析,但回歸系數(shù)的顯著性往往明顯高于普通回歸,在存在共線性問題和病態(tài)數(shù)據(jù)偏多的研究中有較大的實(shí)用價(jià)值。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model
from mpl_toolkits.mplot3d import Axes3D
 
df = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
X = np.asarray(df[['TV', 'radio']])
y = np.asarray(df['sales'])
 
clf = linear_model.RidgeCV(alphas=[i+1 for i in np.arange(200.0)]).fit(X, y)
y_pred = clf.predict(X)
df['sales_pred'] = y_pred
print(df)
print("alpha=%s, 常數(shù)=%.2f, 系數(shù)=%s" % (clf.alpha_ ,clf.intercept_,clf.coef_))
 
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(df['TV'], df['radio'], y, c='b', marker='o')
ax.scatter(df['TV'], df['radio'], y_pred, c='r', marker='+')
ax.set_xlabel('TV')
ax.set_ylabel('radio')
ax.set_zlabel('sales')
plt.show()

輸出結(jié)果:alpha=150.0, 常數(shù)=2.94, 系數(shù)=[ 0.04575621 0.18735312]

以上這篇Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用python的turtle繪畫滑稽臉實(shí)例

    使用python的turtle繪畫滑稽臉實(shí)例

    今天小編就為大家分享一篇使用python的turtle繪畫滑稽臉實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

    Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

    ipaddress庫提供了處理IPv4與IPv6網(wǎng)絡(luò)地址的類。這些類支持驗(yàn)證,查找網(wǎng)絡(luò)上的地址和主機(jī),以及其他常見的操作,本文就來介紹一下這些方法的使用,感興趣的一起來了解一下
    2021-06-06
  • np.repeat()函數(shù)的具體使用

    np.repeat()函數(shù)的具體使用

    本文主要介紹了np.repeat()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python實(shí)現(xiàn)最小二乘法的方法詳解

    python實(shí)現(xiàn)最小二乘法的方法詳解

    這篇文章主要介紹了如何基于python實(shí)現(xiàn)最小二乘法的方法,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2024-02-02
  • Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼

    Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼

    本文主要介紹了Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 關(guān)于Python 列表的索引取值問題

    關(guān)于Python 列表的索引取值問題

    這篇文章主要介紹了Python 列表的索引取值,本節(jié)重點(diǎn)掌握多次索引取值的語法:列表[索引][索引],結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 關(guān)于python基礎(chǔ)數(shù)據(jù)類型bytes進(jìn)制轉(zhuǎn)換

    關(guān)于python基礎(chǔ)數(shù)據(jù)類型bytes進(jìn)制轉(zhuǎn)換

    Python 3.x之后,Python自帶字符默認(rèn)使用utf-8格式編碼和顯示,bytes數(shù)據(jù)類型是utf-8格式的二進(jìn)制形式的不可變序列,需要的朋友可以參考下
    2023-05-05
  • Django解決CORS跨域問題的方案

    Django解決CORS跨域問題的方案

    Cross-Origin Resource Sharing(CORS) 跨域問題,在前后端后離項(xiàng)目,selenium , playweight 自動(dòng)化測試代碼中經(jīng)常遇到,本文給大家介紹了Django解決CORS跨域問題的方案,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2024-03-03
  • 詳解pycharm自動(dòng)import所需的庫的操作方法

    詳解pycharm自動(dòng)import所需的庫的操作方法

    這篇文章主要介紹了pycharm自動(dòng)import所需的庫的操作方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python寫的本地WIFI密碼查看器的具體代碼

    python寫的本地WIFI密碼查看器的具體代碼

    本文主要分享一個(gè)本地wifi密碼查看器,用python實(shí)現(xiàn)的,代碼簡單易懂,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評(píng)論