AI時代的網站與手機App建置與開發Part11 - 使用ML.NET預測股票的收盤價格

 ·       使用ML.NET實作股票價格預測

在本篇文章中, 我們將要使用ML.NET支援的迴歸模型實作股票價格預測. 迴歸演算法能夠依據歷史資料估算一個值, 例如依據房地產的條件估計房地產的價值, 依據中古車的條件.估計中古車的價值, 或是估算造成某種結果的最關鍵因素等等.

文章範例下載:https://github.com/CraigIII/StockPricePredict.git

·        準備訓練資料

不管是進行機器學習或深度學習, 都要預先準備訓練資料. 請連線到[NSE-TATAGLOBAL STOCK PRICE PREDICTION]下載股票的歷史收盤資料. 表一所示為股票的歷史收盤資料的欄位說明, 我們將要使用表一的資料進行機器學習訓練:

Date

Open

High

Low

Last

Close

Total Trade Quantity

Turnover (Lacs)

2018/9/28

234.05

235.95

230.2

233.5

233.75

3069914

7162.35

2018/9/27

234.55

236.8

231.1

233.8

233.25

5082859

11859.95

2018/9/26

240

240

232.5

235

234.25

2240909

5248.6

2018/9/25

233.3

236.75

232

236.25

236.1

2349368

5503.9

1的欄位詳細說明如下:

欄位

說明

Date

日期

Open

開盤價

High

最高價

Low

最低價

Last

最後一筆交易的價格

Close

收盤價

Total Trade Quantity

買進和賣出的總交易量

Turnover (Lacs)

同期平均流通股數

:

最後一筆交易的價格(Last欄位的值)和收盤價(Close欄位的值)不相同是因為Last欄位是最後一筆交易的價格, Last欄位則是最後30分鐘的交易的平均加權價格.

·       使用ML.NET實作股票價格預測

請啟動Visual Studio建立型態為[ASP.NET Core MVC應用程式(Model-View-Controller)]型態的專案, 然後使用滑鼠右鍵點選[方案總管]視窗中的專案名稱, 執行[加入 | 機器學習模型]功能, 做好之後請選擇[值預測], 您就會看到選擇機器學習執行環境的畫面, 如圖1所示;

1: 選擇機器學習執行環境的畫面

請選擇[本機CPU]做為機器學習環境. 點選[下一步], 您會看到輸入訓練資料的畫面, 如圖2所示:

2: 輸入訓練資料的畫面

點選圖2畫面中的[瀏覽], 瀏覽到預先準備好的訓練資料, [要預測的資料行]選擇: Close, 點選[下一步], 您就會看到執行訓練的畫面, 如圖3所示:

3: 執行訓練的畫面

點選[開始訓練], 靜待訓練完成.

訓練完成後, 您就會看到如圖4的畫面, 如果對訓練結果不滿意, 可以增加訓練時間, 或是設定[進階定型選項], 再按下[再次訓練]謀求改善.

4: 訓練完成的畫面

如果滿意訓練結果, 可以按下[下一步], 您就會看到評估訓練妥的機器學習模型的畫面, 如圖5所示:

5: 評估訓練妥的機器學習模型的畫面

您可以於畫面中輸入股票的交易資料, 然後按下[預測], 就可以在圖5畫面的右方看到預測的收盤價結果. 請注意迴歸演算法的RSquared值越高, 代表預測值和實際的值的差異越小.

評估完畢後按下圖5畫面中的[下一步], 您就會看到建立提供機器學習模型服務的Server程式和主控台應用程式程式, 如圖6所示:

6: 建立提供機器學習模型服務的Server程式和主控台應用程式程式

請注意如果您想建立提供機器學習服務給眾多的應用程式使用, 可以選擇點選圖6畫面中的[Web API]項目右方的[新增至解決方案]連結, Visual Studio建立的Web API專案將會提供/predict端點供需要機器學習服務的應用程式呼叫使用. 如果所建立的機器學習模型只要支援自己建立的程式使用, 請點選圖6畫面中的[主控台應用程式]項目右方的[新增至解決方案]連結, Visual Studio建立叫用訓練妥機器學習模型的主控台應用程式專案.

請點選圖6畫面中的[Web API]項目右方的[新增至解決方案]連結, 執行建立[Web API]專案的動作, Visual Studio就會將訓練妥的機器學習模型部署到新建立的[Web API]專案當做Server程式.

做好之後請再點選圖6畫面中的[主控台應用程式]項目右方的[新增至解決方案]連結, Visual Studio建立叫用機器學習模型的主控台應用程式專案.

建立妥部署有機器學習模型的Server專案與主控台應用程式專案之後, 請使用Visual Studio設定啟動專案, 將啟動專案設定成叫用機器學習模型的主控台應用程式專案.

設定完成之後請執行專案, 您就會看到主控台應用程式專案將股票交的相關資料傳送給機器學習模型評估的結果, 如圖7所示:

7: 主控台應用程式專案將股票交的相關資料傳送給機器學習模型評估的結果

按下圖6畫面中的[下一步], 可以看到[部署您的模型][改進模型]兩個選項, 點選這些選項可以獲取有關將訓練妥的機器學習模型部署到Microsoft Azure雲端平台和改進訓練妥的機器學習模型的相關文件

·       後續處理

下一回我們將為大家示範如何將叫用部署有機器學習模型的Server專案程式碼移植到ASP.NET Core MVC網站專案或是MAUI跨平台手機App專案.

 

留言

這個網誌中的熱門文章

AI時代的網站與手機App建置與開發Part27 - ML.NET與物件偵測

AI時代的網站與手機App建置與開發Part28 - 使用YOLO模型進行物件偵測

AI時代的網站與手機App建置與開發Part24 - ML.NET與圖片異常偵測