Y's note

Web技術・プロダクトマネジメント・そして経営について

本ブログの更新を停止しており、今後は下記Noteに記載していきます。
https://note.com/yutakikuchi/

Machine Learning With Hadoop

Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)

Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)

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 はてなブックマーク - Apache Mahout: Scalable machine learning and data mining
  • Algorithms はてなブックマーク - Algorithms
    • Classification
    • Clustering
    • Pattern Mining
    • Regression
    • Dimension reduction
    • Evolutionary Algorithms
    • Recommenders / Collaborative Filtering
    • Vector Similarity
Pig
training = load `training.txt'
using SVMLightStorage()
as (target: int, features: map[]);
store training into `model/'
using FeaturesLRClassifierBuilder();
独自MapReduce
その他