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)
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] (150, 4) (150, 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')
Text(0, 0.5, 'Componente pca 2')
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()
0.7163421126838476
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')
Text(0, 0.5, 'Componente pca 2')
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')
Text(0, 0.5, 'Componente pca 2')