rfflearn_logo

rfflearn.cpu.RFFPCA

Principal Component Analysis with random Fourier features.

def rfflearn.cpu.RFFPCA(self, n_components=None, dim_kernel=128, std_kernel=0.1, W=None, b=None, **args)

Parameters:

n_components: int, default=None

The number of components to be kept.

dim_kernel: int, default=128

Dimension of the random matrix.

std_kernel: float, defualt=0.1

Standard deviation of the random matrix.

W: np.ndarray, default=None

Random matrix for the input X. If None then generated automatically.

b: np.ndarray, default=None

Random bias for the input X. If None then generated automatically.

args: dict, defualt={}

Extra arguments. This dictionaly will be unpacked and passed to PCA class constructor of scikit-learn.

Attributes:

dim: int

Dimension of the random matrix.

s_k: float

Standard deviation of the random matrix.

mat: Callable

A function to generate the random matrix W.

W: np.ndarray

Random matrix for the input X.

b: np.ndarray

Random bias for the input X.

pca: sklearn.decomposition.PCA

PCA model instance.

Member functions

def get_covariance(self)

Wrapper function of sklearn.decomposition.PCA.get_covariance.

Returnd:

np.ndarray

Estimated covariance matrix of data with shape (n_features, n_features).

def get_precision(self)

Wrapper function of sklearn.decomposition.PCA.get_precision.

Returnd:

np.ndarray

Estimated precision matrix of data with shape (n_features, n_features).

def fit(self, X, *pargs, **kwargs)

Trains the PCA model. This function is a wrapper of sklearn.decomposition.PCA.fit.

Parameters:

X: np.ndarray

Input matrix with shape (n_samples, n_features_input).

pargs: tuple

Extra positional arguments. This will be passed to fit function of sklearn's PCA model.

kwargs: dict

Extra keywork arguments. This will be passed to fit function of sklearn's PCA model.

Returnd:

rfflearn.cpu.PCA

Fitted estimator.

def fit_transform(self, X, *pargs, **kwargs)

Wrapper function of sklearn.decomposition.PCA.fit_transform.

Parameters:

X: np.ndarray

Input matrix with shape (n_samples, n_features_input).

pargs: tuple

Extra positional arguments. This will be passed to fit_transform function of sklearn's PCA model.

kwargs: dict

Extra keywork arguments. This will be passed to fit_transform function of sklearn's PCA model.

Returnd:

np.ndarray

Transformed X.

def score(self, X, *pargs, **kwargs)

Wrapper function of sklearn.decomposition.PCA.score.

Parameters:

X, np.ndarray

Input matrix with shape (n_samples, n_features_input).

pargs: tuple

Extra positional arguments. This will be passed to score function of sklearn's PCA model.

kwargs: dict

Extra keywork arguments. This will be passed to score function of sklearn's PCA model.

Returnd:

float

The average log-likelihood of all samples.

def score_samples(self, X, *pargs, **kwargs)

Wrapper function of sklearn.decomposition.PCA.score_samples.

Parameters:

X: np.ndarray

Input matrix with shape (n_samples, n_features_input).

pargs: tuple

Extra positional arguments. This will be passed to score function of sklearn's PCA model.

kwargs: dict

Extra keywork arguments. This will be passed to score function of sklearn's PCA model.

Returnd:

np.ndarray

The log-likelihood of each sample with shape (n_samples,).

def transform(self, X, *pargs, **kwargs)

Wrapper function of sklearn.decomposition.PCA.transform.

Parameters:

X: np.ndarray

Input matrix with shape (n_samples, n_features_input).

pargs: tuple

Extra positional arguments. This will be passed to score function of sklearn's PCA model.

kwargs:dict

Extra keywork arguments. This will be passed to score function of sklearn's PCA model.

Returnd:

np.ndarray

Transformed X.

Minimal Example

>>> import numpy as np                                  # Import Numpy
>>> import rfflearn.cpu as rfflearn                     # Import module
>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])  # Define input data
>>> pca = rfflearn.RFFPCA(n_components=1).fit(X)        # Training (on CPU)
>>> pca.transform(X)                                    # Transform (on CPU)
array([[-1.5231749 ],
       [-2.37334318],
       [ 1.5231749 ],
       [ 2.37334318]])