Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sklearn import datasets
- from sklearn.decomposition import PCA
- from sklearn.preprocessing import scale
- from pandas import DataFrame
- iris = datasets.load_iris()
- iris = data1 = DataFrame(data= np.c_[iris['data'], iris['target']],
- columns= iris['feature_names'] + ['class'])
- def plot_pca(data,classes, classes_label=None):
- fig, (axe_2d,axe_info) = plt.subplots(1,2)
- data_scaled = scale(data)
- classes_unique = np.unique(classes)
- if classes_label is None:
- classes_label = ["Class %i" % i for i in classes_unique]
- n_axis = np.shape(data)[1]
- pca = PCA()
- x_reduced = pca.fit_transform(data_scaled)
- var = pca.explained_variance_ratio_
- cumul_prop = np.cumsum(var)
- # Plot 2D
- for class_value, class_label in zip(classes_unique,classes_label):
- selector = classes==class_value
- axe_2d.scatter(x_reduced[selector,0],x_reduced[selector,1], label=class_label)
- axe_2d.set_title("2D plot")
- axe_2d.set_xlabel("Component 1")
- axe_2d.set_xlabel("Component 2")
- axe_2d.legend()
- # Plot bar
- axe_info.bar(range(n_axis),cumul_prop)
- axe_info.set_title("Components cumulative proportion")
- axe_info.set_xlabel("Components")
- axe_info.set_xlabel("Cumulative proportion")
- for axe in (axe_2d, axe_info):
- axe.grid()
- plot_pca(iris.values[:,:-1],iris.values[:,-1])
- plt.show()
Add Comment
Please, Sign In to add comment