タグ

AlgorithmとHadoopに関するscrewboundのブックマーク (5)

  • MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    HadoopとMahoutにより、ビッグデータでも機械学習を行うことができます。Mahoutで実装されている手法は、全て分散処理できるアルゴリズムということになります。Mahoutで実装されているアルゴリズムは、ここに列挙されています。論文としても、2006年に「Map-Reduce for Machine Learning on Multicore」としていくつかのアルゴリズムが紹介されています。 そこで今回は、(何番煎じか分かりませんが自分の理解のためにも)この論文で紹介されているアルゴリズムと、どうやって分散処理するのかを簡単にメモしておきたいと思います。計算するべき統計量が、summation form(足し算で表現できる形)になっているかどうかが、重要なポイントです。なってない場合は、”うまく”MapReduceの形にバラす必要があります。 ※例によって、間違いがあった場合は随時

    MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • キー毎に値を集計する方法 - ひしだまの変更履歴

    ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲーム音楽です。 irofさんとdaiksyさんがTwitter上でキーブレイク処理について話していました。 (リストを項目ごとに集計する→「ブレイク処理」を定形のアルゴリズムとして習いました→こんな解りにくいの、なんで好んで書くんだろう) キーブレイク処理というのは、データをキーでソートしておいて順番に読み込み、キーが同じ値の間に処理(よくあるのが集計)を続ける。キーが違う値になったら(キーがブレイクしたら)集計値を出力し、集計用変数をクリアしてまた処理を続ける。というアルゴリズムです。 ひとつ前のキーの値を保持しておく変数が必要で、最初はそれをどういう値にしておくか、また、ループを抜けた後に最後のキーの集計値を出力する必要があるか、といった辺りも考慮しないといけないので、慣れないと分か

    キー毎に値を集計する方法 - ひしだまの変更履歴
  • Mapreduce2.0 - 急がば回れ、選ぶなら近道

    次世代Hadoopの開発が進んでいる。現状の推移では、少なくとも分散クラウドでの「OSSインフラ」としてはHadoopが最有力候補であることは間違いない。クラウド上での分散処理基盤での技術競争ではGoogleAmazonが相当抜きんでいる現在、それに対抗しうる可能性があるOSSはHadoopの潮流の延長線上にしか考えられない。その形としてHadoop-MapReduce2.0があるように見える。現在の状態で自分なりの次世代Hadoopの理解をまとめておく。基的に全部は見切れていないので、そのあたりはあしからず。基的に次世代Hadoopの仕組みは大きく二つの要素からなる 現在のところの柱はHDFSとMapreduce2.0の二つだ。 まずMapReduce。これは従来の「MapReduce」というものからはほど遠い。むしろ「任意」の分散処理実行フレームワークにたいして、適切なリソースを

    Mapreduce2.0 - 急がば回れ、選ぶなら近道
  • Hadoopによるテキストマイニングの精度を上げる2つのアルゴリズム

    Hadoopによるテキストマイニングの精度を上げる2つのアルゴリズム:テキストマイニングで始める実践Hadoop活用(最終回)(1/3 ページ) Hadoopとは何かを解説し、実際にHadoopを使って大規模データを対象にしたテキストマイニングを行います。テキストマイニングを行うサンプルプログラムの作成を通じて、Hadoopの使い方や、どのように活用できるのかを解説します Passive-Aggressiveとロジスティック回帰で精度向上 前回の「実践! 「MapReduceでテキストマイニング」徹底解説」では、「青空文庫」の作品から学習を行い、テキストデータから著者の寿命を推定するMapReduceプログラムを作成しました。 今回は、前回のプログラムを少し変更するだけで、精度が上がる「Passive-Aggressive」というアルゴリズムを実装します。また、テキスト分類のアルゴリズムと

    Hadoopによるテキストマイニングの精度を上げる2つのアルゴリズム
  • MapReduceのもう一つの使い方 - 急がば回れ、選ぶなら近道

    MapReduceというと集計に使うモノという人が多いと思う。 なんとなれば、MapReduce=Hadoop=ワードカウントの図式になっているからだ。 実際、Hadoopを触ってみようという人のほとんどはexampleとしてワードカウントを使うはず。その辺に落ちてるシェークスピアのログでHadoopのexampleを動かした人もおおいはず。 ところが実際に業務バッチ的な処理を行うときに、MapReduceの効果的な使い方は別にもある。個人的は、「当のMapReduceの使いかた」はこっちだと思う。なんということはなくて「組み合わせ計算を高速に行う」だ。ある種の計算では、順序処理でギブアップしてしまうケースの一つに組み合わせの計算がある Node{ List<Node> nodeList value(){ hasNodeList() ? nodeList.traverse(value()

    MapReduceのもう一つの使い方 - 急がば回れ、選ぶなら近道
  • 1