sklearn.decomposition.FactorAnalysis

class sklearn.decomposition.FactorAnalysis

Análisis Factorial (Factor Analysis, AF).

Un modelo generativo lineal simple con variables latentes Gaussianas.

Se supone que las observaciones son causadas por una transformación lineal de factores latentes de baja dimensión y un ruido Gaussiano añadido. Sin pérdida de generalidad, los factores se distribuyen según una Gaussiana con media cero y covarianza unitaria. El ruido también es de media cero y tiene una matriz de covarianzas diagonal arbitraria.

Si restringimos aún más el modelo, suponiendo que el ruido Gaussiano es incluso isotrópico (todas las entradas diagonales son iguales) obtendríamos PPCA.

FactorAnalysis realiza una estimación de máxima verosimilitud de la llamada matriz loading (de carga), la transformación de las variables latentes a las observadas, utilizando un enfoque basado en la SVD.

Lee más en el Manual de usuario.

Nuevo en la versión 0.13.

Parámetros
n_componentsint, default=None

Dimensionalidad del espacio latente, el número de componentes de X que se obtienen después de transform. Si es None, n_components se establece en el número de características.

tolfloat, defaul=1e-2

Tolerancia de parada para el aumento del logaritmo de la verosimilitud.

copybool, default=True

Si se hace una copia de X. Si es False, la a entrada X se sobrescribe durante el ajuste.

max_iterint, default=1000

Número máximo de iteraciones.

noise_variance_initndarray de forma (n_features,), default=None

La estimación inicial de la varianza del ruido para cada característica. Si es None, el valor predeterminado es np.ones(n_features).

svd_method{“lapack”, “randomized”}, default=”randomized”

Qué método SVD utilizar. Si es “lapack” se usa la SVD estándar de scipy.linalg, si es “randomized” se usa la función rápida randomized_svd. Por defecto es “randomized”. Para la mayoría de las aplicaciones, “randomized” será suficientemente preciso y proporcionará ganancias de velocidad significativas. La precisión también puede mejorarse estableciendo valores más altos para iterated_power. Si esto no es suficiente, para obtener la máxima precisión debe elegir “lapack”.

iterated_powerint, default=3

Número de iteraciones para el método de potencia (power). 3 por defecto. Sólo se utiliza si svd_method es igual a “randomized”.

rotation{“varimax”, “quartimax”}, default=None

Si es None, aplica la rotación indicada. Actualmente, se aplican varimax y quartimax. Ver «The varimax criterion for analytic rotation in factor analysis» H. F. Kaiser, 1958.

Nuevo en la versión 0.24.

random_stateint o instancia RandomState, default=0

Sólo se utiliza cuando svd_method es igual a “randomized”. Pasa un número entero (int) para resultados reproducibles a través de múltiples llamadas a la función. Ver Glosario.

Atributos
components_ndarray de forma (n_components, n_features)

Componentes con máxima varianza.

loglike_list de forma (n_iterations,)

El logaritmo de la verosimilitud en cada iteración.

noise_variance_ndarray de forma (n_features,)

La varianza del ruido estimada para cada característica.

n_iter_int

Número de iteraciones ejecutadas.

mean_ndarray de forma (n_features,)

Media empírica por característica, estimada a partir del conjunto de entrenamiento.

Ver también

PCA

El análisis de componentes principales es también un modelo de variables lineales latentes que, sin embargo, asume una varianza del ruido igual para cada característica. Esta suposición adicional hace que el PCA probabilístico sea más rápido, ya que puede calcularse de forma cerrada.

FastICA

Análisis de componentes independientes, un modelo de variables latentes con variables latentes no Gaussianas.

Referencias

  • David Barber, Bayesian Reasoning and Machine Learning, Algorithm 21.1.

  • Christopher M. Bishop: Pattern Recognition and Machine Learning, Chapter 12.2.4.

Ejemplos

>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import FactorAnalysis
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = FactorAnalysis(n_components=7, random_state=0)
>>> X_transformed = transformer.fit_transform(X)
>>> X_transformed.shape
(1797, 7)

Métodos

fit

Ajusta el modelo FactorAnalysis a X utilizando un enfoque basado en SVD

fit_transform

Ajusta a los datos y luego los transforma.

get_covariance

Calcula la covarianza de los datos con el modelo FactorAnalysis.

get_params

Obtiene los parámetros para este estimador.

get_precision

Calcula la matriz de precisión de los datos con el modelo FactorAnalysis.

score

Calcula el promedio del logaritmo de la verosimilitud de todas las muestras

score_samples

Calcula el logaritmo de la verosimilitud de cada muestra

set_params

Establece los parámetros de este estimador.

transform

Aplica la reducción de dimensionalidad a X utilizando el modelo.

fit()

Ajusta el modelo FactorAnalysis a X utilizando un enfoque basado en SVD

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos de entrenamiento.

yIgnorado
Devuelve
self
fit_transform()

Ajusta a los datos y luego los transforma.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_covariance()

Calcula la covarianza de los datos con el modelo FactorAnalysis.

cov = components_.T * components_ + diag(noise_variance)

Devuelve
covndarray de forma (n_features, n_features)

Covarianza estimada de los datos.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Los nombres de los parámetros mapeados a sus valores.

get_precision()

Calcula la matriz de precisión de los datos con el modelo FactorAnalysis.

Devuelve
precisionndarray de forma (n_features, n_features)

Precisión estimada de los datos.

score()

Calcula el promedio del logaritmo de la verosimilitud de todas las muestras

Parámetros
Xndarray de forma (n_samples, n_features)

Los datos

yIgnorado
Devuelve
llfloat

Promedio del logaritmo de la verosimilitud de las muestras según el modelo actual

score_samples()

Calcula el logaritmo de la verosimilitud de cada muestra

Parámetros
Xndarray de forma (n_samples, n_features)

Los datos

Devuelve
llndarray de forma (n_samples,)

Logaritmo de la verosimilitud de cada muestra según el modelo actual

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Aplica la reducción de dimensionalidad a X utilizando el modelo.

Calcula la media esperada de las variables latentes. Ver Barber, 21.2.33 (o Bishop, 12.66).

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos de entrenamiento.

Devuelve
X_newndarray de forma (n_samples, n_components)

Las variables latentes de X.