示例#1
0
    def fit(self, ratings):
        n_users = max(imap(key_u, ratings)) + 1
        n_items = max(imap(key_i, ratings)) + 1

        mat = to_sparse(ratings,
                        shape=(n_users, n_items))
        svd = TruncatedSVD(n_components=self.K, algorithm='arpack')
        self.U = svd.fit_transform(mat)  # U.dot(Sigma)
        self.VT = svd.components_  # VT
示例#2
0
    def fit(self, ratings):
        super(SvdAvgPredictor, self).fit(ratings)

        n_users = max(imap(key_u, ratings)) + 1
        n_items = max(imap(key_i, ratings)) + 1

        offset = [(u, i, r - self.offset_user[u] - self.avg_item[i])
                  for u, i, r in ratings]

        mat = to_sparse(offset,
                        shape=(n_users, n_items))
        svd = TruncatedSVD(n_components=self.K, algorithm='arpack')
        self.U = svd.fit_transform(mat)  # U.dot(Sigma)
        self.VT = svd.components_  # VT
示例#3
0
 def __init__(self, ratings, users, items):
     self.users = {k - 1: v for k, v in users.iteritems()}
     self.items = {k - 1: v for k, v in items.iteritems()}
     self.data = [(uid - 1, iid - 1, r) for uid, iid, r in ratings]
     self.mat = to_sparse(self.data, shape=(len(users), len(items)))
     pass