終於來到了鐵人賽的最後一天了, 沒想到Azure Machine Learning Studio會寫到三篇, 還有一個預測功能沒有實作, 這一篇就來實作薪資預測功能, 之前R Script視窗有底下的紅框標示起來的註解
意思可以上傳自己做的R模型或資料, 只是要先壓成zip, 所以我們先來上傳之前做好的svr.rda, 上傳完成如下
接著新增一個Experiment, 將csv, zip等模組拖曳到右方, 跟Execute R Script建立好連線如下, 特別注意的是svr.zip只能連結Execute R Script模組的右上方端點
然後在R Script視窗撰寫程式碼如下, 按下打勾符號確定
按下RUN, 看執行是否正確?
接著可以按下SETUP WEB SERVICE, 會自動生成Web Service Input與Output的端點, 然後再按下DEPLOY WEB SERVICE
接著到測試主頁面, 按下Test按鈕
會跳出底下視窗輸入測試資料, 只需輸入LEVEL即可, 因為R Script只用到LEVEL, 然後按下打勾按鈕
然後畫面下方會出現回傳結果
但是沒想到在最後一篇, 一樣又遇到魔王關, 我們到測試頁面, 在LEVEL輸入6.5, 會出現底下錯誤
看拋出來的訊息是格式不對, 但是在R Script已經將LEVEL轉成double了如下
一樣是Google了半天, 找不到任何解法, 後來靈光一閃, Machine Learning Studio跟Microsoft 另一套工具SSIS很雷同, 而SSIS在csv檔載入的時候, 會直接決定型別, 或許Machine Learning Studio也是一樣, 所以只好從資料著手, 將Level補上小數點即1變成1.0以此類推, 然後上傳檔案
然後在Experiment裡, 替換新的csv檔, 然後重新RUN與DEPLOY WEB SERVICE
再到測試頁面, 重新測試一次, 終於可以正確顯示了
這個坑, 真的要注意啊, 也搞了一天, 接著到Sample Code頁面看一下
上面紅框的部分就是要丟進去Web Service的Input, 接著回到Visual Studio的Web Form專案的AML.asp.cs, 撰寫btnPredict_Click的程式碼如下
然後在InvokeRequestResponseServicePredict()中, 撰寫底下程式碼
接著跑起來看看, 是否正確無誤?
總算是打完收工啊, Azure Machine Learning Studio跟R的整合, 雷還真不少, 接下來總算可以好好睡一覺了, 不過留下了一個殘壘就是Microsoft Machine Learning Server的介紹, 等有空再補上了