Saltar al contenido

Python scikit aprende pca.explained_variance_ratio_ cutoff

Este equipo especializado luego de algunos días de investigación y de juntar de datos, hemos dado con la respuesta, deseamos que te sea de utilidad para tu trabajo.

Solución:

Sí, tienes casi razón. los pca.explained_variance_ratio_ parámetro devuelve un vector de la varianza explicada por cada dimensión. De este modo pca.explained_variance_ratio_[i] da la varianza explicada únicamente por la i+1ª dimensión.

probablemente quieras hacer pca.explained_variance_ratio_.cumsum(). Eso devolverá un vector. x tal que x[i] devuelve el acumulativo varianza explicada por las primeras i+1 dimensiones.

import numpy as np
from sklearn.decomposition import PCA

np.random.seed(0)
my_matrix = np.random.randn(20, 5)

my_model = PCA(n_components=5)
my_model.fit_transform(my_matrix)

print my_model.explained_variance_
print my_model.explained_variance_ratio_
print my_model.explained_variance_ratio_.cumsum()

[ 1.50756565  1.29374452  0.97042041  0.61712667  0.31529082]
[ 0.32047581  0.27502207  0.20629036  0.13118776  0.067024  ]
[ 0.32047581  0.59549787  0.80178824  0.932976    1.        ]

Entonces, en mis datos aleatorios de juguetes, si elegí k=4 Retendría el 93,3% de la varianza.

Aunque esta pregunta tiene más de 2 años, quiero proporcionar una actualización sobre esto. Quería hacer lo mismo y parece que sklearn ahora ofrece esta función lista para usar.

Como se indica en los documentos

si 0 < n_components < 1 y svd_solver == 'completo', seleccione el número de componentes tal que la cantidad de varianza que debe explicarse sea mayor que el porcentaje especificado por n_components

Así que el código requerido es ahora

my_model = PCA(n_components=0.99, svd_solver='full')
my_model.fit_transform(my_matrix)

Aquí tienes las reseñas y puntuaciones

Si haces scroll puedes encontrar las interpretaciones de otros administradores, tú además tienes la libertad de dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *