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

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

1
แพคเกจ GBM กับ Caret ใช้ GBM
ฉันเคยใช้การจูนโมเดลcaretแต่แล้วก็รันโมเดลอีกครั้งโดยใช้gbmแพ็คเกจ ฉันเข้าใจว่าcaretแพ็กเกจที่ใช้gbmและเอาต์พุตควรเหมือนกัน อย่างไรก็ตามการทดสอบการทำงานอย่างรวดเร็วโดยใช้data(iris)แสดงความแตกต่างในรูปแบบประมาณ 5% โดยใช้ RMSE และ R ^ 2 เป็นตัวชี้วัดการประเมินผล ฉันต้องการค้นหาประสิทธิภาพของแบบจำลองที่ดีที่สุดโดยใช้caretแต่เรียกใช้อีกครั้งgbmเพื่อใช้ประโยชน์จากแผนการพึ่งพาบางส่วน รหัสด้านล่างสำหรับการทำซ้ำ คำถามของฉันจะเป็น: 1) เหตุใดฉันจึงเห็นความแตกต่างระหว่างแพ็คเกจทั้งสองนี้ถึงแม้ว่าพวกเขาจะเหมือนกัน (ฉันเข้าใจว่าพวกมันสุ่ม แต่ 5% ค่อนข้างแตกต่างกันมากโดยเฉพาะอย่างยิ่งเมื่อฉันไม่ได้ใช้ชุดข้อมูลที่ดีirisสำหรับการสร้างแบบจำลองของฉัน) . 2) มีข้อดีหรือข้อเสียในการใช้ทั้งสองแพคเกจหรือไม่ 3) ไม่เกี่ยวข้อง: การใช้irisชุดข้อมูลที่ดีที่สุดinteraction.depthคือ 5 แต่สูงกว่าที่ฉันได้อ่านควรจะใช้สูงสุดfloor(sqrt(ncol(iris)))ซึ่งควรจะเป็น 2 นี่เป็นกฎง่ายๆหรือเข้มงวดหรือไม่? library(caret) library(gbm) library(hydroGOF) library(Metrics) data(iris) # Using caret caretGrid <- expand.grid(interaction.depth=c(1, 3, 5), n.trees = (0:50)*50, shrinkage=c(0.01, 0.001), n.minobsinnode=10) metric …

1
วิธีค้นหาช่วงเวลาการคาดคะเนของ GBM
ฉันกำลังทำงานกับรุ่น GBM โดยใช้ชุดคาเร็ตและมองหาวิธีการแก้ช่วงการทำนายสำหรับข้อมูลที่คาดการณ์ไว้ ฉันค้นหาอย่างกว้างขวาง แต่มีความคิดเล็กน้อยเพื่อค้นหาช่วงเวลาการคาดการณ์สำหรับ Random Forest ความช่วยเหลือใด ๆ / รหัส R จะได้รับการชื่นชมอย่างมาก!

1
จำเป็นต้องดำเนินการ preprocessing ก่อนการทำนายโดยใช้ FinalModel ของ RandomForest กับ caret package หรือไม่
ฉันใช้ชุดคาเร็ตสำหรับฝึกวัตถุสุ่มป่าด้วย 10x10CV library(caret) tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T) RFFit <- train(Defect ~., data=trainingSet, method="rf", trControl=tc, preProc=c("center", "scale")) หลังจากนั้นฉันทดสอบ randomForest บน testSet (ข้อมูลใหม่) RF.testSet$Prediction <- predict(RFFit, newdata=testSet) เมทริกซ์ความสับสนแสดงให้ฉันเห็นว่าแบบจำลองนั้นไม่เลว confusionMatrix(data=RF.testSet$Prediction, RF.testSet$Defect) Reference Prediction 0 1 0 886 179 1 53 126 Accuracy : 0.8135 95% CI : (0.7907, 0.8348) No …

2
การเลือกคุณสมบัติและการปรับพารามิเตอร์ด้วยคาเร็ตสำหรับฟอเรสต์แบบสุ่ม
ฉันมีข้อมูลที่มีฟีเจอร์ไม่กี่พันรายการและฉันต้องการทำการเลือกฟีเจอร์แบบเรียกซ้ำ (RFE) เพื่อลบข้อมูลที่ไม่ต้องการออก ฉันทำสิ่งนี้ด้วยคาเร็ตและ RFE อย่างไรก็ตามฉันเริ่มคิดว่าถ้าฉันต้องการได้รับแบบจำลองการถดถอยที่ดีที่สุด (เช่นฟอเรสต์แบบสุ่ม) ฉันควรทำการปรับพารามิเตอร์ ( mtryสำหรับ RF) เมื่อใด นั่นคือตามที่ฉันเข้าใจcaretฝึก RF ซ้ำ ๆ กันในชุดย่อยที่แตกต่างกันด้วย mtry คงที่ ฉันคิดว่าmtryควรพบสิ่งที่ดีที่สุดหลังจากการเลือกคุณสมบัติเสร็จสิ้นแล้ว แต่mtryค่าที่คาเร็ตใช้จะมีผลกับชุดย่อยของฟีเจอร์ที่เลือกหรือไม่ แน่นอนว่าการใช้คาเร็เทตกับ low mtryนั้นเร็วกว่ามาก หวังว่าใครบางคนสามารถอธิบายเรื่องนี้กับฉันได้

1
R / mgcv: เพราะเหตุใดผลิตภัณฑ์ te () และ ti () เทนเซอร์จึงให้พื้นผิวที่แตกต่างกัน
mgcvแพคเกจสำหรับการRมีสองฟังก์ชั่นสำหรับการปฏิสัมพันธ์กระชับเมตริกซ์ผลิตภัณฑ์: และte() ti()ฉันเข้าใจการแบ่งขั้นพื้นฐานของการใช้แรงงานระหว่างคนทั้งสอง (ปรับให้เหมาะสมกับการทำงานแบบไม่เป็นเชิงเส้นเปรียบเทียบกับการย่อยสลายการโต้ตอบนี้เป็นผลกระทบหลักและการโต้ตอบ) สิ่งที่ฉันไม่เข้าใจคือสาเหตุte(x1, x2)และti(x1) + ti(x2) + ti(x1, x2)อาจให้ผลลัพธ์ที่แตกต่าง (เล็กน้อย) MWE (ดัดแปลงมาจาก?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

2
Caret varImp สำหรับรุ่นสุ่มป่าไม้
ฉันมีปัญหาในการทำความเข้าใจเกี่ยวกับวิธีการvarImpทำงานของโมเดลสุ่มป่าด้วยcaretแพคเกจ ในตัวอย่างด้านล่างนี้คุณลักษณะ var3 ได้รับความสำคัญเป็นศูนย์โดยใช้varImpฟังก์ชั่นของคาเร็ต แต่โมเดลขั้นสุดท้ายแบบสุ่มพื้นฐานที่มีความสำคัญไม่เป็นศูนย์สำหรับคุณลักษณะ var3 เหตุใดจึงเป็นเช่นนี้ require(randomForest) require(caret) rf <- train(x, y, method = "rf", trControl = trainControl(method = "oob"), importance = TRUE, verbose = TRUE, tuneGrid = data.frame(mtry = num.predictors) ) fm <- rf$finalModel > varImp(f) rf variable importance Overall var1 100.00 var2 80.14 var3 0.00 > importance(fm) …
10 r  caret  random-forest 

1
R / caret: ชุดรถไฟและชุดทดสอบเทียบกับการตรวจสอบข้าม
นี่อาจเป็นคำถามที่งี่เง่า แต่เมื่อสร้างแบบจำลองที่มีเครื่องหมายรูปหมวกและใช้บางอย่างเช่นLOOCVหรือ (ยิ่งไปกว่านั้น) LGOCVสิ่งที่เป็นประโยชน์ของการแยกข้อมูลออกเป็นชุดรถไฟและชุดทดสอบถ้านี่คือขั้นตอนการตรวจสอบความถูกต้อง ทำอย่างไร ผมอ่านบางส่วนของคำถามที่เกี่ยวข้องและพวกเขาชี้ให้เห็นว่าบางส่วนของวิธีการตรวจสอบข้าม (เช่นสิ่งที่อธิบายนี่ที่เว็บไซต์ของลูกศร ) เป็นเพื่อวัตถุประสงค์ในการเลือกคุณลักษณะ แต่ในกรณีของฉันฉันกำลังใช้randomForest( method = "rf") และkernlab( method = svmRadial) ซึ่งไม่ได้อยู่ในกลุ่มที่พยายามล้างคำทำนาย ดังนั้นคำถามของฉันคือถ้าฉันใช้สิ่งที่ชอบcross_val <- trainControl(method = "LGOCV", p = 0.8)ไม่เหมือนกับการฝึกอบรมที่ 80% ของข้อมูลของฉันทดสอบแบบจำลองผลลัพธ์ในส่วนที่เหลืออีก 20% และทำสิ่งนั้นซ้ำไปซ้ำมาเพื่อให้ได้แนวคิดว่า รูปแบบการทำงานหรือไม่ ถ้าเป็นเช่นนั้นมีความจำเป็นที่จะต้องแยกข้อมูลของฉันออกเป็นชุดรถไฟ / ชุดทดสอบหรือไม่? PS ฉันถามบางส่วนในขณะที่ฉันกำลังทำแบบจำลองเกี่ยวกับต้นแบบ DOE ที่สร้างขึ้นเชิงประจักษ์ (คิดว่าสินค้าหนักที่เราปรับแต่งอินพุตและจากนั้นใช้วิธีการทดสอบเพื่อวัดคุณลักษณะต่างๆเกี่ยวกับต้นแบบ) ดังนั้นฉันไม่ได้มีชุดข้อมูลขนาดใหญ่ที่มีระดับตัวทำนายที่ทับซ้อนกันจำนวนมากเพื่อเป็นแบบจำลอง - เรามักเรียกใช้การทดลองหนึ่งครั้งในแต่ละจุดที่น่าสนใจของ DOE เนื่องจากการสร้างข้อมูลมีราคาแพงในกรณีนี้ ดังนั้นฉันต้องการใช้ข้อมูลทั้งหมดที่ฉันสามารถทำได้สำหรับโมเดลที่ถูกต้อง แต่ต้องการตรวจสอบที่นี่ว่าฉันไม่ได้พลาดอะไรบางอย่างที่ชัดเจนและสร้างโมเดลที่ไม่ดีโดยไม่แยกสิ่งต่าง ๆ ออกมา แก้ไข:เพื่อตอบสนองต่อคำถามของ @ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.