Pca
如何使用內核 PCA 將新向量投影到 PC 空間?
讓是數據矩陣,其中是樣本數和特徵空間的大小。
使用核 PCA (kPCA),首先計算核矩陣,然後,在其特徵向量之後已計算,可以將數據投影到第一個組件為:
在哪裡表示首先列. 等效地,在 Matlab 表示法中:
Projected_data = K*E(:,1:c);
新的預計數據現在有大小.
我想知道是否可以投影一個看不見的數據向量到先前計算的主成分上. 如果可能,正確的程序是什麼?
**讓我們首先考慮訓練數據集。**主成分(有時稱為 PC“分數”)是投影到主軸上的居中數據。在 kPCA 中,核矩陣的特徵向量直接為您提供主成分,但縮放為具有單位平方和。為了獲得正確的縮放比例,需要將它們乘以各自特徵值的平方根,所以
在哪裡和是- 核矩陣的特徵向量和特徵值:. 你在你的問題中寫錯了。 通過考慮標準的非內核 PCA 很容易看出這一點。讓成為居中的數據矩陣。PCA 相當於(中心)數據矩陣的 SVD 分解:
在哪裡是個人電腦(個人電腦“分數”)和是主軸。通常 PCA 是通過協方差矩陣的特徵分解引入的:, 其中有作為特徵向量。或者,可以考慮所謂的 Gram 矩陣其中有作為特徵向量和作為特徵值。獲取個人電腦需要將特徵向量相乘與特徵值的平方根。 kPCA 中的核矩陣就是我上面所說的 Gram 矩陣。所以底線是:將其特徵向量與其特徵值的平方根相乘。
**現在轉向您的主要問題,**您有一個新的(測試)數據點(行向量)需要投影在主軸上。當遇到有關 kPCA 的問題時,請始終考慮如何在標準 PCA 中進行處理。你需要計算. 但是說你不知道(在 kPCA 中就是這種情況)。嗯,你可以計算,它是新數據點和所有舊數據點之間的內核(行)向量。現在
用你的 kPCA 符號重寫它,在哪裡是具有特徵值的對角矩陣在對角線上。