初試微軟Azure Machine Learning:建立簡易CAD/CNY匯率預測模型
Machine Learning:
Machine learning is programming computers to optimize a performance criterion using example data or past experience. (Alpaydin, 2004)
CAD/CNY匯率預測模型——實現步驟
- 收集整理樣本
- 設計試驗邏輯鏈
- 設計預測試驗邏輯鏈
- 運行&誤差評估
- 部署Web服務,獲取API
- 生成Excel插件、網站等
初次試驗,非計算機或統計專業,若有錯誤歡迎指正!
創建一個實驗
打開 https://studio.azureml.net 使用自己的微軟賬號登錄。
https://ysoup.org/wp-content/uploads/2017/01/ml1.png
這就是Azure ML Studio的基本界面。
點擊左下角的New,選擇新建一個Blank Experiment。
出現可視化編程的界面,在左側你可以選擇各種分析演算法或操作流程,以拖拽方式拖到中間的舞台。右側可以調整你所選演算法的配置。
準備樣本數據
在本文中,我們通過以下的數據列,來預測CAD/CNY的匯率。
- Global Price Of WTI Crude
- Canada Gross Domestic Product
- U.S. Real Gross Domestic Product
- U.S. Real Interest Rate
- Canada CPI All Items
- Canada CPI All Items Excluding Food And Energy
- Canada Total Retail Trade
- Canada Harmonized Unemployment Rate (All Person)
- Canada Production Of Total Industry
- Canada Real Interest Rate
- China Constant Price GDP Growth
- China Current Price GDP
- China CPI All Items
- China Real Interest Rate
選取數據跨度為1980年至2017年,共7055個數據組。
在Excel中用vlookup或其他方法將數據整理好,存為csv逗號分隔文件。首行必須為該列的數據名稱。
樣本導入
讓我們回到ML Studio,選擇Dataset界面,點擊左下角的New導入剛才整理好的csv文件。
設計邏輯鏈
然後回到剛才我們創建的Experiment。
基本思路:
- 拉取csv文件數據
- 選擇你需要用到的數據列
- 刪除空值數據
- 分配machine learning的數據比例
- 選擇linear regression演算法
- 選擇你要預測的數據列,這裡為CAD_CNY匯率
- 機器學習階段
- 將預測所得的CAD匯率與實際匯率比對
- 評估預測結果的accuracy, precision等
按照下圖排列邏輯鏈:
參數調整:
點擊Select Columns in Dataset,在右側邊欄中,點擊Launch column selector,以by name方式選擇所有列。
Split data中,選擇80%的數據用於機器學習,並鍵入隨機數作為seed。
在train module中同樣運行Launch column selector,以with rules方式include CAD_CNY(需要預測的列)。
運行
準備就緒後,點擊下面的RUN,開始運行。
如果設置正確,在相應模塊右邊會有勾勾,如果有錯誤,則顯示紅色符號,點進去可以看到問題出在哪。
評估
點擊Score model下面的Visualize,比對CAD預測與真實值。把表格拉到最右邊,Scored Labels則為預測出的結果。
點擊Evaluation model下面的Visualize,查看預測評估。
建立Web服務
在Predictive experiment中,將web input & output 置於score model前後。
由於需要輸入除了CAD_CNY之外的數據,則應在input之後建立一個select column的過濾,規則為exclude CAD_CNY。同樣在output之前也設立一個過濾,選擇出需要顯示的數據:include CAD_CNY。
完成後,點擊下方Deploy web service。找到自己生成的web服務:
點Test,測試輸入數據。
假設輸入的數據都為0,如果程序正常,則會輸出:
CAD-CNY Prediction [Predictive Exp.] test returned ["0","0","0","0","0","0","0","0","0","0","0","0","0","0","-7.35927366100814"]...
生成Excel
點擊APP中的Excel生成,可以在Excel文件中調取雲端的學習模塊,輸入輸出數據。載入項僅能在Windows的Office上運行。
Web App API
如果你要做一個網站,並調取ML模塊,應該怎麼做呢?Azure的New Web Services Experience給了我們這樣的選擇。點擊New Web Services Experience,選擇Consume,Create Web App,會自動跳轉到新建Azure雲服務的界面。或者通過該網址進入:https://azure.microsoft.com/zh-cn/marketplace/partners/microsoft/azuremlaspnettemplateforrrs/
如果你不想用Azure,當然也可以用其他的支持aspx語言的空間,在Github找到該開源模板。
在剛才ML Studio的網路服務界面,點擊REQUEST/RESPONSE,可以看到連接API的說明文檔,包括POST URL、APIKEY等。
以下是我生成的Web App(http://cadpredictor.azurewebsites.net/),用戶可以調整各參數後提交,預測在此情況下的匯率。
推薦閱讀:
※Tensorflow VS PMML
※1-5 Unsupervised Learning
※再薅谷歌羊毛:用谷歌GPU免費訓練你的機器學習模型
※平移不變的正則線性回歸
※看得見的資訊理論-為什麼用交叉熵作為邏輯回歸的代價函數