Untitled
unknown
python
a year ago
1.7 kB
6
Indexable
class MY_SparsePCA(): def __init__(self, n_components, alpha, max_iter=1000, tol=1e-6): self.alpha = alpha self.n_components = n_components self.max_iter = max_iter self.tol = tol self.components_ = None self.error_ = None self.S = None self.Vt = None @staticmethod def soft_threshold(x, alpha): # GRADED CODE: Iterative Thresholding ### START CODE HERE ### # Soft threshold function used for SPCA. rt = None ### END CODE HERE ### return rt def fit_transform(self, x): # GRADED CODE: SPARSE PCA FITTINT FUNCTION ### START CODE HERE ### # Initialize components (5%) _, S, Vt = np.linalg.svd(x, full_matrices=False) self.components_ = None self.S = S self.Vt = Vt for iteration in tqdm(range(self.max_iter)): # Compute the transform in this iteration x_projected = None # Iterative Thresholding (update the components) (5%): self.components_ = None # Normalize components (5%) norm = None norm[norm < 1e-10] = 1.0 self.components_ /= None # SSD Check ssd = None if ssd < self.tol: break # Transform the data (5%) x_transformed = None ### END CODE HERE### return x_transformed def fit(self, x): self.fit_transform(x) return self def transform(self, x): return x@self.components_
Editor is loading...
Leave a Comment