MCPcopy Create free account
hub / github.com/ddbourgin/numpy-ml / _update_W

Method _update_W

numpy_ml/factorization/factors.py:262–275  ·  view source on GitHub ↗

Perform the fast HALS update for W

(self, X, W, H)

Source from the content-addressed store, hash-verified

260 return H
261
262 def _update_W(self, X, W, H):
263 """Perform the fast HALS update for W"""
264 eps = np.finfo(float).eps
265 XHt = X @ H.T # dim: (N, K)
266 HHt = H @ H.T # dim: (K, K)
267
268 for k in range(self.K):
269 W[:, k] = W[:, k] * HHt[k, k] + XHt[:, k] - W @ HHt[:, k]
270 W[:, k] = np.clip(W[:, k], eps, np.inf) # enforce nonnegativity
271
272 # renormalize the new column
273 n = np.linalg.norm(W[:, k])
274 W[:, k] /= n if n > 0 else 1.0
275 return W
276
277 def fit(self, X, W=None, H=None, n_initializations=10, verbose=False):
278 r"""

Callers 1

_fitMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected