上篇博客中,我們介紹了並用代碼實現了PCA算法,本篇博客我們應用PCA算法對鳶尾花數據集降維,並可視化。
鳶尾花數據集簡介
代碼實現
代碼來自MOOC網的《Python機器學習應用》課程。
import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.datasets import load_iris data = load_iris() # 以字典形式加載鳶尾花數據集 y = data.target # 使用y表示數據集中的標簽 X = data.data # 使用X表示數據集中的屬性數據 pca = PCA(n_components=2) # 加載PCA算法,設置降維后主成分數目為2 reduced_X = pca.fit_transform(X) # 對原始數據進行降維,保存在reduced_X中 red_x, red_y = [], [] # 第一類數據點 blue_x, blue_y = [], [] # 第二類數據點 green_x, green_y = [], [] # 第三類數據點 for i in range(len(reduced_X)): # 按照鳶尾花的類別將降維后的數據點保存在不同的列表中。 if y[i] == 0: red_x.append(reduced_X[i][0]) red_y.append(reduced_X[i][1]) elif y[i] == 1: blue_x.append(reduced_X[i][0]) blue_y.append(reduced_X[i][1]) else: green_x.append(reduced_X[i][0]) green_y.append(reduced_X[i][1]) plt.scatter(red_x, red_y, c='r', marker='x') plt.scatter(blue_x, blue_y, c='b', marker='D') plt.scatter(green_x, green_y, c='g', marker='.') plt.show()
運行結果:
參考資料
[1] 鳶尾花數據集