- Scikit Learn 教程
- Scikit Learn - 首頁
- Scikit Learn - 簡介
- Scikit Learn - 建模過程
- Scikit Learn - 資料表示
- Scikit Learn - 估計器API
- Scikit Learn - 約定
- Scikit Learn - 線性建模
- Scikit Learn - 擴充套件線性建模
- 隨機梯度下降
- Scikit Learn - 支援向量機
- Scikit Learn - 異常檢測
- Scikit Learn - K近鄰
- Scikit Learn - KNN學習
- 使用樸素貝葉斯進行分類
- Scikit Learn - 決策樹
- 隨機決策樹
- Scikit Learn - 整合方法
- Scikit Learn - 聚類方法
- 聚類效能評估
- 使用PCA進行降維
- Scikit Learn 有用資源
- Scikit Learn - 快速指南
- Scikit Learn - 有用資源
- Scikit Learn - 討論
Scikit Learn - 使用PCA進行降維
降維是一種無監督機器學習方法,用於減少每個資料樣本的特徵變數的數量,選擇一組主要特徵。主成分分析 (PCA) 是降維的常用演算法之一。
精確PCA
主成分分析 (PCA) 用於使用資料的奇異值分解 (SVD) 進行線性降維,以將其投影到低維空間。在使用PCA進行分解時,在應用SVD之前,輸入資料以每個特徵為中心,但未縮放。
Scikit-learn ML 庫提供sklearn.decomposition.PCA模組,該模組作為轉換器物件實現,在其fit()方法中學習n個元件。它也可以用於新資料,以將其投影到這些元件上。
示例
下面的示例將使用sklearn.decomposition.PCA模組從Pima印第安人糖尿病資料集找到最佳的5個主成分。
from pandas import read_csv
from sklearn.decomposition import PCA
path = r'C:\Users\Leekha\Desktop\pima-indians-diabetes.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', ‘class']
dataframe = read_csv(path, names = names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
pca = PCA(n_components = 5)
fit = pca.fit(X)
print(("Explained Variance: %s") % (fit.explained_variance_ratio_))
print(fit.components_)
輸出
Explained Variance: [0.88854663 0.06159078 0.02579012 0.01308614 0.00744094] [ [-2.02176587e-03 9.78115765e-02 1.60930503e-02 6.07566861e-029.93110844e-01 1.40108085e-02 5.37167919e-04 -3.56474430e-03] [-2.26488861e-02 -9.72210040e-01 -1.41909330e-01 5.78614699e-029.46266913e-02 -4.69729766e-02 -8.16804621e-04 -1.40168181e-01] [-2.24649003e-02 1.43428710e-01 -9.22467192e-01 -3.07013055e-012.09773019e-02 -1.32444542e-01 -6.39983017e-04 -1.25454310e-01] [-4.90459604e-02 1.19830016e-01 -2.62742788e-01 8.84369380e-01-6.55503615e-02 1.92801728e-01 2.69908637e-03 -3.01024330e-01] [ 1.51612874e-01 -8.79407680e-02 -2.32165009e-01 2.59973487e-01-1.72312241e-04 2.14744823e-02 1.64080684e-03 9.20504903e-01] ]
增量PCA
增量主成分分析 (IPCA) 用於解決主成分分析 (PCA) 最大的侷限性,即PCA僅支援批處理,這意味著要處理的所有輸入資料都應適合記憶體。
Scikit-learn ML 庫提供sklearn.decomposition.IPCA模組,該模組可以透過在其partial_fit方法上對順序獲取的資料塊進行操作,或者透過啟用np.memmap(記憶體對映檔案)的使用(而無需將整個檔案載入到記憶體中)來實現 Out-of-Core PCA。
與PCA相同,在使用IPCA進行分解時,在應用SVD之前,輸入資料以每個特徵為中心,但未縮放。
示例
下面的示例將在Sklearn數字資料集上使用sklearn.decomposition.IPCA模組。
from sklearn.datasets import load_digits from sklearn.decomposition import IncrementalPCA X, _ = load_digits(return_X_y = True) transformer = IncrementalPCA(n_components = 10, batch_size = 100) transformer.partial_fit(X[:100, :]) X_transformed = transformer.fit_transform(X) X_transformed.shape
輸出
(1797, 10)
在這裡,我們可以對較小的資料批次進行部分擬合(就像我們對每個批次進行100次擬合一樣),或者您可以讓fit()函式將資料劃分為批次。
核PCA
核主成分分析是PCA的擴充套件,它使用核函式實現非線性降維。它支援transform和inverse_transform。
Scikit-learn ML 庫提供sklearn.decomposition.KernelPCA模組。
示例
下面的示例將在Sklearn數字資料集上使用sklearn.decomposition.KernelPCA模組。我們正在使用sigmoid核函式。
from sklearn.datasets import load_digits from sklearn.decomposition import KernelPCA X, _ = load_digits(return_X_y = True) transformer = KernelPCA(n_components = 10, kernel = 'sigmoid') X_transformed = transformer.fit_transform(X) X_transformed.shape
輸出
(1797, 10)
使用隨機SVD的PCA
使用隨機SVD的主成分分析 (PCA) 用於將資料投影到低維空間,同時保留大部分方差,方法是丟棄與較低奇異值相關的元件的奇異向量。在這裡,sklearn.decomposition.PCA模組以及可選引數svd_solver='randomized'將非常有用。
示例
下面的示例將使用sklearn.decomposition.PCA模組以及可選引數svd_solver='randomized'從Pima印第安人糖尿病資料集找到最佳的7個主成分。
from pandas import read_csv
from sklearn.decomposition import PCA
path = r'C:\Users\Leekha\Desktop\pima-indians-diabetes.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(path, names = names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
pca = PCA(n_components = 7,svd_solver = 'randomized')
fit = pca.fit(X)
print(("Explained Variance: %s") % (fit.explained_variance_ratio_))
print(fit.components_)
輸出
Explained Variance: [8.88546635e-01 6.15907837e-02 2.57901189e-02 1.30861374e-027.44093864e-03 3.02614919e-03 5.12444875e-04] [ [-2.02176587e-03 9.78115765e-02 1.60930503e-02 6.07566861e-029.93110844e-01 1.40108085e-02 5.37167919e-04 -3.56474430e-03] [-2.26488861e-02 -9.72210040e-01 -1.41909330e-01 5.78614699e-029.46266913e-02 -4.69729766e-02 -8.16804621e-04 -1.40168181e-01] [-2.24649003e-02 1.43428710e-01 -9.22467192e-01 -3.07013055e-012.09773019e-02 -1.32444542e-01 -6.39983017e-04 -1.25454310e-01] [-4.90459604e-02 1.19830016e-01 -2.62742788e-01 8.84369380e-01-6.55503615e-02 1.92801728e-01 2.69908637e-03 -3.01024330e-01] [ 1.51612874e-01 -8.79407680e-02 -2.32165009e-01 2.59973487e-01-1.72312241e-04 2.14744823e-02 1.64080684e-03 9.20504903e-01] [-5.04730888e-03 5.07391813e-02 7.56365525e-02 2.21363068e-01-6.13326472e-03 -9.70776708e-01 -2.02903702e-03 -1.51133239e-02] [ 9.86672995e-01 8.83426114e-04 -1.22975947e-03 -3.76444746e-041.42307394e-03 -2.73046214e-03 -6.34402965e-03 -1.62555343e-01] ]