最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 普通最小二乘法(OLS)進行多項式擬合的方法

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

多元函數擬合。如 電視機和收音機價格多銷售額的影響,此時自變量有兩個。

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()) #回歸結果
print(est.params) #系數
 
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)進行多項式擬合

擬合的各項評估結果和參數都打印出來了,其中結果函數為:

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

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

Python 普通最小二乘法(OLS)進行多項式擬合

圖中,sales 方向上,藍色點為原 sales 實際值,紅色點為擬合函數計算出來的值。其實誤差并不大,部分數據如下。

Python 普通最小二乘法(OLS)進行多項式擬合

同樣可擬合一元函數;

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)進行多項式擬合

Python 普通最小二乘法(OLS)進行多項式擬合

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

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

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, 常數=%.2f, 系數=%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()

輸出結果:alpha=150.0, 常數=2.94, 系數=[ 0.04575621 0.18735312]

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

相關文章

  • Scrapy-Redis之RedisSpider與RedisCrawlSpider詳解

    Scrapy-Redis之RedisSpider與RedisCrawlSpider詳解

    這篇文章主要介紹了Scrapy-Redis之RedisSpider與RedisCrawlSpider詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解

    Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解

    這篇文章主要介紹了Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解,Twisted框架的reactor適合于處理短的、非阻塞的操作,Twisted提供了線程池來在其他的線程而不是主線程(Twisted的reactor線程)中執(zhí)行慢的操作,需要的朋友可以參考下
    2023-10-10
  • python搶購軟件/插件/腳本附完整源碼

    python搶購軟件/插件/腳本附完整源碼

    這篇文章主要介紹了python搶購軟件/插件/腳本附完整源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python中如何用Matplotlib繪制多圖并合并展示

    Python中如何用Matplotlib繪制多圖并合并展示

    這篇文章主要介紹了Python中如何用Matplotlib繪制多圖并合并展示問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python?Fire中兩種命令行參數靈活設置方式詳解

    Python?Fire中兩種命令行參數靈活設置方式詳解

    Python的Fire庫,一個用來生成命令行工具的的庫,這篇文章主要針對命令行參數,補充兩種更加靈活的設置方式,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • python Pexpect 實現輸密碼 scp 拷貝的方法

    python Pexpect 實現輸密碼 scp 拷貝的方法

    今天小編就為大家分享一篇python Pexpect 實現輸密碼 scp 拷貝的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python 常用日期處理 -- calendar 與 dateutil 模塊的使用

    Python 常用日期處理 -- calendar 與 dateutil 模塊的使用

    這篇文章主要介紹了Python如何使用calendar 與 dateutil 模塊處理日期,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • 如何將pytorch模型部署到安卓上的方法示例

    如何將pytorch模型部署到安卓上的方法示例

    這篇文章演示如何將訓練好的pytorch模型部署到安卓設備上,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python開發(fā)之list操作實例分析

    python開發(fā)之list操作實例分析

    這篇文章主要介紹了python開發(fā)之list操作方法,結合實例形式分析了list操作的具體用法與相關注意事項,需要的朋友可以參考下
    2016-02-02
  • python求平均數、方差、中位數的例子

    python求平均數、方差、中位數的例子

    今天小編就為大家分享一篇python求平均數、方差、中位數的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

镇远县| 汉沽区| 余庆县| 哈密市| 高唐县| 灌南县| 营山县| 新巴尔虎左旗| 无锡市| 关岭| 辽中县| 连平县| 铜梁县| 遵义县| 冷水江市| 吉林省| 新兴县| 陆丰市| 济阳县| 灯塔市| 兴和县| 景洪市| 扶沟县| 普定县| 陕西省| 汾阳市| 彩票| 卓尼县| 东丰县| 平遥县| 黄浦区| 九龙坡区| 舒城县| 道孚县| 赤水市| 上杭县| 瓮安县| 子长县| 边坝县| 临武县| 吉安县|