def main(): import pprint pp = pprint.PrettyPrinter(indent=4) from scikits.crab import datasets movies = datasets.load_sample_songs() print "Movies Data:", pp.pformat(movies) print "Movies Data Matrix :", pp.pformat(movies.data) from scikits.crab.models import MatrixPreferenceDataModel #Build the model #new_movies = {u'1': [1, 2, 3, 4, 5], u'3': [2, 3, 4, 5, 6], u'2': [1, 2, 3, 4, 5, 6], u'5': [2, 3, 4], u'4': [1, 2, 3, 4, 5, 6], u'7': [1, 2, 4, 5], u'6': [1, 2, 3, 4, 5, 6]} #print "New moview hash", pp.pformat(new_movies) #model = MatrixBooleanPrefDataModel(new_movies) model = MatrixPreferenceDataModel(movies.data) import json from scikits.crab.metrics import spearman_coefficient from scikits.crab.similarities import UserSimilarity, ItemSimilarity #Build the similarity user_similarity = UserSimilarity(model, pearson_correlation) item_similarity = ItemSimilarity(model, pearson_correlation) from scikits.crab.recommenders.knn import UserBasedRecommender, ItemBasedRecommender #Build the User based recommender user_recommender = UserBasedRecommender(model, user_similarity, with_preference=True) item_recommender = ItemBasedRecommender(model, item_similarity, with_preference=True) print "recommendations for user 5", user_recommender.recommend("5") print "recommendations for item 3", item_recommender.recommend("3")
def test_basic_methods_DictPreferenceDataModel(): #Empty Dataset model = DictPreferenceDataModel({}) assert_equals(model.dataset, {}) assert_array_equal(np.array([]), model.user_ids()) assert_array_equal(np.array([]), model.item_ids()) assert_equals(True, model.has_preference_values()) assert_equals(0, model.users_count()) assert_equals(0, model.items_count()) assert_equals(-np.inf, model.maximum_preference_value()) assert_equals(np.inf, model.minimum_preference_value()) assert("DictPreferenceDataModel (0 by 0)" in model.__str__()) movies = movies_dict() #Simple DataSet model = DictPreferenceDataModel(movies) assert_equals(model.dataset, movies) assert_array_equal(np.sort(np.array(['Leopoldo Pires', 'Lorena Abreu', 'Luciana Nunes', 'Marcel Caraciolo', 'Maria Gabriela', 'Penny Frewman', 'Sheldom', 'Steve Gates'])), np.sort(model.user_ids())) assert_array_equal(np.array(['Just My Luck', 'Lady in the Water', 'Snakes on a Plane', 'Superman Returns', 'The Night Listener', 'You, Me and Dupree']), np.sort(model.item_ids())) assert_equals(True, model.has_preference_values()) assert_equals(8, model.users_count()) assert_equals(6, model.items_count()) assert_equals(5.0, model.maximum_preference_value()) assert_equals(1.0, model.minimum_preference_value()) assert_equals(sorted([('Just My Luck', 3.0), ('Lady in the Water', 2.5), ('Snakes on a Plane', 3.5), ('Superman Returns', 3.5), ('The Night Listener', 3.0), ('You, Me and Dupree', 2.5)]), sorted(model['Marcel Caraciolo'])) elements = [pref for pref in model] assert_array_equal([('Lady in the Water', 2.5), ('Snakes on a Plane', 3.0), \ ('Superman Returns', 3.5), ('The Night Listener', 4.0)], elements[0][1]) assert("DictPreferenceDataModel (8 by 6)" in model.__str__()) #SampleSongs DataSet songs = load_sample_songs() model = DictPreferenceDataModel(songs.data) assert_equals(model.dataset, songs.data) assert_array_equal(np.array([1, 2, 3, 4, 5, 6, 7, 8]), model.user_ids()) assert_array_equal(np.array([1, 2, 3, 4, 5, 6, 7, 8]), model.item_ids()) assert_equals(True, model.has_preference_values()) assert_equals(8, model.users_count()) assert_equals(8, model.items_count()) assert_equals(5.0, model.maximum_preference_value()) assert_equals(1.0, model.minimum_preference_value()) assert_equals([(1, 2.5), (2, 3.5), (3, 5.0), (4, 2.0), (5, 4.5), (6, 1.5), (7, 2.0)], model[1]) elements = [pref for pref in model] assert_array_equal([(1, 2.5), (2, 3.5), (3, 5.0), (4, 2.0), (5, 4.5), (6, 1.5), (7, 2.0)], elements[0][1]) assert("DictPreferenceDataModel (8 by 8)" in model.__str__())
def test_basic_methods_MatrixBooleanPrefDataModel(): #Empty Dataset model = MatrixBooleanPrefDataModel({}) assert_equals(model.dataset, {}) assert_array_equal(np.array([]), model.user_ids()) assert_array_equal(np.array([]), model.item_ids()) assert_equals(False, model.has_preference_values()) assert_equals(0, model.users_count()) assert_equals(0, model.items_count()) assert("MatrixBooleanPrefDataModel (0 by 0)" in model.__str__()) #Simple DataSet model = MatrixBooleanPrefDataModel(movies_boolean) assert_equals(model.dataset, movies_boolean) assert_array_equal(np.array(['Leopoldo Pires', 'Lorena Abreu', 'Luciana Nunes', 'Marcel Caraciolo', 'Maria Gabriela', 'Penny Frewman', 'Sheldom', 'Steve Gates']), model.user_ids()) assert_array_equal(np.array(['Just My Luck', 'Lady in the Water', 'Snakes on a Plane', 'Superman Returns', 'The Night Listener', 'You, Me and Dupree']), model.item_ids()) assert_equals(False, model.has_preference_values()) assert_equals(8, model.users_count()) assert_equals(6, model.items_count()) assert_array_equal(['Just My Luck', 'Lady in the Water', 'Snakes on a Plane', 'Superman Returns', 'The Night Listener', 'You, Me and Dupree'], model['Marcel Caraciolo']) elements = [pref for pref in model] assert_array_equal(['Lady in the Water', 'Snakes on a Plane', \ 'Superman Returns', 'The Night Listener'], elements[0][1]) assert("MatrixBooleanPrefDataModel (8 by 6)" in model.__str__()) songs = load_sample_songs() model = MatrixBooleanPrefDataModel(songs.data) assert_equals(model.dataset, songs_boolean) assert_array_equal(np.array([1, 2, 3, 4, 5, 6, 7, 8]), model.user_ids()) assert_array_equal(np.array([1, 2, 3, 4, 5, 6, 7, 8]), model.item_ids()) assert_equals(False, model.has_preference_values()) assert_equals(8, model.users_count()) assert_equals(8, model.items_count()) assert_equals(1.0, model.maximum_preference_value()) assert_equals(0.0, model.minimum_preference_value()) assert_array_equal([1, 2, 3, 4, 5, 6, 7], model[1]) elements = [pref for pref in model] assert_array_equal([1, 2, 3, 4, 5, 6, 7], elements[0][1]) assert("MatrixBooleanPrefDataModel (8 by 8)" in model.__str__())
from scikits.crab import datasets movies = datasets.load_sample_movies() songs = datasets.load_sample_songs() print movies.data print movies.user_ids print movies.item_ids from scikits.crab.models import MatrixPreferenceDataModel #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) print similarity[1] from scikits.crab.metrics.pairwise import euclidean_distances similarity = UserSimilarity(model, euclidean_distances) print similarity[5] from scikits.crab.recommenders.knn import UserBasedRecommender #Build the User based recommender recommender = UserBasedRecommender(model, similarity, with_preference=True) #Recommend items for the user 5 (Toby) recommender.recommend(5)
from scikits.crab import datasets from scikits.crab.models import MatrixPreferenceDataModel from scikits.crab.metrics import pearson_correlation from scikits.crab.recommenders.knn import UserBasedRecommender from scikits.crab.similarities import UserSimilarity movies = datasets.load_sample_movies() songs = datasets.load_sample_songs() print movies.data print movies.user_ids print movies.item_ids # Build the model model = MatrixPreferenceDataModel(movies.data) # Build the similarity similarity = UserSimilarity(model, pearson_correlation) # Build the User based recommender_sample.py recommender = UserBasedRecommender(model, similarity, with_preference=True) # Recommend items for the user 5 (Toby) print recommender.recommend(5)
def test_load_sample_songs(self): songs = load_sample_songs() self.assertEquals(len(songs['data']), 8) self.assertEquals(len(songs['item_ids']), 8)
def test_load_sample_songs(self): songs = load_sample_songs() self.assertEquals(len(songs["data"]), 8) self.assertEquals(len(songs["item_ids"]), 8)