溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何使用Python實(shí)現(xiàn)滾動(dòng)回歸操作

發(fā)布時(shí)間:2020-07-22 09:11:01 來(lái)源:億速云 閱讀:558 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了如何使用Python實(shí)現(xiàn)滾動(dòng)回歸操作,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

滾動(dòng)回歸

所謂滾動(dòng)回歸,通常用在時(shí)間序列上。記當(dāng)前時(shí)刻為 t,回歸時(shí)長(zhǎng)為 s,則一直使用 當(dāng)作自變量來(lái)預(yù)測(cè) 。使用滾動(dòng)回歸的目的通常是為了避免未來(lái)函數(shù)對(duì)于回歸的影響。

具體來(lái)說(shuō),如果我們直接用所有數(shù)據(jù)來(lái)建立線(xiàn)性回歸模型,則回歸系數(shù) ,是關(guān)于所有 x 與所有 y 的函數(shù)。然而,我們?cè)?時(shí)是不知道未來(lái)的數(shù)據(jù)點(diǎn)的!如果使用全部數(shù)據(jù)進(jìn)行回歸則相當(dāng)于未卜先知,會(huì)造成嚴(yán)重的過(guò)擬合。

Python實(shí)現(xiàn)

之前 python 的 pandas 與 statsmodels 庫(kù)均支持滾動(dòng)回歸,但是現(xiàn)在兩個(gè)都不支持。因此如果大家使用的是最新版的 pandas 與 statsmodels ,那么網(wǎng)上的那些做法均沒(méi)有用。

目前我找到的唯一可以實(shí)現(xiàn)滾動(dòng)回歸的 python 庫(kù)是 pyfinance,代碼如下:

from pyfinance.ols import PandasRollingOLS
 
results = PandasRollingOLS(x, y, window) # window 是滾動(dòng)回歸的自變量個(gè)數(shù)
results.solution # 每一步估計(jì)的截距與斜率
results.beta # 每一步估計(jì)的斜率
results.alpha # 每一步估計(jì)的截距
results.predicted # 每一步估計(jì)的樣本內(nèi)預(yù)測(cè)值

補(bǔ)充知識(shí):python 實(shí)現(xiàn)字幕動(dòng)態(tài)滾動(dòng)和等待效果

晚上看了些python實(shí)現(xiàn)動(dòng)態(tài)字幕效果的文章,總會(huì)提到print函數(shù)的flush=True參數(shù),還有os.system('cls')清屏,總是迷糊,并不能實(shí)現(xiàn)滾動(dòng)屏幕效果。經(jīng)過(guò)多方思索和查找,總結(jié)如下。

1.windows平臺(tái)下pycharm工具,其實(shí)加不加 flush=True 效果都是一樣的,因?yàn)榫W(wǎng)上說(shuō),有些系統(tǒng)是把字符存放在緩存里不會(huì)實(shí)時(shí)顯示,總是再最后才一次性把所有的緩存信息顯示,這樣的延遲導(dǎo)致看不到動(dòng)態(tài)效果。經(jīng)過(guò)測(cè)試,windowns平臺(tái)的pycharm工具不存在此問(wèn)題,加不加效果都一樣。

2.回車(chē)換行符的使用:

# 回車(chē)和換行的歷史: # 機(jī)械打字機(jī)有回車(chē)和換行兩個(gè)鍵作用分別是: # 換行 '\n' 就是把滾筒卷一格,不改變水平位置。 (即移到下一行,但不是行首,而是和上一行水平位置一樣) # 回車(chē) '\r' 就是把水平位置復(fù)位,不卷動(dòng)滾筒。 (即將光標(biāo)移到行首,但是不會(huì)移到下一行,如果繼續(xù)輸入的話(huà)會(huì)覆蓋掉前面的內(nèi)容) # Enter = 回車(chē)+換行(\r\n)

所以可以利用回車(chē)符,不斷清除前面的字符,然后循環(huán)顯示新的字符,來(lái)實(shí)現(xiàn)動(dòng)態(tài)滾動(dòng)效果。

2個(gè)實(shí)例如下:

實(shí)例1 動(dòng)態(tài)廣告語(yǔ)

import time
 
content = '鉆石永久遠(yuǎn),一顆永流傳!'
while True:
  print('\r', content, end='', flush=True) #去掉flush參數(shù)效果也一樣
  content = content[1:] + content[0]
  time.sleep(0.5)

實(shí)例2 等待效果

import time
 
while True:
  print('鉆石永久遠(yuǎn),一顆永流傳', end=' ')
  for i in range(10):
    print('·', end='', flush=True) #去掉flush參數(shù)效果也一樣
    time.sleep(0.3)
  print('\r',end='')

看完上述內(nèi)容,是不是對(duì)如何使用Python實(shí)現(xiàn)滾動(dòng)回歸操作有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI