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 detransform
. 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 paraiterated_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
Ajusta el modelo FactorAnalysis a X utilizando un enfoque basado en SVD
Ajusta a los datos y luego los transforma.
Calcula la covarianza de los datos con el modelo FactorAnalysis.
Obtiene los parámetros para este estimador.
Calcula la matriz de precisión de los datos con el modelo FactorAnalysis.
Calcula el promedio del logaritmo de la verosimilitud de todas las muestras
Calcula el logaritmo de la verosimilitud de cada muestra
Establece los parámetros de este estimador.
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
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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.