マイクロソフトクラウドソリューションアーキテクトのメモ

クラウドソリューションアーキテクトをしていく中でAzure技術の内容を記載します。

Microsoft Azure Microsoft R Server(1)[インポート編]

Microsoft R Server

背景

前回の記事で、Azure HDInsight上でMicrosoft R Serverを立ち上げるところまで、実施しました。この回からは本格的にMicrosoft R Serverをつかってみようかと思います。

起動

RStudioの実行までは、前回の記事実施しましたので、RStudioサーバでRScriptを実行してみようかと思います。

早速起動 f:id:shtsukam:20170628171328p:plain

起動しましたね。

それでは、Consoleで実行してみましょう。 RStudiormarkdownを使って、Notebookとして記載することができます。 しかし、この回はもっとも簡単はConsoleでRを実行してみます。

スクリプトの実行

説明

Rはデータ分析を得意とする言語です。データ分析ですので、データが無いと始りませんね。 なので、まずはデータを取得してみます。 実はこういった検証をするのに一番こまるのが、サンプルデータです。 ただ、Microsoftのサイトには以下のようなサンプルデータの取得方法もアナウンスされています。

今回は米国国勢調査局提供の、成人収入に関する二項分類データセットを使ってみます。 カリフォルニア州アーバイン: カリフォルニア大学のMachine Learning Repositoryから取得します。 www.trifields.jp さんに説明がありましたので載せておきます。

実際のデータのリンクは https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data になります。

実行

R Scriptの情報は以下のサイトにリンクがあります。 Microsoft R Server | マイクロソフト クラウド プラットフォーム

Microsoft R Server チュートリアルのリンクがきれていて、 正しくは以下のサイトになります。 Quick Start for Microsoft R Client

それでは実行してみましょう。

f:id:shtsukam:20170628175741p:plain

  • 変数の宣言 f:id:shtsukam:20170628175844p:plain

  • Global Enviroment [f:id:shtsukam:20170628180009p:plain

良さげですね。

さて、ここからが本番です。 フリーのRの関数も使うのも良いですが、 折角なので、商用のMicrosoft Rを使っていきましょう。 まずはデータ分析ですので、 ScaleR Functionsを使います。 ここに良い図がかいてありますね。

データ分析のワークフロー

https://i-msdn.sec.s-msft.com/en-us/microsoft-r/media/scaler/data-science-labels.png

この順序で実施していきます。

インポート

Import Data to .xdf or data frame を使ってインポートしてきます。 rxImportの対応するファイルの型が豊富です。 流石商用ツールですね。

これだけいければまずデータ分析にには困ることはなさそうです。

理屈はこれくらいにして、早速インポートしてみましょう。

f:id:shtsukam:20170628183715p:plain

f:id:shtsukam:20170628183741p:plain

f:id:shtsukam:20170628183803p:plain うまくインポートできました。 f:id:shtsukam:20170628185845p:plain

コードを1行ずつ解説します。 f:id:shtsukam:20170628190005p:plain

adultData <- rxImport(inData = adultDataURL , outFile = “/home/ubuntu/R/adultData.xdf”)

rxImport関数のパラメータinDataには対象データソースのURL,outFileには出力先ファイルパスを設定します。

Rows Read: 32561, Total Rows Processed: 32561, Total Chunk Time: 0.265 seconds

32561行、0.265秒で取得が完了していますね。

f:id:shtsukam:20170628190133p:plain

adultData

変数の情報をみるには、変数を入力することで確認できます。

f:id:shtsukam:20170628190256p:plain

rxGetInfo(data=adultData, verbose=1)

rxGetInfoの関数にverbose=1のパラメータをつかうことで、より詳細な情報を取得することができます。 例えば、カラムの情報

Column Information:
Col 1: ‘V1’, Int (Min/Max=17,90)
Col 2: ‘V2’, String
Col 3: ‘V3’, Int (Min/Max=12285,1484705)
Col 4: ‘V4’, String
Col 5: ‘V5’, Int (Min/Max=1,16)
Col 6: ‘V6’, String
Col 7: ‘V7’, String
Col 8: ‘V8’, String
Col 9: ‘V9’, String
Col 10: ‘V10’, String
Col 11: ‘V11’, Int (Min/Max=0,99999)
Col 12: ‘V12’, Int (Min/Max=0,4356)
Col 13: ‘V13’, Int (Min/Max=1,99)
Col 14: ‘V14’, String
Col 15: ‘V15’, String

ファイルフォーマット情報

File name: /home/ubuntu/R/adultData.xdf
Number of observations: 32561
Number of variables: 15
Number of blocks: 1
Compression type: zlib

圧縮方法がzlibで圧縮されているファイルであることもわかりますね。

これで先ほど示した図の右側の処理ができたことになります。

簡単ですね。

次回はに示された、Clean,Manipulate,Transformを実施してみます。