3

大きすぎてメモリに収まらない行列を使用して大量のデータフィッティングを実行したい場合、どのツール/ライブラリを調べますか?具体的には、通常php + mysqlを使用してWebサイトのデータを実行している場合、妥当な時間で大規模なマトリックス操作を実行できるオフラインプロセスを作成することをどのように提案しますか?

考えられる答えは、「これらの分散行列アルゴリズムでこの言語を使用して、多くのマシンでreduceをマップする必要がある」などです。phpはこれに最適な言語ではないので、フローは他のオフラインプロセスがデータベースからデータを読み取り、学習を行い、phpが後で使用できる形式でルールを保存するようなものになると思います(サイトの他の部分はphpで構築されているため)。

これがこれを尋ねるのに適切な場所であるかどうかはわかりません(機械学習SEで尋ねたはずですが、ベータ版から抜け出すことはありませんでした)。

4

2 に答える 2

3

大量のデータを処理したい場合は、やらなければならないことがたくさんあります。Webスケールデータを処理する1つの方法は、Map / Reduceを使用することです。おそらく、次のようなスケーラブルな機械学習パッケージであるApacheMahoutを見ることができます。

  • 協調フィルタリング
  • ユーザーおよびアイテムベースの推奨者
  • K-Means、ファジーK-Meansクラスタリング
  • などなど。

具体的には、 Wekaなどのオープンソースプロジェクトでやりたいことが利用できる場合がありますが、配布ジョブを実行するにはコードを移行/作成する必要がある場合があります。

上記があなたにアイデアを与えることを願っています。

于 2012-04-27T09:32:06.480 に答える
2

機械学習は幅広い分野であり、さまざまな用途に使用できます(たとえば、教師なし予測モデリングや教師なしデータ探索)。達成したいこととデータの性質と次元に応じて、出力するモデルの品質と、大規模なトレーニングセットを活用するためのスケーラビリティ、および速度とメモリ消費の両方の点で興味深いスケーラブルなアルゴリズムを見つけます。予測時間は、一般的に答えることができない難しい問題です。一部のアルゴリズムはオンラインであるためスケーラブルであり(つまり、すべてのデータセットを一度にロードする必要なしに段階的に学習できます)、他のアルゴリズムは並列で実行できるサブタスクに分割できるためスケーラブルです。それはすべて、達成しようとしていることと、過去に収集/注釈を付けたデータの種類によって異なります。

たとえば、テキスト分類の場合、優れた特徴(TF-IDF正規化、オプションでバイグラム、オプションでchi2特徴選択)を備えたロジスティック回帰のような単純な線形モデルは、クラスターを必要とせずに非常に大きなデータセット(数百万のドキュメント)にスケーリングできます。クラスターでの並列化。このようなスケーラブルな分類モデルを構築するためのliblinearとvowpalwabbitをご覧ください。

于 2012-04-28T15:15:25.460 に答える