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_
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);
...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_
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_