Skip to main content

cuvsPcaFit

Function cuvsPcaFit 

Source
pub unsafe extern "C" fn cuvsPcaFit(
    res: cuvsResources_t,
    params: cuvsPcaParams_t,
    input: *mut DLManagedTensor,
    components: *mut DLManagedTensor,
    explained_var: *mut DLManagedTensor,
    explained_var_ratio: *mut DLManagedTensor,
    singular_vals: *mut DLManagedTensor,
    mu: *mut DLManagedTensor,
    noise_vars: *mut DLManagedTensor,
    flip_signs_based_on_U: bool,
) -> cuvsError_t
Expand description

@brief Perform PCA fit operation.

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

@code {.c} #include <cuvs/core/c_api.h> #include <cuvs/preprocessing/pca.h>

// Create cuvsResources_t cuvsResources_t res; cuvsResourcesCreate(&res);

// Create PCA params cuvsPcaParams_t params; cuvsPcaParamsCreate(&params); params->n_components = 2;

// Assume populated DLManagedTensor objects (col-major, float32, device memory) DLManagedTensor input; // [n_rows x n_cols] DLManagedTensor components; // [n_components x n_cols] DLManagedTensor explained_var; // [n_components] DLManagedTensor explained_var_ratio; // [n_components] DLManagedTensor singular_vals; // [n_components] DLManagedTensor mu; // [n_cols] DLManagedTensor noise_vars; // [1] (scalar)

cuvsPcaFit(res, params, &input, &components, &explained_var, &explained_var_ratio, &singular_vals, &mu, &noise_vars, false);

// Cleanup cuvsPcaParamsDestroy(params); cuvsResourcesDestroy(res); @endcode

@param[in] res cuvsResources_t opaque C handle @param[in] params PCA parameters @param[inout] input input data [n_rows x n_cols] (col-major, float32, device) @param[out] components principal components [n_components x n_cols] (col-major, float32, device) @param[out] explained_var explained variances [n_components] (float32, device) @param[out] explained_var_ratio explained variance ratios [n_components] (float32, device) @param[out] singular_vals singular values [n_components] (float32, device) @param[out] mu column means [n_cols] (float32, device) @param[out] noise_vars noise variance [1] (float32, device) @param[in] flip_signs_based_on_U whether to determine signs by U (true) or V.T (false) @return cuvsError_t