AI〜データコンサル会社アイアナのブログ。統計学、Rを使ったデータ分析、Pythonを使ったAIなどこの広告は、90日以上更新していないブログに表示しています。2012-05-28MapReduceできる10個のアルゴリズムHadoopとMahoutにより、ビッグデータでも機械学習を行うことができます。Mahoutで実装されている手法は、全て分散処理できるアルゴリズムということになります。Mahoutで実装されているアルゴリズムは、ここに列挙されています。Multicore」としていくつかのアルゴリズムが紹介されています。そこで今回は、(何番煎じか分かりませんが自分の理解のためにも)この論文で紹介されているアルゴリズムと、どうやって分散処理するのかを簡単にメモしておきたいと思います。form(足し算で表現できる形)になっているかどうかが、重要なポイントです。なってない場合は、”うまく”MapReduceの形にバラす必要があります。※例によって、間違いがあった場合は随時修正致しますのでご指摘下さい。LWLR)mapperでサブデータの重み付き平方和(xxとxy)を計算しreducerで足す。(以前の記事を参考)重みが1の場合は通常の線形回帰になる。ナイーブベイズナイーブベイズには条件付き確率が必要なので、mapperではそれぞれの条件付き”頻度”を計算しreducerで足す。GDA)GDAに必要な4つのパラメータを分散計算する。k-meansmapperで中心に割り付け&中心までの距離の合計とサンプル数を計算、reducerで中心の更新を行う。ロジスティック回帰ニュートンラフソン法で尤度を最大化する。更新に必要な部分をmapperで加法できるように計算し、reducerで合計して更新する。ニューラルネットワークバックプロバゲーションをmapperで行い、部分的な傾きを計算する。reducerでそれぞれの傾きを足し合わせ、重みを更新する。formになっている。matrix(W)の尤度を最大化するための部分傾き(?)を計算しreducerで足す。matrixにかんしてはwikipediaで。最尤法でICAを計算する論文はこちら。SVM)線形SVMの2次損失関数の場合、ある方程式を解くことで最適化ができる部分的な傾きをmapperで計算しreducerで足す。これによって重みのwを更新する。formになっていない場合は最尤法を使い、(傾きによる)尤度の更新を1回のMapReduceで行なっているようです。EMアルゴリズムというとても汎用的な手法がMapReduceできるということで、多くの手法が分散処理できるということが分かります。実際にはそれぞれのEMをMapReduceに分解しなくてはならないので、実装はかなり大変そうです。毎回のパラメータ更新をMapReduceしなくてはならないので、結構な時間もかかりそうです。reduce風に分散処理して計算する巷では何かと分散処理が流行っています。model)について混合効果モデルについてです。読者になる@iisssseeiiiiをフォローデータコンサル会社のiAnalysis合同会社(アイアナ)で代表をしている倉橋一成(くらはしいっせい)です。東京大学で医療統計学の博士号を取得して、2011年に東大病院に務めながらアイアナを設立しました。含む約50社の企業にコンサルティングを行ってきました。統計学やデータサイエンス、AIなどを駆使して経営戦略や事業戦略に活かすためのデータ分析を行っています。クライアントはNTTドコモ。2014年からデータ分析部門(情報戦略室)にコンサルティングを行い、当時数十名だったグループが2019年には200人近くの組織(デジタルマーケティング推進部)となって自走しています。サル以外にはベンチャーやアート活動をしています。こちらのサイトでベンチャーやアート活動などの近況をアップしています。ツイッターはコンサル以外の趣味のつぶやきメイン。移行時約180万PVはてなブログをはじめよう!isseing333さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。