AI時代的網站與手機App建置與開發Part11 - 使用ML.NET預測股票的收盤價格
· 使用ML.NET實作股票價格預測
在本篇文章中, 我們將要使用ML.NET支援的迴歸模型實作股票價格預測. 迴歸演算法能夠依據歷史資料估算一個值, 例如依據房地產的條件估計房地產的價值, 依據中古車的條件.估計中古車的價值, 或是估算造成某種結果的最關鍵因素等等.
![]() |
·
準備訓練資料
不管是進行機器學習或深度學習, 都要預先準備訓練資料. 請連線到[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專案.








留言
張貼留言