有问题的部分是:
self.H = np.multiply(self.H, np.divide(np.matmul(preprocessing.normalize(self.W).T, np.multiply(self.X, np.power(self.A, self.beta - 2)))), np.matmul(self.W.T, np.power(self.A, self.beta - 1)) + self.sparsity)
A、W、H 是 Panda 数据帧。Beta 和稀疏度是整数。
它们的初始化是:
self.W = pd.DataFrame(np.random.randint(100,size=(self.X.shape[0], self.K)))
self.H = pd.DataFrame(np.random.randint(0,100,size=(self.K, self.X.shape[1])))
self.W = preprocessing.normalize(self.W)
self.A = self.W.dot(self.H)