class Algorithm(object): def __init__(self): self._data = Data() def __repr__(self): s = '%d rows.' % len(self.get_data()) if len(self.get_data()): s += '\nE.g: %s' % str(self.get_data()[0]) return s def __len__(self): return len(self.get_data()) def get_data(self): return self._data def set_data(self, data): self._data = data def add_tuple(self, tuple): self.get_data().add_tuple(tuple) def load_data(self, filename, sep='\t', format={'value':0, 'row':1, 'col':2}): self._data.load_file(filename, sep, format) def compute(self): if not self._data.get(): raise ValueError('No data set. Matrix is empty!')
print len(r_info),r_info[1:10] value = RMSE(r_info).compute() print value def test_itembased(train,test,data): itembased = ItemBased() itembased.set_data(train) itembased.compute(num = 100) ITEMID = 1 USERID = 1 #print svd.predict(ITEMID, USERID, MIN_RATING, MAX_RATING) print itembased.recommend(USERID, is_row=False) #cols are users and rows are items, thus we set is_row=False print itembased.recommend(ITEMID) data = Data() data.load_file(path='../../data/ratings.dat',sep='::' , format={'col':0, 'row':1,'value':2, 'ids': int}) print len(data.get()) train,test = data.split_train_test(percent = 100) #test_svd(train,test,data) test_itembased(train,test,data)