Python中的主成分分析實例
主成分分析(Principal Component Analysis,PCA)是一種常用於資料降維的方法,可以將高維度資料降維至低維度,保留盡可能多的數據變異資訊。 Python提供了許多實作PCA的函式庫和工具,本文就透過一個實例來介紹如何使用Python中的sklearn函式庫實作PCA。
首先,我們需要準備一個資料集。本文將使用Iris資料集,該資料集包含150個樣本數據,每個樣本都有4個特徵值(花萼的長度和寬度、花瓣的長度和寬度),以及一個標籤(鳶尾花的類型)。我們的目標是將這4個特徵進行降維,找到最重要的主成分。
首先,我們需要導入必要的函式庫和資料集。
from sklearn.datasets import load_iris from sklearn.decomposition import PCA import matplotlib.pyplot as plt iris = load_iris() X = iris.data y = iris.target
現在我們可以建立一個PCA物件並應用它。
pca = PCA(n_components=2) X_pca = pca.fit_transform(X)
這裡的PCA物件設定n_components=2,表示我們只想在二維平面上展示我們處理後的資料。我們將fit_transform應用於原始資料X,取得處理後的資料集X_pca。
現在我們可以繪製結果圖。
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y) plt.xlabel('Component 1') plt.ylabel('Component 2') plt.show()
在這個圖中,我們可以看到Iris資料集在降維後的二維空間中的分佈。每個點都表示一個鳶尾花的樣本,顏色表示鳶尾花的類型。
現在讓我們來看看主成分應該是什麼。
print(pca.components_)
這會輸出兩個向量,分別稱為「成分1」和「成分2」。
[[ 0.36158968 -0.08226889 0.85657211 0.35884393]
[-0.65653988 -0.72971237 0.1757674 0.1757674 0.07]。換句話說,我們可以將主成分看作是用於線性組合原始特徵的向量。結果中的每個向量都是單位向量。
我們也可以查看每個成分解釋的資料變異量。
print(pca.explained_variance_ratio_)
這個輸出會顯示每個成分解釋的資料變異量的比例。
[0.92461621 0.05301557]
我們可以看到,這兩個成分總共解釋了資料中94%的變異量。這意味著我們可以非常準確地捕捉數據的特徵。
有一件事要注意,PCA會將所有特徵從原始資料中刪除。因此,如果我們需要保留某些特徵,我們需要在應用PCA之前手動刪除它們。
這就是如何使用Python中的sklearn函式庫實作PCA的實例。 PCA可應用於所有類型的數據,幫助我們從高維度數據中發現最重要的成分。如果您可以理解本文中的程式碼,你也就會有能力在您自己的資料集上應用PCA了。
以上是Python中的主成分分析實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!