predict函数 R_R包randomForest的随机森林回归模型以及对重要变量的选择
时间: 2024-02-05 17:11:18 浏览: 182
R语言的randomForest包提供了一个非常强大的随机森林回归模型。随机森林模型可以用于回归和分类问题,具有很高的准确性和鲁棒性。
下面是一个使用randomForest包的随机森林回归模型的示例代码:
```R
# 导入数据
data(iris)
# 将数据集划分为训练集和测试集
set.seed(123)
train_index <- sample(1:nrow(iris), 0.7*nrow(iris))
train_data <- iris[train_index, ]
test_data <- iris[-train_index, ]
# 训练随机森林模型
library(randomForest)
rf_model <- randomForest(Sepal.Length ~ ., data=train_data, ntree=100)
# 使用模型进行预测
rf_pred <- predict(rf_model, newdata=test_data)
# 计算R平方值
rsq <- 1 - sum((test_data$Sepal.Length - rf_pred)^2) / sum((test_data$Sepal.Length - mean(test_data$Sepal.Length))^2)
print(paste("R-squared:", round(rsq, 2)))
# 获取变量的重要性
varImpPlot(rf_model)
```
在这个例子中,我们使用iris数据集作为示例数据。首先,我们将数据集划分为训练集和测试集。然后,我们使用randomForest函数训练随机森林模型,其中Sepal.Length是目标变量,.表示使用所有其他变量作为特征。我们在这里设置了ntree参数为100,这表示我们训练了100棵决策树。
接下来,我们使用predict函数对测试集进行预测,并计算得到R平方值。最后,我们使用varImpPlot函数获取变量的重要性,并绘制出来。
在随机森林模型中,变量的重要性是通过衡量在每个决策树中被选择作为分裂变量的次数来确定的。变量的重要性越高,表示它对预测目标变量的贡献越大。在上面的代码中,我们使用varImpPlot函数绘制变量的重要性图表,可以看到Sepal.Width和Petal.Length是最重要的变量,它们对目标变量的预测有很大的贡献。
阅读全文