def crab_main(vectorized_train_data, vectorized_test_data): crab_mat = parsers.crab_costum_matrix(vectorized_train_data) model = MatrixPreferenceDataModel(crab_mat) similarity = UserSimilarity(model, pearson_correlation) recommender = UserBasedRecommender(model, similarity, with_preference=True) result = [] for item in vectorized_test_data: result.append(recommender.estimate_preference(item[0], item[1])) return np.array(result)
from crab import datasets from crab.models import MatrixPreferenceDataModel from crab.metrics import pearson_correlation from crab.similarities import UserSimilarity from crab.recommenders.knn import UserBasedRecommender from crab.metrics.classes import CfEvaluator # load rating matrix reviews = datasets.load_reviews() # Build the model model = MatrixPreferenceDataModel(reviews.data) # Build the similarity similarity = UserSimilarity(model, pearson_correlation, 100) # Build the User based recommender recommender = UserBasedRecommender(model, similarity, with_preference=True) # Recommend items for the user 3 print recommender.recommend(3) # evaluation evaluator = CfEvaluator() rmse = evaluator.evaluate(recommender, metric='rmse', permutation=False, sampling_ratings=0.8) print rmse # rmse = evaluator.evaluate_on_split(recommender, metric='rmse', permutation=False,) # print rmse
from scikits.crab.models import MatrixPreferenceDataModel from scikits.crab import datasets movies=datasets.load_sample_movies() #Build the model model = MatrixPreferenceDataModel(movies.data) from scikits.crab.metrics import pearson_correlation from scikits.crab.similarities import UserSimilarity #Build the similarity similarity = UserSimilarity(model, pearson_correlation) from crab.recommenders.knn import UserBasedRecommender #Build the User based recommender recommender = UserBasedRecommender(model, similarity, with_preference=True) #Recommend items for the user 5 (Toby) print recommender.recommend(5)
} # Example 1: ------Collabrative Filtering Algorithm ---MatrixPreferenceDataModel # test neighborhood strategy print('Collabrative Filtering Algorithm ---MatrixPreferenceDataModel:') model = MatrixPreferenceDataModel(movies) strategy = AllNeighborsStrategy() neighborhood_users = strategy.user_neighborhood('Lorena Abreu', model) print('1: AllNeighborsStrategy Test - %s' % neighborhood_users) print('1: total size - %i' % neighborhood_users.size) # recommendation by user similarity user_strategy = NearestNeighborsStrategy() user_similarity = UserSimilarity(model, euclidean_distances) user_recsys = UserBasedRecommender(model, user_similarity, user_strategy) user_recomm_items = user_recsys.recommend('Leopoldo Pires') print('2: recommendation by user similarity - %s' % user_recomm_items) print('2: total size - %i' % len(user_recomm_items)) user_recomm_items = user_recsys.recommended_because('Leopoldo Pires', 'Snakes on a Plane', 2) print('3: recommendate_because by user similarity - %s' % user_recomm_items) print('3: total size - %i' % len(user_recomm_items)) # Recommendation by item similarity items_strategy = ItemsNeighborhoodStrategy() item_similarity = ItemSimilarity(model, euclidean_distances) item_recsys = ItemBasedRecommender(model, item_similarity, items_strategy) item_recomm_items = item_recsys.recommend('Leopoldo Pires')