19
分析環境-アレコレ- By @yuu_kimy

Analytics Environment

Embed Size (px)

DESCRIPTION

This is the documentation about "Analytics Environment" in Japanese.("分析環境"についての資料です。)

Citation preview

Page 1: Analytics Environment

分析環境-アレコレ-

By @yuu_kimy

Page 2: Analytics Environment

◇自己紹介(簡単に..)

› 最近は、こんな感じです。相変わらず、エンジニア(の端くれ)です..

› Rを結構動かしたり、、

› 英語の記事を追いかけたり、

› Java演習のサポートをしたり、、etc

› ブログを時々書いています。(時々です。笑)

› http://yuu-kimy-note.hatenablog.com/

Page 3: Analytics Environment

◇分析環境

› 今回のテーマは、「分析環境」をみていきます!

› これまではRがメインでしたが、他に、どのような環境が

› 出来るのかをみていきたいと思います。

Page 4: Analytics Environment

◇Rの短所

› 統計解析/機械学習に非常に強みを持つRも短所はあるわけで、、

› 基本的に1CPU(コア)による演算処理

› 分析データは、メモリで保持

› 結構メモリを喰う..(参照渡しが出来ない)

› つまり、大規模データを扱うには不向きな分析環境と言えますね..

› (勿論、フリーソフトであり、様々なパッケージを持つRは、魅力的ですよ!!!)

Page 5: Analytics Environment

◇分析環境を考える..

› 他に、どのような環境が考えられるか見ていきましょう!

› 1. Rと大規模データ用のパッケージを利用(or ハードウェア強化)

› 2. RとHadoopの組合せを利用

› 3. Mahout(Hadoop)を利用

› 4. Jubatus(呼称:ユバタス)を利用

› 5. PostgreSQLとMADlibを利用

› 6. Revolution Rを利用

› 7. Pythonを利用

› 8. Microsoft AzureMLを利用

Page 6: Analytics Environment

1. Rと大規模データ用のパッケージ利用(or HW)

› 既存環境のRを強化するパターン。

› 元々、Rは大規模データの扱いが苦手なわけですが、

› パッケージ{ff,Bigmemory}で、その短所を改善する。

(つまり、オンメモリではなく、ディスクも有効活用するということ)

› 又は、R環境のメモリ容量を格段に上げる!(64bit環境+XXGB)

› 注意:

› 上記パッケージは、大量データを取込む際、活用できそうですが、

› 多くの分析モデルが対応しているわけではないとのこと..

Page 7: Analytics Environment

2. RとHadoopの組合せを利用

› Hadoopを組合せて、そのPowerを手に入れよう!というパターン。

› ただ、これって、RからMapReduceを実行することになり、

› Javaで書く代わりにRで書くことは必要!!

› パッケージ{RHadoop}を利用する。

› (勿論、Hadoop環境は必要)

› 環境は、AWSを利用するのがポピュラーなのかな~★

› Ex) R+RStudio Server + Hadoop(Amazon EMR)

Page 8: Analytics Environment

2. RとHadoopの組合せを利用(補足)

› イメージはこんな感じです。(各ノードにRが必要なわけです..!)

› 各ノードにRのインストールが必要なわけで、結構手間かな~..

› いやいや、実装にも慣れが必要そう..汗

出典: RHadoop Tutorial by Revolution Analytics

Page 9: Analytics Environment

3. Mahout(Hadoop)を利用

› Hadoop上で動く機械学習ライブラリを利用するパターン。

› Hadoopの場合は、MapReduceに基づいて、ゴリゴリMap処理と

› Reduce処理を書く必要がありますが、Mahoutは、コマンドから

› 実行できる関数群が用意されている!(Rのような感じ)

› 但し、まだまだ分析モデルはRに比べて、少ないのが現状のよう..

› そもそも、Hadoop自体の慣れも必要な環境なので、

› よりエンジニア好みの環境..かも。

Page 10: Analytics Environment

4. Jubatus(呼称:ユバタス)を利用

› 「国産」の機械学習フレームワークを利用するパターン..

› (いわゆる、国産製品を使っていこう!っていうわけですね。。)

› ではなく、、

› 分散化されたオンライン機械学習フレームワークを利用するパターン。

› 「オンライン機械学習」とは、リアルタイムに発生するデータの流れに

› 対して、逐次分析するような機械学習を指す!

› 活用シーンとしては、M2Mな環境、機器の異常監視等が

› 想定されます。(実際、そういう事例があるようです。)

Page 11: Analytics Environment

5. PostgreSQLとMADlibを利用

› Rから離れて、SQLで機械学習を頑張ろうぜ、というパターン。

› PostgreSQLは、MySQLと並び、OSSなデータベース製品。

› 一方のMADlibは、SQLベースの統計/機械学習ライブラリ。

› 商用だと、PostgreSQLをベースとしたGreenplum、

› 又は、PivotalHDと組み合わせることは、某社が推奨してますね..

(In-Database分析を推してますよね?!)

› SQLに慣れ親しんだメンバーが多い時は、結構イケるかも!

› SVMの分析モデルも実装されていました!!

› PostgreSQLの場合は、やっぱり、シングルノード構成だけですね..

Page 12: Analytics Environment

5. PostgreSQLとMADlibを利用(補足)

› SQLで分析用関数を呼び出すわけです、、こんな感じ!

› つまりは、Rと同様、決められたフォーマットに従い、分析モデルの

› 関数を呼び出すわけですね。(上記は、ロジスティック回帰の関数)

出典: MADlib 1.6 User Documentation

Page 13: Analytics Environment

6. Revolution Rを利用

› Rが好きなら、とことん利用するぞ、というパターン。

› この場合は、商用版R(Revolution Analytics社)を利用する。

› メリットとしては、、より大規模データが扱える、商用サポートあり、

› 商用ライセンスの信頼性が挙げられていますね!

› で、肝心の価格は???

› アカデミック版は無料らしいです、、

› ビジネス版は確認が必要そう!!!

Page 14: Analytics Environment

7. Pythonを利用

› 御存知、Rを抜きつつあるPython様を利用するパターン。

› 軽量なスクリプト言語として人気のあるPythonは、Webサービスの

› 開発に利用されていますが、分析環境としても熱い視線が!!!

› Rと同様、統計解析/機械学習ライブラリは勿論あります。

› とは言え、大規模データを扱うのであれば、Rと同様の問題も..

› (Rよりはメモリ利用が上手いというお話があったり、、)

Page 15: Analytics Environment

8. Microsoft AzureMLを利用

› もう、最後は天下のMicrosoftに頼るべしというパターンです。笑

› 最近は、MicrosoftのAzureクラウド環境も有名ですが、

› まさに、その環境で機械学習をやろう~って寸法です。

› 基本は、GUI画面で各タスク(アイコン)を繋げて、分析フローを

› 構築していくイメージ。(S○SS Modelerと近いかと。。)

› 実は、構築した分析フローは、Rコードとして吐き出せる優れもの!

› クラウドのメリットである使った分だけの課金というのも良いですね。

› 但し、現在は、プレビューの段階とのこと..

Page 16: Analytics Environment

8. Microsoft AzureMLを利用(補足)

› 実際の画面はこんな感じらしい..(まだ、英語版のみかも?!)

出典: Microsoft Azue

Page 17: Analytics Environment

◇参考資料1› 本資料は、以下を参考にしております。

› 1. R諸々

› http://rogiersbart.blogspot.jp/2011/10/use-r.html

› http://www.slideshare.net/sfchaos/rbigmemory-tokyowebmining10

› http://www.r-bloggers.com/five-ways-to-handle-big-data-in-r/

› http://www.slideshare.net/wdkz/rffbigmemoryrevoscaler-10334116

› 2. RHadoop

› http://www.slideshare.net/holidayworking/rhadoop

› http://blogs.aws.amazon.com/bigdata/post/Tx37RSKRFDQNTSL/Statistical-Analysis-with-Open-Source-R-and-RStudio-on-Amazon-EMR

› http://cdn.oreillystatic.com/en/assets/1/event/100/Using%20R%20and%20Hadoop%20for%20Statistical%20Computation%20at%20Scale%20Presentation.htm#/

› http://acro-engineer.hatenablog.com/entry/20111204/1323010742

Page 18: Analytics Environment

◇参考資料2

› 本資料は、以下を参考にしております。

› 3. Mahout

› http://www.slideshare.net/yamakatu/lt-23793589

› http://gihyo.jp/dev/serial/01/mahout/0005

› 4. Jubatus

› http://jubat.us/ja/overview/feature.html

› 5. MADlib

› http://enterprisezine.jp/iti/detail/3905

› http://doc.madlib.net/latest/group__grp__logreg.html

› http://wp.sigmod.org/?p=344

Page 19: Analytics Environment

◇参考資料3› 本資料は、以下を参考にしております。

› 6. Revolution R

› http://www.r-analytics.jp/

› http://www.slideshare.net/SatoshiKitajima2/jfssa-taikai-opensource

› 7. Python

› http://www.pytables.org/docs/LargeDataAnalysis.pdf

› http://web-analytics-or-die.org/2013/07/pandas/

› 8. Azure ML

› http://azure.microsoft.com/en-us/documentation/articles/machine-learning-create-experiment/

› http://azure.microsoft.com/ja-jp/services/machine-learning/