def build_model(self, baskets, use_probabilities=False):
# print 'build V'
self.__buildV(baskets, use_probabilities)
# print 'density', 1.0 * len(self.V.nonzero()[0]) / (self.V.shape[0] * self.V.shape[1])
sknmf = SKNMF(n_components=self.n_factor, init='random', solver='cd', tol=self.tol, max_iter=self.max_iter,
alpha=self.alpha, l1_ratio=self.l1_ratio, beta=self.beta)
self.W = sknmf.fit_transform(self.V)
self.H = sknmf.components_
self.R = np.dot(self.W, self.H)
self.__state = 'built'
return self
评论列表
文章目录