乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      數(shù)據(jù)分享|PYTHON用KERAS的LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測(cè)天然氣價(jià)格例子

       拓端數(shù)據(jù) 2022-05-05 發(fā)布于上海

      原文鏈接:http://?p=26519 

      一個(gè)簡(jiǎn)單的編碼器-解碼器LSTM神經(jīng)網(wǎng)絡(luò)應(yīng)用于時(shí)間序列預(yù)測(cè)問(wèn)題:預(yù)測(cè)天然氣價(jià)格,預(yù)測(cè)范圍為 10 天?!斑M(jìn)入”時(shí)間步長(zhǎng)也設(shè)置為 10 天。) 只需要 10 天來(lái)推斷接下來(lái)的 10 天??梢允褂?10 天的歷史數(shù)據(jù)集以在線(xiàn)學(xué)習(xí)的方式重新訓(xùn)練網(wǎng)絡(luò)。

      數(shù)據(jù)集是天然氣價(jià)格查看文末了解數(shù)據(jù)獲取方式 ,具有以下特征:

      • 日期(從 1997 年到 2020 年)- 為 每天數(shù)據(jù)

      • 以元計(jì)的天然氣價(jià)格

      相關(guān)視頻:LSTM神經(jīng)網(wǎng)絡(luò)架構(gòu)和工作原理及其在Python中的預(yù)測(cè)應(yīng)用

      讀取數(shù)據(jù)并將日期作為索引處理

      # 固定日期時(shí)間并設(shè)置為索引
      dftet.index = pd.DatetimeIndex

      # 用NaN來(lái)填補(bǔ)缺失的日期(以后再補(bǔ))
      dargt = f\_arget.reindex(ales, fill\_value=np.nan)

      # 檢查
      print(d_tret.dtypes)
      df_aget.head(10)

      處理缺失的日期

      # 數(shù)據(jù)歸納(使用 "向前填充"--根據(jù)之前的值進(jìn)行填充)。
      dfaet.fillna(method='ffill'inplace=True)

      特征工程

      因?yàn)槲覀冋谑褂蒙疃葘W(xué)習(xí),所以特征工程將是最小的。

      • One-hot 編碼“is_weekend”和星期幾

      • 添加行的最小值和最大值(可選)

      通過(guò)設(shè)置固定的上限(例如 30 倍中位數(shù))修復(fù)異常高的值

      # 在df_agg中修復(fù)任何非常高的值 - 歸一化為中值
      for col in co\_to\_fi_ies:
          dgt\[col\] = fixnaes(dftget\[col\])

      添加滯后

      # 增加每周的滯后性
      df\_tret = addag(d\_aget, tare\_arble='Price'step\_ak=7)
      # 增加30天的滯后性
      df\_get = ad\_ag(df\_ret, tagt\_able='Price'sep_bck=30)

      # 合并后刪除任何有NA值的列
      d_gt.dropna(inplace=True)
      print(dfget.shape)

      tie\_nx = df\_art.index

      歸一化

      • 歸一化或最小-最大尺度(需要減小較寬的數(shù)值范圍,以便 LSTM 收斂)。

      # 標(biāo)準(zhǔn)化訓(xùn)練數(shù)據(jù)\[0, 1\]
      sclr = prcsing.Maxcaer((0,1))

      準(zhǔn)備訓(xùn)練數(shù)據(jù)集

      • 時(shí)間步數(shù) = 1

      • 時(shí)間步數(shù) = nsteout小時(shí)數(shù)(預(yù)測(cè)范圍)

      在這里,我們將數(shù)據(jù)集從 [samples, features] 轉(zhuǎn)換為 [samples, steps, features] - 與算法 LSTM 一起使用的維度。下面的序列拆分使用“walk-forward”方法來(lái)創(chuàng)建訓(xùn)練數(shù)據(jù)集。

      # 多變量多步驟編碼器-解碼器 lstm 示例
      # 選擇一個(gè)時(shí)間步驟的數(shù)量



      # 維度變成\[樣本數(shù)、步驟、特征\]
      X, y = splices(datasformed, n\_ep\_in, n\_ep\_out)

      # 分成訓(xùn)練/測(cè)試
      et_ut = int(0.05*X.shpe\[0\]) 
      X\_tain, X\_est, ytrain, y\_tst = X\[:-tetaont\], X\[-tes\_ont:\], y\[:-tstmunt\], y\[-es_unt:\]

      訓(xùn)練模型

      這利用了長(zhǎng)期短期記憶算法。

      # 實(shí)例化和訓(xùn)練模型
      print
      model = cre\_odel(n\_tps\_inn\_tep\_outn\_feureslerig_rate=0.0001)

      探索預(yù)測(cè)

      %%time
      #加載特定的模型

      model = lod\_id\_del(
                                 n_stepin, 
                                 n\_sep\_out, 
                                 X_tan.shape\[2\])

      # 展示對(duì)一個(gè)樣本的預(yù)測(cè)
      testle_ix = 0
      yat = mdel.predict(X\_tet\[est\_amle\_ix\].reshape((1,n\_sep_in, nfatues)),erbose=Tue)

      # 計(jì)算這一個(gè)測(cè)試樣本的均方根誤差
      rmse = math.sqrt

      plot\_result(yhat\[0\], scalersaved\_columns)


      點(diǎn)擊標(biāo)題查閱往期內(nèi)容

      Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷(xiāo)售量時(shí)間序列建模預(yù)測(cè)分析

      左右滑動(dòng)查看更多

      01

      02

      03

      04

      平均 RMSE

      # 收集所有的測(cè)試RMSE值
      rmesores = \[\]
      for i in range:
          yhat = oel.predict(Xtet\[i\].reshape((1, \_stes\_in, _faues)), verbose=False)
          # 計(jì)算這一個(gè)測(cè)試樣本的均方根誤差
          rmse = math.sqrt(mensqaerror(yhat\[0\], y_test\[i\]))

      訓(xùn)練整個(gè)數(shù)據(jù)集

      #在所有數(shù)據(jù)上實(shí)例化和訓(xùn)練模型
      modl\_l = cret\_mel(nsep\_insteps\_oun_etures,learnnrate=0.0001)
      mde\_all, ru\_ime, weighfie = trin(md_all, X, y, batcsie=16, neohs=15)

      樣本內(nèi)預(yù)測(cè)

      注意:模型已經(jīng)“看到”或訓(xùn)練了這些樣本,但我們希望確保它與預(yù)測(cè)一致。如果它做得不好,模型可能會(huì)欠擬合或過(guò)擬合。要嘗試的事情:

      • 增加或減少批量大小

      • 增加或減少學(xué)習(xí)率

      • 更改網(wǎng)絡(luò)中 LSTM 的隱藏層數(shù)

      # 獲得10個(gè)步
      da\_cent = dfret.iloc\[-(ntes\_in*2):-nsps_in\]

      # 標(biāo)準(zhǔn)化
      dta_ectormed = sclr.rasfrm(daareent)

      # 維度變成\[樣本數(shù)、步驟、特征\]
      n_res = dtcentorm.shape\[1\]
      X\_st = data\_recn\_trsrd.reshape((1, n\_tps\_n, n\_feares))

      # 預(yù)測(cè)
      foecst = mlll.predict(X_past)

      # 擴(kuò)大規(guī)模并轉(zhuǎn)換為DF
      forcast = forast.resape(n_eaturs))
      foect = saer.inese_transform(forecast)
      fuure\_dtes  df\_targe.ide\[-n\_steps\_out:\] 

      # 繪圖
      histrcl = d_aet.ioc\[-100:, :1\] # 獲得歷史數(shù)據(jù)的X步回溯
      for i in ane(oisae\[1\]):
          fig = plt.igre(fgze=(10,5))
          
          # 繪制df_agg歷史數(shù)據(jù)
          plt.plot(.iloc\[:,i\]
          
          # 繪制預(yù)測(cè)圖
          plt.plot(frc.iloc\[:,i\])

          # 標(biāo)簽和圖例
          plt.xlabel

      預(yù)測(cè)樣本外

      # 獲取最后10步
      dtareent = dfargt.iloc\[-nstpsin:\]。

      # 標(biāo)準(zhǔn)化
      dta\_ecntranfomed = scaler.trasorm(data\_recent)


      # 預(yù)測(cè)
      forct = meall.rict(_past)

      # 擴(kuò)大規(guī)模并轉(zhuǎn)換為DF
      foreast = foecs.eshape(\_seps\_ut, n_eatures))
      foreast = sclerinvers_tranorm(focast)
      futur\_daes = pd.daternge(df\_argetinex\[-1\], priods=step_out, freq='D')


      # 繪圖
      htrical = df_taet.iloc\[-100:, :1\] # 獲得歷史數(shù)據(jù)的X步回溯
      # 繪制預(yù)測(cè)圖
          plt.plot(fectoc\[:,i\])

      數(shù)據(jù)獲取

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多