ฉันกำลังทดลองกับอัลกอริทึมของเครื่องเร่งการไล่ระดับสีผ่าน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 = .001, n.minobsinnode = 20)
fit.gbm <- train(as.factor(admit_factor) ~ . - admit, data=mydata, method = 'gbm', trControl=fitControl, tuneGrid=grid, metric='Accuracy')
plot(fit.gbm)
และพบว่าฉันประหลาดใจที่ความถูกต้องของการตรวจสอบความถูกต้องข้ามของแบบจำลองลดลงมากกว่าที่เพิ่มขึ้นเนื่องจากจำนวนการทำซ้ำที่เพิ่มขึ้นเพิ่มขึ้นถึงระดับความแม่นยำขั้นต่ำประมาณ. 59
ฉันใช้อัลกอริทึม GBM ไม่ถูกต้องหรือไม่
แก้ไข: ทำตามคำแนะนำของ Underminer ฉันได้รันcaret
โค้ดข้างต้นอีกครั้งแต่มุ่งเน้นไปที่การรัน 100 ถึง 5,000 ซ้ำเพื่อเพิ่มการทำซ้ำ:
set.seed(123)
fitControl <- trainControl(method = 'cv', number = 5, summaryFunction=defaultSummary)
grid <- expand.grid(n.trees = seq(100,5000,100), interaction.depth = 2, shrinkage = .001, n.minobsinnode = 20)
fit.gbm <- train(as.factor(admit_factor) ~ . - admit, data=mydata, method = 'gbm', trControl=fitControl, tuneGrid=grid, metric='Accuracy')
plot(fit.gbm)
พล็อตที่เกิดขึ้นแสดงให้เห็นว่าความถูกต้องสูงสุดจริงที่เกือบ. 705 ที่ ~ 1,800 ซ้ำ:
สิ่งที่น่าแปลกใจก็คือความแม่นยำนั้นไม่ได้อยู่ที่ที่ราบสูง ~ .70 แต่ปฏิเสธแทนที่จะทำตาม 5,000 ซ้ำ