2013-01-16 11 views
5

il punto di riferimento per il granchio è (http://www.slideshare.net/marcelcaraciolo/crab-a-python-framework-for-building-recommender-systems pagina-37)granchio: perché UserBasedRecommender del granchio è così lento?

 
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 

però, a mio caso, ho bisogno di prendere più di 30 minuti per farlo, non so il motivo

il mio codice è

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

miei dati è NumpyMovieLens 100k, che contiene 100.000 feedback da 1000 utenti su 1700 film.

risposta

1

L'ultima volta che ho guardato Crab un po 'più di un anno fa, utilizzava array densi se si dovesse utilizzare sparse matrices (ad esempio scipy.sparse). Ciò lo rendeva orribilmente lento oltre che un maiale da memoria. Ho appena avuto una rapida occhiata e sembra che Crab non sia stato aggiornato da quasi un anno, quindi la situazione è probabilmente la stessa.

+0

Quindi, conosci meglio Python UserBasedRecommender lib? – Tinyfool

+0

@Tinyfool: no, ma potrebbe essere possibile modificare il supporto della matrice sparsa in Crab. Scipy ha uno scarso SVD ('scipy.sparse.linalg.svds'); scikit-learn ha k-NN con un certo supporto per matrici sparse. –

1

Il granchio viene riprogettato. La manipolazione dei dati sarà più efficiente e meno dipendente dalle librerie esterne. L'API in sé sarà semplificata. Vogliamo rilasciare presto una versione stabile in modo che la comunità possa essere coinvolta. L'obiettivo è creare un framework per colmare questa lacuna in Python. Il progetto è ospitato qui https://github.com/python-recsys/crab.

Aiuto e suggerimenti sono i benvenuti.

Problemi correlati