随机森林十折交叉验证代码
时间: 2023-10-11 19:11:26 浏览: 99
以下是一个使用R语言实现随机森林十折交叉验证的代码示例:
```R
library(randomForest)
# 读取数据
data <- read.csv("路径/至/你的/CSV文件.csv")
# 设置因变量参数名
response <- "因变量参数名"
# 设置交叉验证折数
k <- 10
# 设置随机种子最大值
max_seed <- 100
# 创建空向量以保存每次建模的精度
accuracy <- vector("numeric", k)
# 进行十折交叉验证
for (i in 1:k) {
# 设置随机种子
set.seed(i)
# 将数据分成训练集和测试集
train_idx <- sample(1:nrow(data), nrow(data) * (k-1)/k)
train_data <- data[train_idx, ]
test_data <- data[-train_idx, ]
# 建立随机森林模型
model <- randomForest(x = train_data[, -response], y = train_data[, response], ntree = 100)
# 在测试集上进行预测
predictions <- predict(model, newdata = test_data[, -response])
# 计算精度
accuracy[i] <- sum(predictions == test_data[, response]) / nrow(test_data)
}
# 计算均值精度
mean_accuracy <- mean(accuracy)
# 打印结果
print(mean_accuracy)
# 找到最佳训练结果
best_model <- randomForest(x = data[, -response], y = data[, response], ntree = 100, seed = which.max(accuracy))
```
阅读全文