Jumlah komponen utama saat preprocessing menggunakan PCA dalam paket caret di R

11

Saya menggunakan caretpaket Runtuk pelatihan pengklasifikasi biner SVM. Untuk pengurangan fitur, saya melakukan preprocessing dengan PCA menggunakan fitur preProc=c("pca")bawaan saat menelepon train(). Ini pertanyaan saya:

  1. Bagaimana caret memilih komponen utama?
  2. Apakah ada sejumlah komponen utama yang dipilih?
  3. Apakah komponen utama dipilih oleh sejumlah varian yang dijelaskan (mis. 80%)?
  4. Bagaimana saya bisa mengatur jumlah komponen utama yang digunakan untuk klasifikasi?
  5. (Saya mengerti bahwa PCA harus menjadi bagian dari validasi silang luar untuk memungkinkan perkiraan prediksi yang dapat diandalkan.) Haruskah PCA juga diimplementasikan dalam siklus validasi silang dalam (estimasi parameter)?
  6. Bagaimana caret mengimplementasikan PCA dalam cross-validation?
jokel
sumber
Informasi yang berguna dapat ditemukan di postingan ini pada PCA dan k-fold cross-validasi dalam paket sisipan di R .
Ekaba Bisong

Jawaban:

13

Secara default, caret menjaga komponen yang menjelaskan 95% dari varians.
Tetapi Anda dapat mengubahnya dengan menggunakan threshparameter.

# Example
preProcess(training, method = "pca", thresh = 0.8)

Anda juga dapat mengatur sejumlah komponen tertentu dengan mengatur pcaCompparameter.

# Example
preProcess(training, method = "pca", pcaComp = 7)

Jika Anda menggunakan kedua parameter, pcaComplebih diutamakan thresh.

Silakan lihat: https://www.rdocumentation.org/packages/caret/versions/6.0-77/topics/preProcess

Jacques Wainer
sumber
Sayangnya tautannya rusak
R Kiselev
mengoreksi tautan
Jacques Wainer