2013-01-16 12 views
5

カニのベンチマークは、(http://www.slideshare.net/marcelcaraciolo/crab-a-python-framework-for-building-recommender-systemsページ-37)であるカニ:なぜカニのUserBasedRecommenderが遅いのですか?私の中

 
Benchmarks Pure Python w/ Python w/ Scipy Dataset dicts and NumpyMovieLens 100k 15.32 s 9.56 s http://www.grouplens.org/node/73 Old Crab New Crab 

しかし、場合、私はその理由を知らない、それを行うには30分以上を取る必要があり

私のコードがある

model = MatrixPreferenceDataModel(recommend_data.data) 
similarity = UserSimilarity(model, pearson_correlation) 
recommender = UserBasedRecommender(model, similarity, with_preference=True) 
recommender.recommend("6") 

私のデータは、1700年に1000人のユーザから10万評価が含まれているNumpyMovieLens 100Kであり、映画。

答えて

1

私が最後にCrabを1年以上前に見ると、それはsparse matrices(たとえばscipy.sparse)を使用していたはずの密な配列を使用していました。それはメモリホッグだけでなく恐ろしく遅くなった。私はちょっと一目見ただけで、Crabはほぼ1年間更新されていないようですので、状況はおそらく同じです。

+0

だから、あなたはもっと良いpython UserBasedRecommender libを知っていますか? – Tinyfool

+0

@Tinyfool:いいえ、しかし、Crabに疎な行列サポートをハックすることは可能かもしれません。 ScipyはスパースなSVD( 'scipy.sparse.linalg.svds')を持っています。 scikit-learnには、疎行列をサポートするk-NNがあります。 –

1

カニは再設計中です。データ操作がより効率的になり、外部ライブラリに依存しなくなります。 API自体は単純化されます。すぐに安定版をリリースしてコミュニティが関与できるようにしたい。目的は、Pythonでこのギャップを埋めるためのフレームワークを作成することです。このプロジェクトのホストはhttps://github.com/python-recsys/crabです。

ヘルプと提案は大歓迎です。

関連する問題