2015-04-14 9 views
14

मैं प्री-प्रोसेसिंग के रूप में पीसीए का उपयोग कर कैरेट में एक पूर्वानुमानित मॉडल बनाने की कोशिश कर रहा हूं।आर/कैरेट: ट्रेन के लिए पीसीए प्रीप्रोसेसिंग तर्क पास करें()

preProc <- preProcess(IL_train[,-1], method="pca", thresh = 0.8) 

क्या यह संभव है कैरट के train() समारोह को सीधे thresh तर्क पारित करने के लिए: पूर्व प्रसंस्करण इस प्रकार हो सकता है? मैं निम्नलिखित की कोशिश की है, लेकिन यह काम नहीं करता है:

modelFit_pp <- train(IL_train$diagnosis ~ . , preProcess="pca", 
          thresh= 0.8, method="glm", data=IL_train) 

यदि नहीं, तो मैं अलग preProc परिणाम train() समारोह के लिए कैसे पारित कर सकते हैं?

+2

यह एक अच्छा सवाल है। यह पूछने के लिए धन्यवाद। – ahoffer

उत्तर

21

प्रलेखन के अनुसार, आप trainControl

?trainControl 

... 
preProcOptions 

A list of options to pass to preProcess. The type of pre-processing 
(e.g. center, scaling etc) is passed in via the preProc option in train. 
... 

के साथ अतिरिक्त पूर्व प्रसंस्करण तर्क निर्दिष्ट के बाद से आपके डेटासेट प्रतिलिपि प्रस्तुत करने योग्य नहीं है, एक उदाहरण को देखो। मैं से Sonar डेटासेट का उपयोग करूंगा और मजेदार के लिए pls एल्गोरिदम का उपयोग करूंगा।

library(caret) 
library(mlbench) 

data(Sonar) 

ctrl <- trainControl(preProcOptions = list(thresh = 0.95)) 

mod <- train(Class ~ ., 
      data = Sonar, 
       method = "pls", 
       trControl = ctrl) 

हालांकि दस्तावेज सबसे रोमांचक पढ़ना नहीं है, निश्चित रूप से इसके माध्यम से जाने का प्रयास करना सुनिश्चित करें। पैकेज लेखक दस्तावेज बनाने के लिए कड़ी मेहनत करते हैं और अंदर कई चमत्कार पाए जाते हैं।

+0

बस जो मैं खोज रहा था। –

संबंधित मुद्दे