2012-01-27 10 views
0

私は2つのMySqlテーブルを持っています.1つは6000人のユーザーのセットと彼らが製品のために提供した10000の評価のセットを含みます。私は、特定の製品(または評価値)に格付けを与えた場合、ユーザーに1または0を示す各行に対して持つ特徴ベクトルの行列を作りたいと思う。これを達成する最善の方法は何ですか(マトリクスが疎であることを考慮すれば?)。mySQLテーブルからの超大規模行列の生成?

私は自分の使い捨てのツール(MySQLやMatlabなど)でどのような実装を試すことができるのか不思議です。最終目的は同様のユーザーをクラスタリングすることです。何とか私は10000列のMySQLテーブルが私のDB管理者を幸せにしないと思います...まったく。

ありがとうございます!

答えて

0

SQLでスパース行列を格納する明白な方法はuserproductが一緒に主キーであり、余分な列が評価される3つの列を、使用することです。

実際の処理をSQLデータベースで行うのは意味がありません。これは単なる巨大なオーバーヘッドであり、物事は遅くなります。データをプリミティブで高速なデータ構造に変換して解析し、必要な出力形式で出力を変換してください。

SQLは、データの一部だけを必要としたり、変更を実行したり、ロックを必要としたり、すべてを必要とする場合に適しています。しかし、低レベルの線形代数ライブラリをデータベースにロードすることができないと、データベースが遅くなるので、計算をデータベースで直接実行することはありません。

関連する問題