Atributos

La clase PCA tiene varios atributos interesantes. Destaquemos algunos (los aplicaremos a la instancia pca creada en la sección anterior).

components_

El atributo components_ devuelve los vectores (representados por sus coordenadas en el espacio en el que se esté trabajando) que definen las rectas correspondientes a los componentes principales identificados:

pca.components_

array([[0.67174957, 0.74077832]])

Si mostramos este vector y lo alargamos multiplicándolo por 8, por ejemplo (en rojo en la siguiente imagen):

import matplotlib.lines as mlines
fig = plt.figure(figsize = (6, 6))
ax = plt.axes(aspect = "equal", xlim = (0, 7), ylim = (0, 7))
sns.scatterplot("sepal_length", "sepal_width", data = iris);
sns.scatterplot(iris_o_transformed[:, 0], iris_o_transformed[:, 1]);
l = mlines.Line2D([0, pca.components_[0][0] * 8], [0, pca.components_[0][1] * 8], color = "red")
ax.add_line(l);

PCA.components_

...vemos que la dirección de este vector define la dirección del primer componente principal.

Los vectores devueltos por el atributo components_ son, en realidad, los eigenvectors (también llamados vectores propios o autovectores) de la transformación realizada: vectores a los que la transformación solo modifica su módulo, no su dirección.

explained_variance_

El atributo explained_variance_ devuelve, de acuerdo a la documentación de Scikit-Learn "la cantidad de varianza explicada por cada uno de los componentes seleccionados":

pca.explained_variance_

array([0.23366074])

explained_variance_ratio_

Este atributo, nuevamente citando la documentación de Scikit-Learn devuelve "el porcentaje de varianza explicada por cada uno de los componentes seleccionados":

pca.explained_variance_ratio_

array([0.87206766])