我的數據集有1000個輸入和6個功能的訓練集。 (數據集大小爲1000 * 6)。我將KPCA應用於數據集,並將特徵數量減少到3.這意味着eignvector矩陣的維數現在是1000 * 3。我使用簡化的數據集來訓練神經網絡。現在,訓練完網絡後,讓我們想象一下我想分類一個新的數據(其大小爲1 * 6)。顯然我必須將其轉換爲1 * 3的數據,然後將其呈現給網絡,但我不知道該怎麼做?如何使用具有神經網絡的內核PCA
0
A
回答
0
您需要將數據投影到縮小的空間上。究竟如何 - 在Python和依賴於特定的實現KPCA,例如scikit學習,你會做
[...]
kpca = KPCA(n_components=3)
kpca.fit(X_train)
[...]
reduced_new_point = kpca.transform(new_point)
和一般你有每個特徵值和i
你的投影連接乘數alpha序列個本徵向量是
P(x, i) = SUM alpha^{i}_j K(x_j, x)
其中alpha^{i}_j
是j
訓練樣本的coeffient爲i
特徵向量,x_j
是第j個訓練樣本和K
是內核使用。
1
核PCA開始通過與項計算內核矩陣K
K_{ij} = KernelFunction(x_i, x_j).
K
是在你的情況下,1000 x 1000
矩陣。接下來,一個對角化矩陣,得到分解
K = W S W^T
(在實踐中,作爲通向更小的尺寸將執行雙PCA,但這裏不是重要的,因爲你已經獲得的減少)。
現在減少數據集僅對應於特徵向量S
的對角矩陣保留了三大項,並忽略所有其他( - 如果這種近似是合理的內核是精心挑選)。
有效地,這意味着,在投影矩陣W^T
僅第一L=3
行被保留。調用尺寸爲1000 x 3
的簡化矩陣W_L
。現在,「減少」的特點correspons的數量與矩陣
K_L = K W_L
,其除了具有尺寸1000 x 3
工作。這些行被用作訓練神經網絡的輸入。
讓我們來看看你的問題:如何看待一個新的特徵向量y
?
- 首先,計算與元件
k_i = KernelFunction(x_i, y)
向量k
。 - 其次,映射該向量到子空間KPCA通過計算
k_L = k W_L
- 這是維1 x 3
的向量。 - 最後,飼料矢量
k_L
到你的神經網絡,並使用了預測。
相關問題
- 1. 如何使用神經網絡與simulink和神經網絡工具箱
- 2. 具有兩個神經元的神經網絡
- 3. 神經網絡
- 4. 神經網絡
- 5. 的神經網絡
- 6. 神經網絡輸出的精度 - Matlab神經網絡工具箱
- 7. Matlab中的神經網絡工具
- 8. 神經網絡[ocr]
- 9. 神經網絡,python
- 10. MATLAB神經網絡
- 11. 神經網絡backpropogation
- 12. 神經網絡:「InverseLayer」
- 13. SOM - 神經網絡
- 14. sigmoid神經網絡
- 15. Spiking神經網絡
- 16. H2O.deeplearning神經網絡
- 17. 神經網絡MNIST
- 18. Hopfield神經網絡
- 19. RBF神經網絡
- 20. matlab神經網絡工具箱
- 21. Matlab 7.0.4神經網絡工具教程
- 22. C#中的神經網絡使用NeuronDotNet
- 23. 使用神經網絡的OCR
- 24. 使用opencv 3.1.0的神經網絡
- 25. 如何在神經網絡中找到神經元的值
- 26. 實現偏倚神經網絡神經網絡
- 27. 迴歸神經網絡是一個神經網絡鏈嗎?
- 28. 的BP神經網絡
- 29. VB中的神經網絡
- 30. 神經網絡的實現