<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給三川
      發送

      0

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      本文作者: 三川 2017-05-08 19:03
      導語:機器學習方法是可以用來解決時間序列預測問題的。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      雷鋒網按:本文作者 Jason Brownlee 為澳大利亞知名機器學習專家,對時間序列預測尤有心得。原文發布于其博客。雷鋒網編譯。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

       Jason Brownlee

      機器學習方法,比如深度學習,是可以用來解決時間序列預測問題的。

      但在使用機器學習之前,時間序列問題需要被轉化為監督學習問題。從僅僅是一個序列,變成成對的輸入、輸出序列。

      這篇教程里,你將學到如何把單變量、多變量時間序列問題轉為機器學習算法能解決的監督學習問題。本教程包含:

      1. 如何創建把時間序列數據集轉為監督學習數據集的函數;

      2. 如何讓單變量時間序列數據適配機器學習

      3. 如何讓多變量時間序列數據適配機器學習

      現在我們開始。

      時間序列 vs. 監督學習

      正式開始前,我們需要更好地理解時間序列和監督學習的數據形式。時間序列是一組按照時間指數排序的數字序列,可被看成是一列有序的值。比如:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      監督學習問題由輸入(X)和輸出(y)速成,其算法能學習如何根據輸入模式預測輸出模式。

      比如:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      Pandas shift() 函數

      對于把時間序列數據轉化為監督學習問題,這是一個關鍵的函數。

      給定一個 DataFrame, shift() 函數可被用來創建數據列的副本,然后 push forward (NaN 值組成的行添加到前面)或者 pull back(NaN 值組成的行添加到末尾)。為了給時間序列數據集創建滯后觀察(lag observation)列以及預測觀察(forecast observation)列,并按照監督學習的格式來,這是必須的操作。

      我們來看看一些 shift 函數的實操例子。

      我們可以定義一個由 10 個數字序列組成的偽時間序列數據集,該例子中,DataFrame 中的單個一列如下所示:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程運行該例子,輸出時間序列數據,每個觀察要有對應的行指數。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      我們通過在頂端插入新的一行,用一個時間步(time step)把所有的觀察降檔(shift down)。由于新的一行不含數據,可以用 NaN 來表示“無數據”。

      Shift 函數能完成該任務。我們可以把處理過的列插入到原始序列旁邊。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行該例子,使數據集有了兩列。第一列是原始觀察,第二列是 shift 過新產生的列。

      可看到,把序列向前 shift 一個時間步,產生了一個原始的監督學習問題,雖然  X 、y 的順序不對。無視行標簽的列。由于 NaN 值,第一行需要被拋棄。第二行第二列(輸入 X)現實輸入值是 0.0,第一列的值是 1 (輸出 y)。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      我們能看到,如果在 shift 2、3 ……重復該過程,要如何創建能用來預測輸出值 y 的長輸出序列(X)。

      Shift 操作器可以接受一個負整數值。這起到了通過在末尾插入新的行,來拉起觀察的作用。下面是例子:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行該例子顯示出,新的一列的最后一個值是一個 NaN 值。可以看到,預測列可被作為輸入 X,第二行作為輸出值  (y)。輸入值 0 就可以用來預測輸出值 1。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      技術上,在時間序列預測術語里,當前時間是(t),未來是(t+1, t+n) 它們都是預測時間。過去的觀察 (t-1, t-n) 被用來做預測。對于一個監督學習問題,在一個有輸入、輸出模式的時間序列里,我們可以看到如何用正負 shift 來生成新的 DataFrame 。

      這不僅可用來解決經典的 X -> y 預測問題, 還可用到輸入、輸出都是序列的 X -> Y 上。

      另外,shift 函數也在所謂的多元時間序列問題上有效。這種情況下,并不是時間序列不只有一組觀察,而是多組(舉個例子,氣溫和氣壓)。所有時間序列中的變量可被向前或向后 shift,來創建多元輸入輸出序列。更多詳情下文會提到。

      The series_to_supervised() 函數

      給定理想的輸入、輸出序列長度,我們可以用 Pandas 里的 shift() 函數自動生成時間序列問題的框架。

      這是一個很有用的工具。它幫助我們用機器學習算法探索同一個時間序列問題的不同框架,來找出哪一個將會產生具有更好效果的模型。這部分中,我們為 series_to_supervised() ,一個新的 Python 函數定義。它能把單變量、多變量時間序列轉化為監督學習數據集。

      該函數有四個參數:

      • Data:作為一個列表或 2D NumPy 陣列的觀察序列。必需。

      • n_in: 作為輸入 X 的 lag observation 的數量。值可能在 [1..len(data)] 之間。可選。默認為 1 。

      • n_out: 作為輸出 y 的觀察的數量。值可能在 [0..len(data)-1] 之間。可選。默認為 1 。

      • dropnan: 不管隨著 NaN 值是否丟掉一些行,它都是布爾值(Boolean)。可選。默認為 True。

      函數返回一個單個的值:

      • return: 序列的 Pandas DataFrame 轉為監督學習。

      新數據集創建為一個 DataFrame,每一列通過變量字數和時間步命名。這使得開發者能設計各種各樣時間步序列類型的預測問題。

      當 DataFrame 被返回,你可以決定怎么把它的行,分為監督學習的 X 和 y 部分。這里可完全按照你的想法。該函數用默認參數定義,因此,如果你僅僅用你的數據調用它。它會創建一個 X 為 t-1,y 是 t 的 DataFrame。

      該函數兼容 Python 2 和 Python 3。完整函數在下面,包括注解。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      有了整個的函數,現在可以開始探索怎么用它。

      一步的單變量預測

      在時間序列預測中,使用滯后觀察(比如 t-1)作為輸入變量來預測當前時間不,是通用做法。這被稱為一步預測(one-step forecasting)。下面的例子,展示了如何一個滯后時間步( t-1)預測當前時間步(t).

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行例子,輸出改造過的時間序列的輸出。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      可看到,觀察被命名為“var1”,輸入觀察被命名為  (t-1),輸出時間步被命名為 (t)。還可以看到,NaN 值得行,已經自動從 DataFrame 中移除。我們可以用隨機數字長度的輸入序列重復該例子,比如 3。這可以通過把輸入序列的長度確定為參數來實現。比如:


      data = series_to_supervised(values, 3)


      完整例子如下:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      再一次,運行例子輸出改造的序列。可以看到輸入序列是正確的從左到右的順序。輸出變量在最右邊進行預測。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      多步驟預測還是序列預測

      有另一類預測問題,是用過去的觀察,來預測出將來貫徹的一個序列。這可以被稱作序列預測或者多步驟預測。通過確定另一個參數,我們能把一個時間序列轉化為序列預測。比如,我們可以把一個輸入序列為兩個過去觀察,要預測兩個未來觀察的序列問題,進行如下轉化:


      data = series_to_supervised(values, 2, 2)


      完整例子如下:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行該例子,顯示出分別把 (t-n)、(t+n) 作為輸入、輸出變量,以及把當前觀察 (t)作為輸出之間的區別。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      多元預測

      另一種重要的時間序列類型被稱為多元時間序列。這時有對多個不同度量(measure)的觀察,以及我們對預測其中的一個或更多的興趣。比如說,也許有兩組時間序列觀察 obs1 和 obs2 ,我們想要預測其中之一,或者兩個都預測。我們可用同樣的方法調用 series_to_supervised()。舉個例子:

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行這個例子會輸出數據的新框架,顯示出兩個變量在一個時間步下的輸入模式,以及兩個變量一個時間不的輸出模式。

      取決去問題的具體內容。可以隨機把列分為 X 和 Y 部分,比如說,如果當前觀察 var1 也被作為輸入提供,那么只有 var2 會被預測。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      通過上面這樣確定具體的輸入輸出序列長度,可輕松完成多元時間序列的預測。下面是一個把一個時間步作為輸入,兩個時間步作為預測序列的轉化例子。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      運行該例子會顯示改造過的大 DataFrame。

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      建議:拿你自己的數據集做實驗,試試多個不同的框架來看哪個效果更好。

      由淺入深,清華大學鄧志東教授的神經網絡培訓!

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      該課程將系統介紹人工智能中的神經網絡,特別是深度學習的發展現狀、基本原理和主要方法。包括:人工智能綜述,生物神經系統,人工神經元模型,BP網絡,Hopfield網絡,深度卷積神經網絡(CNN),長短期記憶網絡(LSTM)和深度強化學習等。重點分析若干典型CNN模型,并結合具體應用案例,進行編程實操剖析。

      課程將補充介紹最新的科研成果與前沿領域(提供50篇以上最原始與最新的人工神經網絡代表性英文論文,包括深度學習2016年的最新論文),強調各種理論方法在解決實際問題中的綜合應用。雷鋒網傾情推薦!

      視頻地址:http://www.mooc.ai/course/65 

      相關文章:

      手把手教你用 Python 實現針對時間序列預測的特征選擇

      時間序列預測教程:如何利用 Python 預測波士頓每月持械搶劫案數量?

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      如何把時間序列問題轉化為監督學習問題?通俗易懂的 Python 教程

      分享:
      相關文章

      用愛救世界
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 国产精品午夜福利在线观看| 69色堂| 91热视频| 精品国偷自产在线视频99| 青草伊人网| 芜湖市| 亚洲欧美人成人让影院| 成人国产一区二区三区| 久久国内精品自在自线91| 亚洲综合高清一区二区三区| 亚洲小说少妇区图片| 精品视频国产香蕉尹人视频| 大战丰满无码人妻50p| 亚洲国产精品国自产拍A| 九九国产在线| 乱码精品一区二区三区| 久久丫精品国产| 香蕉影院在线观看| 国产精品久久久久久爽爽爽床戏| 18禁免费观看网站| 手机在线国产精品| 亚洲国产色婷婷久久99精品91| 四虎影视一区二区精品| 久久久久久久av| 操日本屄| 无码123| 8X成年视频在线观看| 免费99精品国产自在现线| 欧美a在线| 欧美日一本| 美女内射毛片在线看免费人动物| 欧美日韩精品一区二区三区在线 | 三上悠亚ssⅰn939无码播放| 中文字幕不卡av| 蜜桃av无码免费看永久| 亚洲国产制服丝袜先锋| 国产精品久久久天天影视| 久久久久人妻精品区一| 亚洲鲁丝片一区二区三区| japanese人妻中文字幕| 91在线资源|