Source code for DashAI.back.converters.scikit_learn.incremental_pca

from sklearn.decomposition import IncrementalPCA as IncrementalPCAOperation

from DashAI.back.converters.category.dimensionality_reduction import (
    DimensionalityReductionConverter,
)
from DashAI.back.converters.sklearn_wrapper import SklearnWrapper
from DashAI.back.core.schema_fields import (
    bool_field,
    int_field,
    none_type,
    schema_field,
)
from DashAI.back.core.schema_fields.base_schema import BaseSchema
from DashAI.back.core.utils import MultilingualString


class IncrementalPCASchema(BaseSchema):
    n_components: schema_field(
        none_type(int_field(ge=1)),
        2,
        description=MultilingualString(
            en="Number of components to keep.",
            es="Número de componentes a conservar.",
        ),
    )  # type: ignore
    whiten: schema_field(
        bool_field(),
        False,
        description=MultilingualString(
            en=(
                "When True the components_ are scaled to ensure uncorrelated "
                "outputs with unit variances."
            ),
            es=(
                "Cuando es True las componentes se escalan para asegurar salidas "
                "no correlacionadas con varianzas unitarias."
            ),
        ),
    )  # type: ignore
    use_copy: schema_field(
        bool_field(),
        True,
        description=MultilingualString(
            en=(
                "If False, data passed to fit are overwritten. Use "
                "fit_transform(X) instead."
            ),
            es=(
                "Si es False, los datos pasados a fit se sobrescriben. Usa "
                "fit_transform(X) en su lugar."
            ),
        ),
        alias=MultilingualString(en="copy", es="copiar"),
    )  # type: ignore
    batch_size: schema_field(
        none_type(int_field(ge=1)),
        None,
        description=MultilingualString(
            en="The number of samples to use for each batch.",
            es="Número de muestras a usar por lote.",
        ),
    )  # type: ignore


[docs] class IncrementalPCA( DimensionalityReductionConverter, SklearnWrapper, IncrementalPCAOperation ): """Scikit-learn's IncrementalPCA wrapper for DashAI.""" SCHEMA = IncrementalPCASchema DESCRIPTION = MultilingualString( en=( "Incremental PCA (IPCA) is typically used as a replacement for PCA " "when the dataset is too large to fit in memory." ), es=( "El PCA incremental (IPCA) se usa típicamente como reemplazo de PCA " "cuando el conjunto de datos es demasiado grande para caber en memoria." ), ) SHORT_DESCRIPTION = MultilingualString( en="Dimensionality reduction using Incremental PCA.", es="Reducción de dimensionalidad usando PCA incremental.", ) DISPLAY_NAME = MultilingualString(en="Incremental PCA", es="PCA Incremental") IMAGE_PREVIEW = "incremental_pca.png"