Machine Learning With Hadoop
Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)
- 作者: Kevin P. Murphy
- 出版社/メーカー: The MIT Press
- 発売日: 2012/08/24
- メディア: ハードカバー
- 購入: 1人 クリック: 26回
- この商品を含むブログを見る
Big DataのMachine Learning
Daily数百ギガバイトのAccessLogからDataMiningに必要なFeatureをかき集めるのにスタンドアロンの端末で処理を行うには時間が掛かりすぎます。バッチ処理で1日以内にUserのAccessLogを整形、必要な部分を取り出してDataMining/Machine Learningに掛けて、Userが利用するSystemに反映して行こうと考えると最初のバッチ処理で利用できる時間はそれほど多くありません。処理時間改善のためにHadoopを使い複数台のマシンに大量のログデータとバッチ処理を分散させる仕組みはBig Dataを扱う人の中では常識として利用されています。今日はBigDataをMachineLearningさせたいときの方法について調べた内容を載せます。Apache Mahout、PigのUDF、独自MapReduceの3つのうちどれかを使う事になりそうです。
Apache Mahout
- Hadoop上で実行可能な機械学習ライブラリ。ファイルをDownloadして展開するだけで利用可能。一番お手軽だが未実装のAlgorithmもあり、公開されているPatchファイルを当てるなどの対応が必要になる場合がある。
- Apache Mahout: Scalable machine learning and data mining
- Algorithms
- Classification
- Clustering
- Pattern Mining
- Regression
- Dimension reduction
- Evolutionary Algorithms
- Recommenders / Collaborative Filtering
- Vector Similarity
Pig
- Pig専用のScriptを書く事でMap/Reduceが可能。データのjoinなどもできる。Hiveのライバルプロジェクト。MachineLearningを行う場合はuser-defined functions (UDFs)を書く必要がある。MachineLearningのUDFsはほとんどWeb上に公開されていない。TwitterはPigを使って機械学習している。
- Welcome to Apache Pig!
- Large-Scale Machine Learning at Twitter
- Large-Scale Machine Learning at Twitter // Speaker Deck
training = load `training.txt' using SVMLightStorage() as (target: int, features: map[]); store training into `model/' using FeaturesLRClassifierBuilder();独自MapReduce
- 自分で機械学習を組み込んだMapReduceを書く必要がある。PythonなどではNumpyやScipyを利用したStreamingを書く事も可能だが手間がかかる。
- Map-Reduce for Machine Learning on Multicore
- Parallel Machine Learning for Hadoop/Mapreduce – A Python Example
その他
- Hama - a Bulk Synchronous Parallel computing framework on top of Hadoop
- Apache Hama is a pure BSP (Bulk Synchronous Parallel) computing framework on top of HDFS
- Hama: machine learning - ASF JIRA
- 機械学習は発展途上なようで今後に期待?!
- Hapyrus
- お会いした事は無いのですが、元会社の先輩が立ち上げているシステム。まだ使っていません。
- Tokyowebmining12