Saya memiliki data.frame dengan 800 obs. dari 40 variabel, dan ingin menggunakan Analisis Komponen Prinsip untuk meningkatkan hasil prediksi saya (yang sejauh ini bekerja paling baik dengan Mesin Vector Support pada sekitar 15 variabel pilihan).
Saya mengerti prcomp dapat membantu saya meningkatkan prediksi saya, tetapi saya tidak tahu bagaimana cara menggunakan hasil dari fungsi prcomp.
Saya mendapatkan hasilnya:
> PCAAnalysis <- prcomp(TrainTrainingData, scale.=TRUE)
> summary(PCAAnalysis)
Importance of components:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 PC10 PC11 PC12 PC13 PC14
Standard deviation 1.7231 1.5802 1.3358 1.2542 1.1899 1.166 1.1249 1.1082 1.0888 1.0863 1.0805 1.0679 1.0568 1.0520
Proportion of Variance 0.0742 0.0624 0.0446 0.0393 0.0354 0.034 0.0316 0.0307 0.0296 0.0295 0.0292 0.0285 0.0279 0.0277
Cumulative Proportion 0.0742 0.1367 0.1813 0.2206 0.2560 0.290 0.3216 0.3523 0.3820 0.4115 0.4407 0.4692 0.4971 0.5248
PC15 PC16 PC17 PC18 PC19 PC20 PC21 PC22 PC23 PC24 PC25 PC26 PC27 PC28
Standard deviation 1.0419 1.0283 1.0170 1.0071 1.001 0.9923 0.9819 0.9691 0.9635 0.9451 0.9427 0.9238 0.9111 0.9073
Proportion of Variance 0.0271 0.0264 0.0259 0.0254 0.025 0.0246 0.0241 0.0235 0.0232 0.0223 0.0222 0.0213 0.0208 0.0206
Cumulative Proportion 0.5519 0.5783 0.6042 0.6296 0.655 0.6792 0.7033 0.7268 0.7500 0.7723 0.7945 0.8159 0.8366 0.8572
PC29 PC30 PC31 PC32 PC33 PC34 PC35 PC36 PC37 PC38
Standard deviation 0.8961 0.8825 0.8759 0.8617 0.8325 0.7643 0.7238 0.6704 0.60846 0.000000000000000765
Proportion of Variance 0.0201 0.0195 0.0192 0.0186 0.0173 0.0146 0.0131 0.0112 0.00926 0.000000000000000000
Cumulative Proportion 0.8773 0.8967 0.9159 0.9345 0.9518 0.9664 0.9795 0.9907 1.00000 1.000000000000000000
PC39 PC40
Standard deviation 0.000000000000000223 0.000000000000000223
Proportion of Variance 0.000000000000000000 0.000000000000000000
Cumulative Proportion 1.000000000000000000 1.000000000000000000
Saya pikir saya akan mendapatkan parameter yang paling penting untuk digunakan, tetapi saya tidak menemukan informasi ini. Yang saya lihat adalah Standar Deviasi dll pada PC. Tetapi bagaimana saya menggunakan ini untuk prediksi?
pls
(Partial Least Squares), yang memiliki alat untuk PCR ( Principal Component Regression ).Jawaban:
Sementara saya tidak yakin tentang sifat masalah Anda, saya dapat memberitahu Anda bahwa saya telah menggunakan PCA sebagai sarana untuk mengekstraksi pola dominan dalam kelompok variabel prediktor di kemudian membangun model. Dalam contoh Anda, ini akan ditemukan di komponen utama (PC)
PCAAnalysis$x
,, dan mereka akan didasarkan pada bobot variabel yang ditemukan diPCAAnalysis$rotation
. Salah satu keuntungan dari proses ini adalah bahwa PC bersifat ortogonal, dan dengan demikian Anda menghapus masalah multikolinieritas antara pemrediksi model. Yang kedua, adalah bahwa Anda mungkin dapat mengidentifikasi subset yang lebih kecil dari PC yang menangkap mayoritas varian dalam prediktor Anda. Informasi ini dapat ditemukan disummary(PCAAnalysis)
atau diPCAAnalysis$sdev
. Terakhir, jika Anda tertarik menggunakan subset PC untuk prediksi, maka Anda dapat mengaturtol
parameternyaprcomp
ke tingkat yang lebih tinggi untuk menghapus trailing PC.Sekarang, Anda dapat "memproyeksikan" data baru ke basis koordinat PCA menggunakan
predict.prcomp()
fungsi ini. Karena Anda memanggil set data Anda set data "pelatihan", ini masuk akal untuk kemudian memproyeksikan set data validasi ke PCA Anda untuk perhitungan koordinat PC masing-masing. Di bawah ini adalah contoh pemasangan PCA ke 4 pengukuran biometrik spesies iris yang berbeda (yang berkorelasi pada tingkat tertentu). Setelah ini, saya memproyeksikan nilai biometrik dari kumpulan data baru bunga yang memiliki kombinasi serupa dari pengukuran ini untuk masing-masing dari tiga spesies iris. Anda akan melihat dari grafik terakhir bahwa PC yang diproyeksikan berada di area yang sama dengan plot sebagai kumpulan data asli.Contoh menggunakan
iris
kumpulan data:sumber
predict.prcomp
bantuan.Informasi dari perintah ringkasan () yang Anda lampirkan pada pertanyaan memungkinkan Anda untuk melihat, misalnya, proporsi varian yang ditangkap setiap komponen utama (Proporsi varians). Selain itu, proporsi kumulatif dihitung untuk output. Misalnya, Anda harus memiliki 23 PC untuk menangkap 75% varians dalam kumpulan data Anda.
Ini tentu bukan informasi yang biasanya Anda gunakan sebagai masukan untuk analisis lebih lanjut. Alih-alih, yang biasanya Anda butuhkan adalah data yang diputar, yang disimpan sebagai 'x' pada objek yang dibuat oleh prcomp.
Menggunakan kode R sebagai contoh singkat.
Kemudian Anda dapat menggunakan data dalam tanggal baru untuk analisis lebih lanjut, misalnya, sebagai input untuk SVM atau model regresi. Juga, lihat, misalnya, /programming/1805149/how-to-fit-a-linear-regress-model-with-two-principal-components-in-r untuk informasi lebih lanjut.
sumber
predict()
metode untuk data uji. Menggunakan contoh di atas,predict(pr, USArrests)
akan mengembalikan matriks yang sama denganpr$x
. Untuk data uji, ganti sandaran US dengan nama data uji. Anda dapat melakukan hal yang sama dengan tangan, tetapi ini lebih mudah, karena metode prediksi menangani penskalaan yang benar dari kumpulan data uji.predict()
menggunakan semua komponen secara default. Namun, Anda dapat membatasi jumlah komponen yang dikembalikan, mis. `Predict (pr, USArrests) [, 1: 2]. Apakah itu akan berhasil untuk Anda?predict()
itu secara otomatis diberi parameter awal denganprcomp()
?