iT邦幫忙

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

Microsoft R Solution系列 第 11

Day11 - Microsoft R Client

  • 分享至 

  • xImage
  •  

Microsoft R Client可以說是Microsoft R Open的加強版, 也可說是商業版, 不過一樣是免費, 但主要有兩個功能是Microsoft R Open沒有的, 第一個功能是可以跟Server互動, 舉凡MSSQL R Service 或是 Microsoft Machine Learning Server(Microsoft R Server), 甚至Apache Spark與Hadoop都能與之互動, 可參考下列文章
https://blogs.technet.microsoft.com/machinelearning/2016/06/28/announcing-microsoft-r-on-apache-spark-and-r-client-at-the-hadoop-summit/

另外一個功能是內建RevoScaleR package, 這個就是Microsoft併購Revolution Analytics後取得的技術, RevoScaleR package提供一系列的rx帶頭的函數可供使用如下圖
https://ithelp.ithome.com.tw/upload/images/20171229/20103333K926FDU53K.png
https://docs.microsoft.com/en-us/machine-learning-server/r-reference/revoscaler/revoscaler

接著就來安裝Microsoft R Client, 而早在之前安裝Data science and analytical applications時, 就已經把Microsoft R Client裝上了
https://ithelp.ithome.com.tw/upload/images/20171229/201033336RnOwzQ2Pg.png
https://ithelp.ithome.com.tw/upload/images/20171229/20103333uKrAW5Kpdt.png

由上圖可以發現當時裝的是3.3.2版, 不過在寫這篇文章時, 已有3.4.1版, 就來更新吧, 可以到下列位置下載安裝檔案
http://aka.ms/rclient/
下載完畢, 直接點擊安裝檔, 按下Continue
https://ithelp.ithome.com.tw/upload/images/20171229/20103333RoMqKJot2O.png

接著勾選全部, Pre-trained Models, 可以預先安裝Microsoft針對文字情感分析與影像識別的模式, 細節可參考底下網址
https://docs.microsoft.com/en-us/machine-learning-server/install/microsoftml-install-pretrained-models
https://ithelp.ithome.com.tw/upload/images/20171229/20103333AhkA9IZupL.png

安裝完畢之後, 回到安裝目錄, 可以發現已經更新為3.4.1版
https://ithelp.ithome.com.tw/upload/images/20171229/20103333Ly7k5JaFVK.png

接下來就來試一下Microsoft R Client的過人之處, 應該說是RevoScaleR有甚麼神奇功能?
我們利用底下網址的範例資料來測試
https://ithelp.ithome.com.tw/upload/images/20171229/20103333bmCRIugkAJ.png
https://github.com/MicrosoftLearning/Analyzing-Big-Data-with-Microsoft-R/

解開之後, 有6個csv檔如下
https://ithelp.ithome.com.tw/upload/images/20171229/20103333tuqPRInr92.png

接下來要做的事情也很簡單, 就是把6個cvs檔, 合併為一個檔案, 然後開啟RTVS, 可以看一下右下角R的執行環境是否為Microsoft R Client?
https://ithelp.ithome.com.tw/upload/images/20171229/20103333V6EiVvbiPP.png

敲入程式碼如下, 費時6.1分左右
https://ithelp.ithome.com.tw/upload/images/20171229/20103333NXJ0SIAERa.png

改用RevoScaleR package內rxImport()來做合併, rxImport()輸出格式為xdf, 為RevoScaleR的資料存放格式, 可以跟data frame互通, rxImport()使用說明如下
https://ithelp.ithome.com.tw/upload/images/20171229/20103333gk6k1jXHWd.png
https://docs.microsoft.com/en-us/machine-learning-server/r-reference/revoscaler/rximport

用rxImport()合併檔案的程式碼如下
https://ithelp.ithome.com.tw/upload/images/20171229/20103333rNZZVuOPmk.png

蝦毀!/images/emoticon/emoticon17.gif 時間縮為1.1分, 此時還有一個關鍵字 Chunk需要注意一下, 這個Chunk指的是RevoScaleR在處理資料時, 會先將資料切成一小塊一小塊處理, 最後在合併, 有點跟MapReduce有異曲同工之妙, 請參閱下列說明
https://support.microsoft.com/en-us/help/3104267/qa-comparing-revoscaler-and-mapreduce

另外我們再來看看產出的檔案
https://ithelp.ithome.com.tw/upload/images/20171229/20103333IBDM640gpK.png

蝦毀again! 檔案也比合併後的csv小很多, RevoScaleR果然是速度快檔案小的好物啊! 這幾個優點就原生R的不足之處, R的特性是直接在記憶體中運算, 即只要載入資料量沒有超過電腦記憶體大小, 都能跑, 但是超過可能就會很慢, 甚至有錯誤出現, 但是透過 RevoScaleR所產生的xdf檔, 意味著有機會載入更多的檔案到記憶體中做運算, 但人生就是這樣, 有一好, 沒倆好, 如果採用xdf檔當作資料來源就必須來熟悉RevoScaleR其他函數RxDataStep(), rxCrossTabs()等來處理資料了, 因為原生 R 是看不懂xdf檔案格式./images/emoticon/emoticon10.gif

本文參考
https://www.youtube.com/watch?v=4NPvERcQiu0&feature=youtu.be


上一篇
Day10 - Multiple Linear Regression and Feature selection Part2
下一篇
Day12 - 安裝MSSQL R Service
系列文
Microsoft R Solution30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言