初試微軟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匯率預測模型——實現步驟

  1. 收集整理樣本
  2. 設計試驗邏輯鏈
  3. 設計預測試驗邏輯鏈
  4. 運行&誤差評估
  5. 部署Web服務,獲取API
  6. 生成Excel插件、網站等

初次試驗,非計算機或統計專業,若有錯誤歡迎指正!

創建一個實驗

打開 studio.azureml.net 使用自己的微軟賬號登錄。

ysoup.org/wp-content/up

這就是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。

基本思路:

  1. 拉取csv文件數據
  2. 選擇你需要用到的數據列
  3. 刪除空值數據
  4. 分配machine learning的數據比例
  5. 選擇linear regression演算法
  6. 選擇你要預測的數據列,這裡為CAD_CNY匯率
  7. 機器學習階段
  8. 將預測所得的CAD匯率與實際匯率比對
  9. 評估預測結果的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雲服務的界面。或者通過該網址進入:azure.microsoft.com/zh-

如果你不想用Azure,當然也可以用其他的支持aspx語言的空間,在Github找到該開源模板。

在剛才ML Studio的網路服務界面,點擊REQUEST/RESPONSE,可以看到連接API的說明文檔,包括POST URL、APIKEY等。

以下是我生成的Web App(cadpredictor.azurewebsites.net),用戶可以調整各參數後提交,預測在此情況下的匯率。


推薦閱讀:

Tensorflow VS PMML
1-5 Unsupervised Learning
再薅谷歌羊毛:用谷歌GPU免費訓練你的機器學習模型
平移不變的正則線性回歸
看得見的資訊理論-為什麼用交叉熵作為邏輯回歸的代價函數

TAG:機器學習 | 大數據 |