7. 項目 GNU R SAS Python
費用 Free Paid Free
難易度 Easy Difficult Easy
データ解析 High High High
分析モデリング High High Medium
グラフ表示 High Low Medium
テキスト処理 Medium Low High
ビッグ データ分析 Low Medium Medium
汎用処理 High High Medium
ジョブ シナリオ Medium High Low
サポート NO YES NO
高機能ツール Low High Medium
SAS vs R vs Python: 13 Wonderful Comparisons : https://www.educba.com/sas-vs-r-vs-python/
R は導入が比較的容易で高い解析能力とグラフ表示能力を持つが、ビッグ データ分析や
サポート対応などエンタープライズ向けに弱み
1-1. R 概要
8. • メモリに収まる範囲での処理
• 大規模データ使用時に発生する Out of Memory
• データをサンプリングした上で分析する必要がある為、精度が下が
る可能性がある
• シングル プロセスでしか動作しない
• 処理は直列実行されるため長時間かかる
• 並列実行を独自に組み込むには複雑
• 商用サポートなし
• 個人 PC 利用で低い機能性、問題が発生しても解決が難しい
1-1. R 概要
11. DeployR
R Open R Server
DevelopR
R + CRAN
・GNU R
・豊富な R アルゴリズム
・既存の R スクリプト/関数
/パッケージと100%互換
RSR Connector
・GNU R の
パフォーマンスを改善
DistributedR
・分散処理フレームワーク
・同じ R コードが各プラットフォームで動作
(Windows → Hadoop on Redhat 等)
ScaleR
・ビッグ データ分析を行うための機能
・分析処理の並列実行
・並列処理向けにカスタマイズされた R アルゴリズム
ConnectR
・R から各種データ ソースに接続
(SAS, SPSS, Hive, HDFS 等)
DeployR
・作成した R スクリプト
を Web API 化
DevelopR
・R の統合開発環境
(Windows 版のみ)
・R Tools for Visual Studio
に統合
Microsoft R Server
1-1. R 概要
12. Microsoft R Server
DeployR
R Open R Server
DevelopR
R + CRAN
・GNU R
・豊富なR アルゴリズム
・既存のR スクリプト/関数
/パッケージと100%互換
RSR Connector
・オープン ソースR の
パフォーマンスを改善
DistributedR
・分散処理フレームワーク
・同じ R コードが各プラットフォームで動作
(Windows → Hadoop on Redhat 等)
ScaleR
・ビッグ データ分析を行うための機能
・分析処理の並列実行
・並列処理向けにカスタマイズされた R アルゴリズム
ConnectR
・Rから各種データ ソースに接続
(SAS、SPSS、Hive、HDFS 等)
DeployR
・作成した R スクリプト
を Web API 化
DevelopR
・R の統合開発環境
(Windows 版のみ)
・R Tools for Visual Studio
に統合予定
1-1. R 概要
13. 項目 GNU R SAS Python
費用 Free Paid Free
難易度 Easy Difficult Easy
データ解析 High High High
分析モデリング High High Medium
グラフ表示 High Low Medium
テキスト処理 Medium Low High
ビッグ データ分析 Low Medium Medium
汎用処理 High High Medium
ジョブシナリオ Medium High Low
サポート Low YES NO
高機能ツール Low High Medium
1-1. R 概要
ビッグ データ分析やサポート対応などエンタープライズ向けに弱みだった部分が、Microsoft R
製品群によってカバーされ強みへと変わっている。
26. R User
Workstation
R Server for Hadoop v8.0.5
RDDs
1.6.2
HDFS
RDDs
HDFS
RDDs
HDFS
## LOCAL COMPUTE
CONTEXT ##
rxSetComputeContext
(“localpar”)
R Script
Worker
Task
2-3. それぞれの環境の使い分け
27. R User
Workstation
R Server for Hadoop v8.0.5
RDDs
1.6.2
HDFS
RDDs
HDFS
RDDs
HDFS
## Hadoop COMPUTE
CONTEXT ##
rxSetComputeContext
( RxSpark(…) )
R Script
Worker
Task
Worker
Task
Worker
Task
2-3. それぞれの環境の使い分け
ScaleR
Master Task
Initiator
Finalizer
28. SPEC:
・5ノードクラスター
・Edge Node:D14 V2 (16 cores, 112GB)
・Worker Nodes:D12 (4 cores, 28GB)
0
5
10
15
20
25
0 3 6 22 48 76 109
対ローカルサーバでの実行速度比
レコード件数 (100万)
ロジスティック回帰分析の処理性能
Spark R Server on
Spark は R on
MapReduce と比
較して 6 倍高速
レコード数が少ない場合
はローカルサーバ実行で
十分なパフォーマンス
2-3. それぞれの環境の使い分け
R on Spark と R on HDInsight (MapReduce) 上でのロジスティック回帰分析実行速度を、
対象レコード数を変えて測定。対 ローカル サーバ上での実行結果速度比でグラフ化。
MapReduce
Local
31. 1. 業務理解 2. データ理解 3. データ抽出 4. モデリング 5. 効果検証 6. サービス実装
業務上必要なプロセス
3-1. 機械学習の処理フロー
Azure Machine
Learning
Microsoft R
on Spark
Azure BLOB
Storage
システム上必要なプロセス
1. 要件定義 2. ソース DB 選定 3. ETL 処理 4. 解析モデル適用 5. システム テスト 6. デプロイ
HDInsight Web App Excel
Microsoft R
on Spark
32. 1. 要件定義 2. ソースDB選定 3. ETL処理 4. 解析モデル適用 5. システムテスト 6. デプロイ
HDInsight
蓄積された大量のフライト データ(1985年~2008年)から傾向を分析し、飛行機の遅延を予測。
蓄積データ(CSV)
• 1987~2008 年
(22 年間)
• 1 億 2千万件
• フライト データ
• 天気データ
ETL 処理
• 重複排除
• フォーマット変換
• データ JOIN
評価
• スコア付け
• スコアリング機能
を Azure ML に連
携
デプロイ
• Web サービス実行
• Azure ML と
Excel アドオン連
携による Excel 分
析
反復処理
Microsoft R
on Spark
Microsoft R
on Spark
Azure Machine
Learning
Azure BLOB
Storage
Web App Excel
3-1. 機械学習の処理フロー
解析モデル
• ロジスティック回帰
• ディシジョンツリー
• トレーニング
&テスト
• 分類器の精度算出
33. R User
Workstation
R Server for Hadoop v8.0.5
RDDs
1.6.2
HDInsight
HDFS
RDDs
HDFS
RDDs
HDFS
3-1. 機械学習の処理フロー
ソース エディタ
R コンソール
環境・履歴
ファイル・
グラフ表示
統合開発環境 画面
56. • 汎用プログラム含めた言語ランキングで人気上昇中
• vs データ解析用言語の比較で41%の 1 位評価
41%
20%
39%
Go
Ruby
Java Script
PHP
C#
R
C++
Python
Java
C
2016
Metlab
Ruby
Java Script
PHP
R
C#
Python
C++
C
Java
2015
Metlab
R
Ruby
Java Script
PHP
C#
Python
C++
C
Java
2014
R
#9 74%
#6 84.8%
#5 87.9%
Python
SAS
統計解析に使いたいツール
2016
IEEE Spectrum Ranking プログラム言語ランキング 2014 -2016
57. R User
Workstation
R Server for Hadoop v8.0.5
RDDs
Resource
Manager
Name
Node
Node Manager
リソース要求
Spark起動
ScaleR
Master Task
アプリケーション起動
Initiator
Finalizer
Worker
Taskアプリ実行コマンド
HDFS
RDDs
Node Manager
Worker
Task
HDFS
RDDs
Node Manager
Worker
Task
HDFS
アプリ実行コマンド