def fit()

in src/sagemaker_sklearn_extension/decomposition/robust_pca.py [0:0]


    def fit(self, X, y=None):
        """Fit the model with X.

        Parameters
        ----------
        X : array-like, shape (n_samples, n_features)
            Training data.

        Returns
        -------
        self : RobustPCA
        """
        X = check_array(X, accept_sparse=True, dtype=None)

        # if input dimension is less than or equal to target dimension, no reduction will be performed
        if X.shape[1] <= self.n_components:
            self.robust_pca_ = None
            return self

        # fit for sparse or dense input
        if issparse(X):
            algorithm = self.svd_solver if self.svd_solver == "arpack" else "randomized"
            n_iter = self.iterated_power if self.iterated_power != "auto" else 5

            self.robust_pca_ = TruncatedSVD(
                n_components=self.n_components,
                algorithm=algorithm,
                n_iter=n_iter,
                random_state=self.random_state,
                tol=self.tol,
            )
        else:
            self.robust_pca_ = PCA(
                n_components=self.n_components,
                svd_solver=self.svd_solver,
                tol=self.tol,
                iterated_power=self.iterated_power,
                random_state=self.random_state,
            )

        self.robust_pca_.fit(X)
        return self