#!/usr/bin/env python # coding: utf-8 # PCA # == # In[1]: import sklearn import mglearn from sklearn import datasets import matplotlib.pyplot as plt from sklearn.decomposition import PCA iris = datasets.load_iris() print(iris.feature_names) datos = iris.data mglearn.plots.plot_pca_illustration() pca=PCA(n_components=2) pca.fit(iris.data) transformada=pca.transform(datos) print(iris.data.shape) print(transformada.shape) # In[2]: mglearn.discrete_scatter(transformada[:,0], transformada[:,1], iris.target) plt.legend(iris.target_names, loc='lower right') plt.xlabel('Componente pca 1') plt.ylabel('Componente pca 2') # Comparamos los datos transformados por pca # == # In[3]: import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn import datasets from sklearn import metrics iris = datasets.load_iris() datos = iris.data etiquetas = iris.target k_means = KMeans(n_clusters=3, max_iter=2000) k_means.fit(transformada) predicciones=k_means.predict(transformada) score=metrics.adjusted_rand_score(etiquetas, predicciones) print(score) plt.scatter(transformada[:, 0], transformada[:, 1], c=predicciones) plt.show() # In[4]: from sklearn.preprocessing import MinMaxScaler escala=MinMaxScaler() escala.fit(iris.data) escalada=escala.transform(iris.data) pca.fit(escalada) transformada=pca.transform(escalada) mglearn.discrete_scatter(transformada[:,0], transformada[:,1], iris.target) plt.legend(iris.target_names, loc='lower right') plt.xlabel('Componente pca 1') plt.ylabel('Componente pca 2') # In[5]: from sklearn.preprocessing import StandardScaler escala=StandardScaler() escala.fit(iris.data) escalada=escala.transform(iris.data) pca.fit(escalada) transformada=pca.transform(escalada) mglearn.discrete_scatter(transformada[:,0], transformada[:,1], iris.target) plt.legend(iris.target_names, loc='lower right') plt.xlabel('Componente pca 1') plt.ylabel('Componente pca 2')