R交叉验证:使用caret评估模型性能
学习使用caret包进行K折交叉验证,避免过拟合,选择最优模型参数。 · 难度:入门 · +15XP
交叉验证的意义
交叉验证将数据分成K个子集,轮流用K-1份训练、1份验证,评估模型泛化能力。常用K=5或10。
1. 加载caret并设置训练控制
library(caret)
ctrl <- trainControl(method = 'cv', number = 5)2. 训练模型(以决策树为例)
data(iris)
set.seed(123)
model <- train(Species ~ ., data = iris, method = 'rpart', trControl = ctrl)
print(model)3. 查看交叉验证结果
model$results
model$resample4. 使用重复交叉验证
ctrl2 <- trainControl(method = 'repeatedcv', number = 5, repeats = 3)
model2 <- train(Species ~ ., data = iris, method = 'rf', trControl = ctrl2)
print(model2)| 参数 | 说明 |
|---|---|
| method='cv' | K折交叉验证 |
| number | 折数K |
| repeats | 重复次数 |
| method='repeatedcv' | 重复K折交叉验证 |
练习提示:使用5折交叉验证评估KNN模型(method='knn')在iris数据集上的准确率,并尝试调整K值。