Example #1
0
    def __init__(self, dataset, test, N=20, I=300):
        """ Input: 
            -> dataset <list> : all data in list form.
            -> N <Integer> : Length of the recommendation list.
            -> I <Integer> : Number of Pseudo-items. The assumption is that
               all of these items are not relevant for our user[1].
            -> test  <<user => {movie => rating}>,
                     <movie => {user => rating}>>: Contains test dbs. 


        [1]: Cremonesi, P., Milano, P. & Turrin, R., 2010. Performance of
        Recommender Algorithms on Top-N Recommendation Tasks. Methodology, 
        p.39. Available at: http://portal.acm.org/citation.cfm?id=
        1864708.1864721
        
        """

        self.test_db, self.test_idb = test
        self.N = N
        self.db, self.idb, movies = dataload.read_data_to_hash(dataset)
        self.I = I

        self.n_hit = 0
        self.n_miss = 0
        self.recall = 0
        self.precision = 0

        print self
Example #2
0
    def __init__(self, dataset, test, N=20, I=300):
        
        """ Input: 
            -> dataset <list> : all data in list form.
            -> N <Integer> : Length of the recommendation list.
            -> I <Integer> : Number of Pseudo-items. The assumption is that
               all of these items are not relevant for our user[1].
            -> test  <<user => {movie => rating}>,
                     <movie => {user => rating}>>: Contains test dbs. 


        [1]: Cremonesi, P., Milano, P. & Turrin, R., 2010. Performance of
        Recommender Algorithms on Top-N Recommendation Tasks. Methodology, 
        p.39. Available at: http://portal.acm.org/citation.cfm?id=
        1864708.1864721
        
        """

        self.test_db, self.test_idb = test
        self.N = N
        self.db, self.idb, movies = dataload.read_data_to_hash(dataset)
        self.I = I
        
        self.n_hit = 0
        self.n_miss = 0
        self.recall = 0
        self.precision = 0

        print self
Example #3
0
    def createRecSystem(self):

        db, idb, movies = dataload.read_data_to_hash(self.trainset)

        self.rec = KNeighborRegressor(db,
                                      idb,
                                      k=self.k,
                                      sim_method=self.sim_method,
                                      rec_type=self.rec_type)
Example #4
0
 def evaluate(self, k=1, N=20, I=300):
     """
         Input:
             -> k: Number of item(s) which are/is the user appreciates
                most. (Only for Precision & Recall)
     """
     test_db, test_idb, m = dataload.read_data_to_hash(self.testset)
     if self.rec_type == 'ib':
         test_db, test_idb = test_idb, test_db
     if self.eval_metric == 'mae':
         return self.__calc_mae(test_db)
     elif self.eval_metric == 'pr':  # precision & Recall
         return self.__calc_pr((test_db, test_idb), k, N, I)
     else:
         stderr.write("There is no such evaluation metric you can use")
         exit(1)
Example #5
0
    def evaluate(self, k=1, N=20, I=300):

        """
            Input:
                -> k: Number of item(s) which are/is the user appreciates
                   most. (Only for Precision & Recall)
        """
        test_db, test_idb, m = dataload.read_data_to_hash(self.testset)
        if self.rec_type == 'ib':
            test_db, test_idb = test_idb, test_db
        if self.eval_metric == 'mae':
            return self.__calc_mae(test_db)
        elif self.eval_metric == 'pr': # precision & Recall
            return self.__calc_pr((test_db, test_idb), k, N, I)
        else:
            stderr.write("There is no such evaluation metric you can use")
            exit(1) 
Example #6
0
    def createRecSystem(self):
        
        db, idb, movies = dataload.read_data_to_hash(self.trainset)

        self.rec = KNeighborRegressor(db, idb, k=self.k, 
                    sim_method=self.sim_method, rec_type=self.rec_type)