iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 30
0
Data Technology

Microsoft R Solution系列 第 30

Day30 – R Last Mile to Web Part5 Azure Machine Learning Studio Predict

終於來到了鐵人賽的最後一天了, 沒想到Azure Machine Learning Studio會寫到三篇, 還有一個預測功能沒有實作, 這一篇就來實作薪資預測功能, 之前R Script視窗有底下的紅框標示起來的註解
https://ithelp.ithome.com.tw/upload/images/20180117/20103333yMLcmVYtvX.png

意思可以上傳自己做的R模型或資料, 只是要先壓成zip, 所以我們先來上傳之前做好的svr.rda, 上傳完成如下
https://ithelp.ithome.com.tw/upload/images/20180117/20103333ZTdqcC0VfD.png

接著新增一個Experiment, 將csv, zip等模組拖曳到右方, 跟Execute R Script建立好連線如下, 特別注意的是svr.zip只能連結Execute R Script模組的右上方端點
https://ithelp.ithome.com.tw/upload/images/20180117/20103333LhVukitlcW.png

然後在R Script視窗撰寫程式碼如下, 按下打勾符號確定
https://ithelp.ithome.com.tw/upload/images/20180117/20103333oJAbSc9jqZ.png

按下RUN, 看執行是否正確?
https://ithelp.ithome.com.tw/upload/images/20180117/20103333XjL9U8ViN1.png

接著可以按下SETUP WEB SERVICE, 會自動生成Web Service Input與Output的端點, 然後再按下DEPLOY WEB SERVICE
https://ithelp.ithome.com.tw/upload/images/20180117/20103333bgc5Jhurqh.png

接著到測試主頁面, 按下Test按鈕
https://ithelp.ithome.com.tw/upload/images/20180117/20103333BMLLm11CFN.png

會跳出底下視窗輸入測試資料, 只需輸入LEVEL即可, 因為R Script只用到LEVEL, 然後按下打勾按鈕
https://ithelp.ithome.com.tw/upload/images/20180117/20103333hcgZYA7rS1.png

然後畫面下方會出現回傳結果
https://ithelp.ithome.com.tw/upload/images/20180117/20103333CrxBTXpt6b.png

但是沒想到在最後一篇, 一樣又遇到魔王關/images/emoticon/emoticon18.gif, 我們到測試頁面, 在LEVEL輸入6.5, 會出現底下錯誤
https://ithelp.ithome.com.tw/upload/images/20180117/201033335xARqRpcii.png

看拋出來的訊息是格式不對, 但是在R Script已經將LEVEL轉成double了如下
https://ithelp.ithome.com.tw/upload/images/20180117/201033334ecjvN2drz.png

一樣是Google了半天, 找不到任何解法, 後來靈光一閃, Machine Learning Studio跟Microsoft 另一套工具SSIS很雷同, 而SSIS在csv檔載入的時候, 會直接決定型別, 或許Machine Learning Studio也是一樣, 所以只好從資料著手, 將Level補上小數點即1變成1.0以此類推, 然後上傳檔案
https://ithelp.ithome.com.tw/upload/images/20180117/20103333j3ZLIcF1nd.png

然後在Experiment裡, 替換新的csv檔, 然後重新RUN與DEPLOY WEB SERVICE
https://ithelp.ithome.com.tw/upload/images/20180117/20103333XwClkbqHLn.png

再到測試頁面, 重新測試一次, 終於可以正確顯示了
https://ithelp.ithome.com.tw/upload/images/20180117/20103333IKGZuAC50z.png

這個坑, 真的要注意啊, 也搞了一天/images/emoticon/emoticon20.gif, 接著到Sample Code頁面看一下
https://ithelp.ithome.com.tw/upload/images/20180117/20103333MILf4bQHo8.png

上面紅框的部分就是要丟進去Web Service的Input, 接著回到Visual Studio的Web Form專案的AML.asp.cs, 撰寫btnPredict_Click的程式碼如下
https://ithelp.ithome.com.tw/upload/images/20180117/20103333e7wu3vc4KQ.png

然後在InvokeRequestResponseServicePredict()中, 撰寫底下程式碼
https://ithelp.ithome.com.tw/upload/images/20180117/20103333kc1Hd4oMRu.png
https://ithelp.ithome.com.tw/upload/images/20180117/20103333Gv4E6SBNPb.png

接著跑起來看看, 是否正確無誤?
https://ithelp.ithome.com.tw/upload/images/20180117/20103333RYREdwLfZW.png

總算是打完收工啊, Azure Machine Learning Studio跟R的整合, 雷還真不少, 接下來總算可以好好睡一覺了/images/emoticon/emoticon46.gif, 不過留下了一個殘壘就是Microsoft Machine Learning Server的介紹, 等有空再補上了/images/emoticon/emoticon10.gif


上一篇
Day29 – R Last Mile to Web Part4 Azure Machine Learning Studio Plot 下篇
系列文
Microsoft R Solution30

尚未有邦友留言

立即登入留言