[OpenR8 解決方案] Data_Analysis

一、Data_Analysis

 

使用不同的方法來進行數據的模型學習與後續的推論。使用方法有全連接層、隨機森林,提供的範例有股價預測、sin 波形的預測。

 

 

二、資料夾介紹

 

此解決方案資料夾內容如下圖1,Flow 內容說明如下表。

原始碼放置位置如下圖2

數據資料與訓練完成的模型檔案位置如下圖3

 

圖1.資料夾示意圖.png

圖1.資料夾示意圖。

 

方法

應用

Flow 檔與說明

Dense

Sin

函式波形預測

sin_read.flow

讀取 sin 波形資料

sin_dense_keras_1_training.flow

將讀取的 sin 進行訓練,產生模型

sin_dense_keras_2_inference.flow

使用已訓練好的模型進行推論數據

Stock

股價分析預測

stock_dense_keras_1_training.flow

讀取股價數據資料

stock_dense_keras_2_inference.flow

將讀取的股價進行訓練,產生模型

Regression forest

Sin

函式波形預測

sin_regression_forest_1_training.flow

將讀取的 sin 進行訓練,產生模型

sin_regression_forest_2_inference.flow

使用已訓練好的模型進行推論數據

Stock

股價分析預測

stock_regression_forest_1_preparation.flow

讀取股價數據資料

stock_regression_forest_2_training.flow

將讀取的股價進行訓練,產生模型

stock_regression_forest_3_inference.flow

使用已訓練好的模型進行推論數據

 
圖2.Src - 資料夾內容.png
圖2.Src - 資料夾內容。
 
圖3.Data - 數據資料所在位置.png
圖3.Data - 數據資料所在位置。

 

 

三、基於 Dense 方法應用於 sin 或 stock 的模型訓練與預測

 

※ 此解決方案需使用 python,請自行事先安裝好 python 套件。

 

  1. 準備數據資料 :

請至 OpenR8 > solution > Data_Analysis > data 資料夾內找到 sin.csv 與 stock.csv。

  1. sin.csv : 開啟 sin.csv 內容如下圖5 (左),有兩個欄位 (degree、sin),此數據為想要讓模型學習當輸入的角度多少,輸出的 Sin 角度值為多少,藉此從中找出 sin 波形關係圖,進一步可以做後續推論不同角度的值。
  2. stock.csv : 開啟內容如下圖5 (右),有六個 欄位,前五個為輸入每日股票的相關資訊,最後一個為輸出五天後的收盤價。

sin 的波形是一個輸入、一個輸出,stock 的範例是五個輸入、一個輸出,可以依照需求自行將想要做推論的數據填入 csv,再按照流程進行後續步驟,即可完成訓練模型與推論。

 

圖4.sin.csv 與 stock.csv 檔案位置圖.png

 

圖4.sin.csv 與 stock.csv 檔案位置圖。

 

圖5.sin.csv 左 stock.csv 右 內容示意圖.png

圖5.sin.csv 左 stock.csv 右 內容示意圖。

 

  1. 執行 flow 檔案 :

【訓練模型】 

  1. 使用方法 : 執行 R8.exe > 開啟與載入流程檔案 > 執行進行訓練。先介紹 sin 的範例,每一個步驟如下圖6圖7圖8圖9

Stock 請選擇 stock_dense_keras_1_training.flow,後續依照 sin 的方式以此類推。

 

圖6.執行 R8.png

圖6.執行 R8.exe。

 

圖7.開啟與載入流程檔案 sin .png

圖7.開啟與載入流程檔案 (sin) 。

 

圖8.訓練模型 sin .png

圖8.訓練模型 (sin)。

 

圖9.訓練完成 輸出模型檔案 .h5 .png

圖9.訓練完成,輸出模型檔案 (.h5)

 

  1. 參數說明 : 主要參數有兩個,一個設定要學習的內容、另一個為訓練好的模型檔名。如下圖10圖11

 

圖10.設定想要讓模型學習的數據.png

圖10.設定想要讓模型學習的數據。

 

圖11.輸出模型的檔名.png

圖11.輸出模型的檔名。

 

【模型推論】測試已訓練完成的模型檔案。Sin 範例推論步驟如下圖12圖13圖16圖15圖16。Stock 的方式則選擇 stock_dense_keras_2_inference.flow 後續依照 sin 的步驟以此類推。

 

圖12.開啟推論流程檔案.png

圖12.開啟推論流程檔案。

 

圖13.選擇推論要用的模型.png

圖13.選擇推論要用的模型。

 

圖14.選擇要進行推論的內容.png

圖14.選擇要進行推論的內容。

 

圖15.設定輸出推論的結果檔名.png

圖15.設定輸出推論的結果檔名。

 

圖16.推論結果.png

圖16.推論結果。

 

 

四、基於 Regression forest 方法應用於 sin 或 stock 的模型訓練與預測

 

  1. 執行 R8.exe > 載入 stock_regression_forest_1_preparation.flow 流程檔案 > 點擊執行。執行完成會產生資料擴增的 stock-25to5-1-validation.csv,其位置放置於 OpenR8/solution/Data_Analysis/data 資料夾。
  2. 載入 stock_regression_forest_2_training.flow 流程檔案 > 點擊執行。
  3. 載入 stock_regression_forest_3_inference.flow 流程檔案 > 點擊執行。
  4. 產生推論結果放置於:OpenR8/solution/Data_Analysis/data 資料夾內的 stock-25to5-1.csv。Csv 表格內容的最後一個欄位 close after 5 days 是預測結果。

如果有需要替換成使用者自己的數據資料或修改參數,請參考下文參數設定說明。

參數設定說明 :

【stock_regression_forest_1_preparation.flow】的參數內容如下圖17圖18圖19圖20圖21

 

圖17.設定前處理的讀入數據檔案.png

圖17.設定前處理的讀入數據檔案。

 

圖18.設定前處理輸入擴增的倍數.png

圖18.設定前處理輸入擴增的倍數。

 

圖19.設定前處理的輸出.png

圖19.設定前處理的輸出。

 

圖20.設定測試樣本佔資料集的比例.png

圖20.設定測試樣本佔資料集的比例。

 

圖21.stock-25to5-1-validation 內容示意圖.png

圖21.stock-25to5-1-validation 內容示意圖。

 

【stock_regression_forest_2_training.flow】的參數設定內容如下圖22圖23。

 

圖22.stock_regression_forest_2_training 參數設定 1 .png

圖22.stock_regression_forest_2_training 參數設定 1 。

 

圖23.stock_regression_forest_2_training 參數設定 2 .png

圖23.stock_regression_forest_2_training 參數設定 2 。

 

【stock_regression_forest_3_inference.flow】的參數內容如下圖24圖25

 

圖24.stock_regression_forest_3_inference 參數設定 1 .png

圖24.stock_regression_forest_3_inference 參數設定 1 。

 

圖25.stock_regression_forest_3_inference 參數設定 2 .png

圖25.stock_regression_forest_3_inference 參數設定 2 。