คำถามติดแท็ก caret

Caret เป็นแพ็กเกจ R ที่มีชุดฟังก์ชันที่พยายามปรับปรุงกระบวนการสร้างแบบจำลองคาดการณ์

3
R: การสุ่มฟอเรสต์การโยน NaN / Inf ในข้อผิดพลาด“ การเรียกฟังก์ชันต่างประเทศ” แม้จะไม่มีชุดข้อมูลของ NaN [ปิด]
ฉันใช้คาเร็ตเพื่อรันฟอเรสต์แบบสุ่มที่ผ่านการตรวจสอบความถูกต้องข้ามชุดข้อมูล ตัวแปร Y เป็นปัจจัย ไม่มีชุดข้อมูลของ NaN, Inf's หรือ NA ในชุดข้อมูลของฉัน อย่างไรก็ตามเมื่อใช้ป่าสุ่มฉันได้รับ Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs …

3
R caret และ NAs
ฉันชอบคาเร็ตมากสำหรับความสามารถในการปรับแต่งพารามิเตอร์และอินเทอร์เฟซที่เหมือนกัน แต่ฉันสังเกตว่ามันต้องการชุดข้อมูลที่สมบูรณ์เสมอ (เช่นไม่มี NA) แม้ว่าโมเดล "เปลือยกาย" ที่ใช้จะอนุญาต NA นั่นเป็นเรื่องที่น่ารำคาญอย่างมากเกี่ยวกับวิธีการที่ควรใช้วิธีการใส่ร้ายที่ไม่จำเป็นในตอนแรก วิธีการหนึ่งที่สามารถหลบเลี่ยงการใส่ร้ายและยังคงใช้ข้อได้เปรียบคาเร็ต?

2
ใน caret ความแตกต่างที่แท้จริงระหว่าง cv และ repeatcv คืออะไร?
นี่คล้ายกับคำถามวิธีการสุ่มตัวอย่าง Caret อีกครั้งแม้ว่าจะไม่เคยตอบคำถามนี้ในส่วนที่ตกลงกัน ฟังก์ชั่นรถไฟเครื่องหมายของข้อเสนอและcv repeatedcvอะไรคือความแตกต่างของการพูด: MyTrainControl=trainControl( method = "cv", number=5, repeats=5 ) VS MyTrainControl=trainControl( method = "repeatedcv", number=5, repeats=5 ) ฉันเข้าใจว่าcvแบ่งการตั้งค่าเป็น k-folds (พารามิเตอร์number) แล้วเริ่มต้นใหม่และเรียกใช้พารามิเตอร์repeatsจำนวนครั้ง สิ่งเดียวที่ฉันจะคิดว่าอาจจะเป็นปกติcvด้วยrepeatsการใช้ดัชนีที่แน่นอนเดียวกันสำหรับพับแต่ละครั้ง? โดยพื้นฐานแล้วการรันcvเท่ากันแน่นอนในแต่ละครั้ง vs อาจrepeatedcvเลือกใหม่เท่าในแต่ละครั้ง? บางคนสามารถอธิบายได้หรือไม่

5
มากเกินไป: ไม่มีกระสุนเงิน?
ความเข้าใจของฉันคือว่าแม้เมื่อไปข้ามการตรวจสอบและการเลือกรูปแบบวิธีการที่เหมาะสม, overfitting จะเกิดขึ้นถ้าค้นหาหนึ่งสำหรับรูปแบบที่ยากพอว่าถ้าผู้ใดมีข้อ จำกัด เรียกเก็บกับความซับซ้อนของโมเดลระยะเวลา นอกจากนี้บ่อยครั้งที่ผู้คนพยายามเรียนรู้บทลงโทษเกี่ยวกับความซับซ้อนของแบบจำลองจากข้อมูลที่ทำลายการป้องกันที่พวกเขาสามารถให้ได้ คำถามของฉันคือ: ความจริงเท่าไหร่ที่มีต่องบข้างต้น? ผมมักจะได้ยิน practicioners ML กล่าวว่า " ใน บริษัท ของฉัน / ห้องปฏิบัติการเราพยายามทุกรูปแบบที่มีอยู่ (เช่นจากห้องสมุดเช่นเครื่องหมายหรือscikit เรียนรู้ ) เพื่อดูที่หนึ่งงานที่ดีที่สุด " ฉันมักจะเถียงว่าวิธีการนี้สามารถทำให้ได้อย่างง่ายดายแม้ว่าพวกเขาจะจริงจังเกี่ยวกับการตรวจสอบข้ามและเก็บชุดที่ค้างไว้ในทางที่พวกเขาต้องการ ยิ่งพวกเขาค้นหายากเท่าไหร่ก็จะยิ่งมีโอกาสมากขึ้นเท่านั้น ในคำอื่น ๆมากกว่าการเพิ่มประสิทธิภาพเป็นปัญหาที่แท้จริงและมีการวิเคราะห์พฤติกรรมที่ไม่สามารถช่วยให้คุณต่อสู้กับมันอย่างเป็นระบบ ฉันผิดที่คิดแบบนี้?

3
โมเดลเรียงซ้อน / ตระการตาพร้อมคาเร็ต
ฉันมักจะพบว่าตัวเองกำลังฝึกอบรมตัวพยากรณ์ที่แตกต่างกันหลายตัวที่ใช้caretในอาร์ฉันจะฝึกพวกมันทั้งหมดในการตรวจสอบความถูกต้องไขว้แบบเดียวกันโดยใช้caret::: createFoldsแล้วเลือกโมเดลที่ดีที่สุดโดยอิงจากข้อผิดพลาดการตรวจสอบข้าม อย่างไรก็ตามการทำนายค่ามัธยฐานจากหลายรุ่นมักจะดีกว่าแบบจำลองเดี่ยวที่ดีที่สุดในชุดทดสอบอิสระ ฉันกำลังคิดว่าจะเขียนฟังก์ชั่นบางอย่างสำหรับการวางซ้อน / การวางแบบ caret ที่ได้รับการฝึกอบรมโดยใช้ cross-validation folds เช่นโดยการคาดคะเนค่ามัธยฐานจากแต่ละแบบจำลองในแต่ละครั้งหรือโดยการฝึก "meta-model" แน่นอนว่าอาจต้องใช้ลูปการตรวจสอบความถูกต้องภายนอก ไม่มีใครรู้แพคเกจที่มีอยู่ / รหัสโอเพนซอร์สที่มีอยู่สำหรับรุ่น caret ตระการตา
21 r  caret  ensemble 

2
แคเร็ตวิธีการสุ่มตัวอย่างอีกครั้ง
ฉันใช้ไลบรารีcaretใน R เพื่อทดสอบขั้นตอนการสร้างแบบจำลองต่างๆ trainControlวัตถุช่วยให้หนึ่งเพื่อระบุวิธีการใหม่การสุ่มตัวอย่าง วิธีการที่อธิบายไว้ในเอกสารส่วน 2.3 และรวมถึง: boot, boot632, cv, LOOCV, LGOCV, และrepeatedcv oobถึงแม้ว่าสิ่งเหล่านี้บางอย่างจะอนุมานได้ง่าย แต่วิธีการเหล่านี้ไม่ได้มีการกำหนดไว้อย่างชัดเจน อะไรคือขั้นตอนที่สอดคล้องกับวิธีการสุ่มตัวอย่างใหม่เหล่านี้?
20 r  resampling  caret 

2
ฟังก์ชั่น caret Train สำหรับ glmnet cross-validate สำหรับทั้ง alpha และ lambda หรือไม่?
ไม่ R caretแพคเกจข้ามการตรวจสอบทั้งในalphaและlambdaสำหรับglmnetรูปแบบ? ใช้รหัสนี้ eGrid <- expand.grid(.alpha = (1:10) * 0.1, .lambda = (1:10) * 0.1) Control <- trainControl(method = "repeatedcv",repeats = 3,verboseIter =TRUE) netFit <- train(x =train_features, y = y_train, method = "glmnet", tuneGrid = eGrid, trControl = Control) บันทึกการฝึกอบรมมีลักษณะเช่นนี้ Fold10.Rep3: alpha=1.0, lambda=NA อะไรlambda=NAหมายถึง?

1
คาเร็ตและค่าสัมประสิทธิ์ (glmnet)
ฉันสนใจที่จะใช้คาเร็ตเพื่อทำการอนุมานบนชุดข้อมูลเฉพาะ เป็นไปได้ที่จะทำดังต่อไปนี้: สร้างค่าสัมประสิทธิ์ของรูปแบบ glmnet ที่ฉันฝึกในคาเร็ต ฉันต้องการใช้ glmnet เนื่องจากการเลือกคุณสมบัติโดยธรรมชาติเพราะฉันไม่เชื่อว่า glm มีหรือไม่ นอกเหนือจากตัวชี้วัด ROC มีอีกตัวชี้วัดหนึ่งที่ฉันสามารถใช้เพื่อประเมินแบบจำลองหรือไม่ เช่นการปรับ ?R2R2R^2 จุดประสงค์ของการวิเคราะห์นี้คือการหาข้อสรุปเกี่ยวกับผลกระทบของตัวแปรเฉพาะมากกว่าการคาดการณ์ ฉันชอบชุดคาเร็ตเพราะมันง่ายต่อการใช้งานด้วยการใช้เมทริกซ์
19 caret  glmnet 

1
Caret - การตรวจสอบความถูกต้องแบบข้ามของ K-fold ซ้ำแล้วซ้ำอีกกับการตรวจสอบความถูกต้องแบบข้ามของ K-fold ซ้ำแล้วซ้ำอีกครั้ง
ชุดคาเร็ตเป็นไลบรารี R ที่ยอดเยี่ยมสำหรับการสร้างแบบจำลองการเรียนรู้ของเครื่องหลายแบบและมีฟังก์ชั่นหลายอย่างสำหรับการสร้างแบบจำลองและการประเมินผล สำหรับการปรับพารามิเตอร์และการฝึกอบรมรูปแบบแพคเกจคาเร็ตมี 'repeatcv' เป็นหนึ่งในวิธีการ แนวปฏิบัติที่ดีการปรับพารามิเตอร์อาจทำได้โดยใช้การตรวจสอบความถูกต้องแบบ K-fold แบบซ้อนซึ่งทำหน้าที่ดังต่อไปนี้: แบ่งการฝึกอบรมที่กำหนดไว้ในชุดย่อย 'K' ในการทำซ้ำแต่ละครั้งให้นำชุดย่อย 'K ลบ 1' สำหรับการฝึกอบรมแบบจำลองและเก็บชุดย่อย 1 ชุด (ชุด holdout) สำหรับการทดสอบแบบจำลอง เพิ่มเติมพาร์ติชันการฝึกอบรม 'K ลบ 1' ตั้งค่าเป็นชุดย่อย 'K' และใช้ชุดย่อย 'K ลบ 1' ใหม่และ 'ชุดการตรวจสอบความถูกต้อง' ซ้ำสำหรับการปรับพารามิเตอร์ (การค้นหากริด) พารามิเตอร์ที่ดีที่สุดที่ระบุไว้ในขั้นตอนนี้ใช้สำหรับทดสอบชุดที่มีการพักในขั้นตอนที่ 2 ในทางกลับกันฉันคิดว่าการตรวจสอบความถูกต้องข้าม K-fold ซ้ำอาจทำซ้ำขั้นตอนที่ 1 และ 2 ซ้ำหลายครั้งเราเลือกที่จะค้นหาความแปรปรวนของแบบจำลอง อย่างไรก็ตามการใช้อัลกอริทึมในคู่มือคาเร็ตดูเหมือนว่าวิธีการ 'repeatcv' อาจทำการตรวจสอบความถูกต้องแบบซ้อนข้าม K-fold เช่นกันนอกเหนือจากการตรวจสอบความถูกต้องแบบไขว้ซ้ำ คำถามของฉันคือ: …

2
การตรวจสอบความถูกต้องข้าม PCA และ k-fold ในชุด Caret ใน R
ฉันเพิ่งดูการบรรยายอีกครั้งจากหลักสูตรการเรียนรู้ของเครื่องใน Coursera ในส่วนที่อาจารย์กล่าวถึง PCA สำหรับการประมวลผลข้อมูลล่วงหน้าในแอปพลิเคชันการเรียนรู้ภายใต้การดูแลเขาบอกว่า PCA ควรจะดำเนินการกับข้อมูลการฝึกอบรมเท่านั้นและจากนั้นการทำแผนที่จะใช้ในการแปลง ดูเพิ่มเติมPCA และรถไฟ / ทดสอบแยก อย่างไรก็ตามในcaretแพ็คเกจ R ข้อมูลการฝึกอบรมที่คุณส่งผ่านไปยังtrain()ฟังก์ชั่นนั้นได้รับการประมวลผลโดย PCA แล้ว ดังนั้นเมื่ออัลกอริทึมทำการตรวจสอบความถูกต้องของ k-fold cross ชุดการตรวจสอบความถูกต้องได้ถูกประมวลผลด้วย PCA ผ่านทางpreProcess()และpredict()ในความเป็นจริงแล้วใช้ใน PCA "fitting" ฉันเข้าใจสถานการณ์ถูกต้องหรือไม่? ขั้นตอนของ IET Caret สำหรับการตรวจสอบข้ามกับ PCA (หรือในความเป็นจริงด้วยวิธีการลดขนาด / การจัดตำแหน่งใด ๆ ) เป็น "ผิด" เนื่องจากการประมวลผลข้อมูลล่วงหน้าจะดำเนินการในชุดการตรวจสอบความถูกต้อง และถ้าเป็นเช่นนั้นผลกระทบนี้จะมีขนาดใหญ่เพียงใด?

4
การเพิ่มความแม่นยำของเครื่องไล่ระดับสีจะลดลงเมื่อจำนวนการทำซ้ำเพิ่มขึ้น
ฉันกำลังทดลองกับอัลกอริทึมของเครื่องเร่งการไล่ระดับสีผ่านcaretแพ็คเกจใน R ใช้ชุดข้อมูลการรับสมัครวิทยาลัยขนาดเล็กฉันใช้รหัสต่อไปนี้: library(caret) ### Load admissions dataset. ### mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") ### Create yes/no levels for admission. ### mydata$admit_factor[mydata$admit==0] <- "no" mydata$admit_factor[mydata$admit==1] <- "yes" ### Gradient boosting machine algorithm. ### set.seed(123) fitControl <- trainControl(method = 'cv', number = 5, summaryFunction=defaultSummary) grid <- expand.grid(n.trees = seq(5000,1000000,5000), interaction.depth = 2, shrinkage …
15 machine-learning  caret  boosting  gbm  hypothesis-testing  t-test  panel-data  psychometrics  intraclass-correlation  generalized-linear-model  categorical-data  binomial  model  intercept  causality  cross-correlation  distributions  ranks  p-value  z-test  sign-test  time-series  references  terminology  cross-correlation  definition  probability  distributions  beta-distribution  inverse-gamma  missing-data  paired-comparisons  paired-data  clustered-standard-errors  cluster-sample  time-series  arima  logistic  binary-data  odds-ratio  medicine  hypothesis-testing  wilcoxon-mann-whitney  unsupervised-learning  hierarchical-clustering  neural-networks  train  clustering  k-means  regression  ordinal-data  change-scores  machine-learning  experiment-design  roc  precision-recall  auc  stata  multilevel-analysis  regression  fitting  nonlinear  jmp  r  data-visualization  gam  gamm4  r  lme4-nlme  many-categories  regression  causality  instrumental-variables  endogeneity  controlling-for-a-variable 

3
มีวิธีการปิดการใช้งานคุณสมบัติการปรับพารามิเตอร์ (ตาราง) ใน CARET หรือไม่?
CARET จะใช้กริดการปรับแต่งที่กำหนดไว้ล่วงหน้าโดยอัตโนมัติเพื่อสร้างแบบจำลองต่างๆก่อนที่จะเลือกรุ่นสุดท้ายจากนั้นทำการฝึกอบรมรุ่นสุดท้ายในข้อมูลการฝึกอบรมเต็มรูปแบบ ฉันสามารถจัดหากริดการปรับจูนของตัวเองด้วยการรวมกันของพารามิเตอร์เดียวเท่านั้น อย่างไรก็ตามแม้ในกรณีนี้ CARET "เลือก" โมเดลที่ดีที่สุดในบรรดาพารามิเตอร์การปรับ (แม้ว่าจะมีเพียงหนึ่งในกรณีนี้) จากนั้นจึงปรับโมเดลให้เหมาะสมกับข้อมูลการฝึกอบรมทั้งหมด นี่เป็นขั้นตอนพิเศษที่ฉันต้องการหลีกเลี่ยง ฉันจะข้ามขั้นตอนการค้นหาแบบจำลองข้ามการเปลี่ยนแปลงในตารางการปรับแต่งและบังคับให้ CARET สร้างข้อมูลการฝึกอบรมทั้งหมดได้ (นอกเหนือจากการเรียกไลบรารี่ต้นแบบโดยตรง)
15 r  caret 

2
ผลลัพธ์ที่แตกต่างจาก RandomForest ผ่าน caret และแพ็คเกจ RandomForest พื้นฐาน
ฉันสับสนเล็กน้อย: ผลลัพธ์ของโมเดลที่ได้รับการฝึกอบรมผ่านคาเร็ตจะแตกต่างจากโมเดลในแพ็คเกจดั้งเดิมอย่างไร ฉันอ่านว่าจำเป็นต้องมีการประมวลผลล่วงหน้าก่อนการทำนายด้วย FinalModel ของ RandomForest พร้อมชุดคาเร็ตหรือไม่? แต่ฉันไม่ได้ใช้ preprocessing ใด ๆ ที่นี่ ฉันฝึกป่าสุ่มที่แตกต่างกันโดยใช้ชุดคาเร็ตและปรับแต่งค่า mtry ที่แตกต่างกัน > cvCtrl = trainControl(method = "repeatedcv",number = 10, repeats = 3, classProbs = TRUE, summaryFunction = twoClassSummary) > newGrid = expand.grid(mtry = c(2,4,8,15)) > classifierRandomForest = train(case_success ~ ., data = train_data, trControl = cvCtrl, …

1
Caret glmnet กับ cv.glmnet
ดูเหมือนจะมีความสับสนมากในการเปรียบเทียบการใช้glmnetภายในcaretเพื่อค้นหาแลมบ์ดาที่ดีที่สุดและใช้cv.glmnetในการทำงานเดียวกัน มีการตั้งคำถามมากมายเช่น: โมเดลการจำแนกประเภท train.glmnet vs. cv.glmnet วิธีที่เหมาะสมในการใช้ glmnet กับคาเร็ตคืออะไร? การตรวจสอบข้าม `glmnet 'โดยใช้` คาเร็ต' แต่ไม่ได้รับคำตอบซึ่งอาจเป็นเพราะความสามารถในการทำซ้ำของคำถาม ตามคำถามแรกฉันให้ตัวอย่างที่คล้ายกัน แต่มีคำถามเดียวกัน: ทำไม lambdas โดยประมาณแตกต่างกันอย่างไร library(caret) library(glmnet) set.seed(849) training <- twoClassSim(50, linearVars = 2) set.seed(849) testing <- twoClassSim(500, linearVars = 2) trainX <- training[, -ncol(training)] testX <- testing[, -ncol(testing)] trainY <- training$Class # Using glmnet to …

2
การใช้แพ็กเกจคาเร็ตนั้นเป็นไปได้หรือไม่ที่จะได้รับเมทริกซ์ความสับสนสำหรับค่าเกณฑ์เฉพาะ
ผมเคยได้รับรูปแบบการถดถอยโลจิสติก (ผ่านtrain) สำหรับการตอบสนองไบนารีและฉันได้รับเมทริกซ์ความสับสนโลจิสติกผ่านทางในconfusionMatrix caretมันให้เมทริกซ์ความสับสนของโมเดลโลจิสติกถึงฉัน แต่ฉันไม่แน่ใจว่าจะใช้เกณฑ์ใดในการรับ ฉันจะรับเมทริกซ์ความสับสนสำหรับค่าเกณฑ์เฉพาะที่ใช้confusionMatrixในได้caretอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.