2013-01-16 2 views
5

게에 대한 벤치 마크입니다게 : 왜 게의 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 

그러나 (http://www.slideshare.net/marcelcaraciolo/crab-a-python-framework-for-building-recommender-systems 페이지-37), 내 경우, 나는 이유를 모르고, 그것을 할 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 100,000이며, 영화 산업.

답변

1

1 년 전 조금 전에 Crab을 보았을 때, (예 : scipy.sparse)을 사용해야했기 때문에 밀도가 높은 배열을 사용하고있었습니다. 그것은 메모리 몹뿐만 아니라 끔찍하게 느리게 만들었습니다. 나는 방금 훑어 보았고 게는 거의 1 년 동안 업데이트되지 않았으므로 상황은 여전히 ​​동일합니다.

+0

그래서 더 나은 파이썬 UserBasedRecommender lib를 아십니까? – Tinyfool

+0

@Tinyfool : 아니요,하지만 드문 드문 행렬 지원을 크랩에 해킹하는 것이 가능할 수도 있습니다. Scipy에는 드문 드문 SVD가 있습니다 ('scipy.sparse.linalg.svds'); scikit-learn은 sparse 행렬을 지원하는 k-NN을 가지고 있습니다. –

1

크랩을 다시 디자인 중입니다. 데이터 조작은 외부 lib에보다 효율적이고 덜 의존적입니다. 자체 API는 단순화 될 것입니다. 커뮤니티가 개입 할 수 있도록 곧 안정 버전을 출시하려고합니다. 목적은 파이썬에서 이러한 차이를 메꾸기위한 프레임 워크를 만드는 것입니다. 이 프로젝트의 호스트는 https://github.com/python-recsys/crab입니다.

도움말 및 제안을 환영합니다.