PCA

View as Markdown

Source header: cuvs/preprocessing/pca.hpp

Types

preprocessing::pca::params

Parameters for PCA decomposition. Ref:

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

1struct params { ... };

Fields

NameTypeDescription
n_componentsintNumber of components to keep.
copyboolIf false, data passed to fit are overwritten and running fit(X).transform(X) will not yield the expected results, use fit_transform(X) instead.
whitenboolWhen true (false by default) the components vectors are multiplied by the square root of n_samples and then divided by the singular values to ensure uncorrelated outputs with unit component-wise variances.
algorithmsolverThe solver algorithm to use.
tolfloatTolerance for singular values computed by svd_solver == ‘arpack’ or the Jacobi solver.
n_iterationsintNumber of iterations for the power method computed by the Jacobi solver.

PCA (Principal Component Analysis)

preprocessing::pca::fit

Perform PCA fit operation.

1void fit(raft::resources const& handle,
2const params& config,
3raft::device_matrix_view<float, int64_t, raft::col_major> input,
4raft::device_matrix_view<float, int64_t, raft::col_major> components,
5raft::device_vector_view<float, int64_t> explained_var,
6raft::device_vector_view<float, int64_t> explained_var_ratio,
7raft::device_vector_view<float, int64_t> singular_vals,
8raft::device_vector_view<float, int64_t> mu,
9raft::device_scalar_view<float, int64_t> noise_vars,
10bool flip_signs_based_on_U = false);

Computes the principal components, explained variances, singular values, and column means from the input data.

Parameters

NameDirectionTypeDescription
handleinraft::resources const&raft resource handle
configinconst params&PCA parameters
inputinoutraft::device_matrix_view<float, int64_t, raft::col_major>input data [n_rows x n_cols] (col-major). Modified temporarily.
componentsoutraft::device_matrix_view<float, int64_t, raft::col_major>principal components [n_components x n_cols] (col-major)
explained_varoutraft::device_vector_view<float, int64_t>explained variances [n_components]
explained_var_ratiooutraft::device_vector_view<float, int64_t>explained variance ratios [n_components]
singular_valsoutraft::device_vector_view<float, int64_t>singular values [n_components]
muoutraft::device_vector_view<float, int64_t>column means [n_cols]
noise_varsoutraft::device_scalar_view<float, int64_t>noise variance (scalar)
flip_signs_based_on_Uinboolwhether to determine signs by U (true) or V.T (false) Default: false.

Returns

void

preprocessing::pca::fit_transform

Perform PCA fit and transform operations.

1void fit_transform(raft::resources const& handle,
2const params& config,
3raft::device_matrix_view<float, int64_t, raft::col_major> input,
4raft::device_matrix_view<float, int64_t, raft::col_major> trans_input,
5raft::device_matrix_view<float, int64_t, raft::col_major> components,
6raft::device_vector_view<float, int64_t> explained_var,
7raft::device_vector_view<float, int64_t> explained_var_ratio,
8raft::device_vector_view<float, int64_t> singular_vals,
9raft::device_vector_view<float, int64_t> mu,
10raft::device_scalar_view<float, int64_t> noise_vars,
11bool flip_signs_based_on_U = false);

Computes the principal components and transforms the input data into the eigenspace in a single operation.

Parameters

NameDirectionTypeDescription
handleinraft::resources const&raft resource handle
configinconst params&PCA parameters
inputinoutraft::device_matrix_view<float, int64_t, raft::col_major>input data [n_rows x n_cols] (col-major). Modified temporarily.
trans_inputoutraft::device_matrix_view<float, int64_t, raft::col_major>transformed data [n_rows x n_components] (col-major)
componentsoutraft::device_matrix_view<float, int64_t, raft::col_major>principal components [n_components x n_cols] (col-major)
explained_varoutraft::device_vector_view<float, int64_t>explained variances [n_components]
explained_var_ratiooutraft::device_vector_view<float, int64_t>explained variance ratios [n_components]
singular_valsoutraft::device_vector_view<float, int64_t>singular values [n_components]
muoutraft::device_vector_view<float, int64_t>column means [n_cols]
noise_varsoutraft::device_scalar_view<float, int64_t>noise variance (scalar)
flip_signs_based_on_Uinboolwhether to determine signs by U (true) or V.T (false) Default: false.

Returns

void

preprocessing::pca::transform

Perform PCA transform operation.

1void transform(raft::resources const& handle,
2const params& config,
3raft::device_matrix_view<float, int64_t, raft::col_major> input,
4raft::device_matrix_view<float, int64_t, raft::col_major> components,
5raft::device_vector_view<float, int64_t> singular_vals,
6raft::device_vector_view<float, int64_t> mu,
7raft::device_matrix_view<float, int64_t, raft::col_major> trans_input);

Transforms the input data into the eigenspace using previously computed principal components.

(mean-centered then restored).

Parameters

NameDirectionTypeDescription
handleinraft::resources const&raft resource handle
configinconst params&PCA parameters
inputinoutraft::device_matrix_view<float, int64_t, raft::col_major>data to transform [n_rows x n_cols] (col-major). Modified temporarily
componentsinraft::device_matrix_view<float, int64_t, raft::col_major>principal components [n_components x n_cols] (col-major)
singular_valsinraft::device_vector_view<float, int64_t>singular values [n_components]
muinraft::device_vector_view<float, int64_t>column means [n_cols]
trans_inputoutraft::device_matrix_view<float, int64_t, raft::col_major>transformed data [n_rows x n_components] (col-major)

Returns

void

preprocessing::pca::inverse_transform

Perform PCA inverse transform operation.

1void inverse_transform(raft::resources const& handle,
2const params& config,
3raft::device_matrix_view<float, int64_t, raft::col_major> trans_input,
4raft::device_matrix_view<float, int64_t, raft::col_major> components,
5raft::device_vector_view<float, int64_t> singular_vals,
6raft::device_vector_view<float, int64_t> mu,
7raft::device_matrix_view<float, int64_t, raft::col_major> output);

Transforms data from the eigenspace back to the original space.

Parameters

NameDirectionTypeDescription
handleinraft::resources const&raft resource handle
configinconst params&PCA parameters
trans_inputinraft::device_matrix_view<float, int64_t, raft::col_major>transformed data [n_rows x n_components] (col-major)
componentsinraft::device_matrix_view<float, int64_t, raft::col_major>principal components [n_components x n_cols] (col-major)
singular_valsinraft::device_vector_view<float, int64_t>singular values [n_components]
muinraft::device_vector_view<float, int64_t>column means [n_cols]
outputoutraft::device_matrix_view<float, int64_t, raft::col_major>reconstructed data [n_rows x n_cols] (col-major)

Returns

void