diff --git a/pyod/models/kpca.py b/pyod/models/kpca.py index 02d081ff7439afd6eace950b677b995e92375cc9..66be544868ca3e56c0474ae21f7ea1655153877c 100644 --- a/pyod/models/kpca.py +++ b/pyod/models/kpca.py @@ -10,30 +10,30 @@ from sklearn.decomposition import KernelPCA from sklearn.utils import check_array, check_random_state from sklearn.utils.validation import check_is_fitted -from .base import BaseDetector from ..utils.utility import check_parameter +from .base import BaseDetector class PyODKernelPCA(KernelPCA): """A wrapper class for KernelPCA class of scikit-learn.""" def __init__( - self, - n_components=None, - kernel="rbf", - gamma=None, - degree=3, - coef0=1, - kernel_params=None, - alpha=1.0, - fit_inverse_transform=False, - eigen_solver="auto", - tol=0, - max_iter=None, - remove_zero_eig=False, - copy_X=True, - n_jobs=None, - random_state=None, + self, + n_components=None, + kernel="rbf", + gamma=None, + degree=3, + coef0=1, + kernel_params=None, + alpha=1.0, + fit_inverse_transform=False, + eigen_solver="auto", + tol=0, + max_iter=None, + remove_zero_eig=False, + copy_X=True, + n_jobs=None, + random_state=None, ): super().__init__( kernel=kernel, @@ -198,30 +198,41 @@ class KPCA(BaseDetector): """ def __init__( - self, - contamination=0.1, - n_components=None, - n_selected_components=None, - kernel="rbf", - gamma=None, - degree=3, - coef0=1, - kernel_params=None, - alpha=1.0, - eigen_solver="auto", - tol=0, - max_iter=None, - remove_zero_eig=False, - copy_X=True, - n_jobs=None, - sampling=False, - subset_size=20, - random_state=None, + self, + contamination=0.1, + n_components=None, + n_selected_components=None, + kernel="rbf", + gamma=None, + degree=3, + coef0=1, + kernel_params=None, + alpha=1.0, + eigen_solver="auto", + tol=0, + max_iter=None, + remove_zero_eig=False, + copy_X=True, + n_jobs=None, + sampling=False, + subset_size=20, + random_state=None, ): super().__init__(contamination=contamination) self.n_components = n_components self.n_selected_components = n_selected_components - self.copy_x = copy_X + self.kernel = kernel + self.gamma = gamma + self.degree = degree + self.coef0 = coef0 + self.kernel_params = kernel_params + self.alpha = alpha + self.eigen_solver = eigen_solver + self.tol = tol + self.max_iter = max_iter + self.remove_zero_eig = remove_zero_eig + self.copy_X = copy_X + self.n_jobs = n_jobs self.sampling = sampling self.subset_size = subset_size self.random_state = check_random_state(random_state) @@ -229,20 +240,21 @@ class KPCA(BaseDetector): self.n_selected_components_ = None self.kpca = PyODKernelPCA( - n_components=n_components, - kernel=kernel, - gamma=gamma, - degree=degree, - coef0=coef0, - kernel_params=kernel_params, - alpha=alpha, + n_components=self.n_components, + kernel=self.kernel, + gamma=self.gamma, + degree=self.degree, + coef0=self.coef0, + kernel_params=self.kernel_params, + alpha=self.alpha, fit_inverse_transform=False, - eigen_solver=eigen_solver, - tol=tol, - max_iter=max_iter, - remove_zero_eig=remove_zero_eig, - copy_X=copy_X, - n_jobs=n_jobs, + eigen_solver=self.eigen_solver, + tol=self.tol, + max_iter=self.max_iter, + remove_zero_eig=self.remove_zero_eig, + copy_X=self.copy_X, + n_jobs=self.n_jobs, + random_state=self.random_state, ) def _check_subset_size(self, array): @@ -283,7 +295,7 @@ class KPCA(BaseDetector): """ # validate inputs X and y (optional) - X = check_array(X, copy=self.copy_x) + X = check_array(X, copy=self.copy_X) self._set_n_classes(y) # perform subsampling to reduce time complexity