随机森林重要性排序-R

部署运行你感兴趣的模型镜像
library(openxlsx)
wine = read.xlsx("E:/时间趋势/winequality-red-2.xlsx") 
#将数据集分为训练集和测试集,比例为7:3
train_sub = sample(nrow(wine),7/10*nrow(wine))
train_data = wine[train_sub,]
test_data = wine[-train_sub,]
library(pROC) #绘制ROC曲线
library(randomForest)
#数据预处理
train_data$Yield = as.factor(train_data$Yield)
test_data$Yield = as.factor(test_data$Yield)
wine_randomforest <- randomForest(Yield ~  Tmax+Tmin+AVRH+
                                      AVGT+SD+CWDI+
                                      P,
                                    data = train_data,
                                    ntree =500,
                                    mtry=3,
                                    importance=TRUE ,
                                    proximity=TRUE)
#查看变量的重要性
wine_randomforest$importance
varImpPlot(wine_randomforest, main = "variable importance",font = 2,lwd = 5,col = "red",col.axis = "blue",font.axis = 2,cex = 1,cex.axis = 5,pch = 16,cex.lab = 0.7,font.lab = 2)

#对测试集进行预测
pre_ran <- predict(wine_randomforest,newdata=test_data)
#将真实值和预测值整合到一起
obs_p_ran = data.frame(prob=pre_ran,obs=test_data$Yield)
#输出混淆矩阵
table(test_data$Yield,pre_ran,dnn=c("真实值","预测值"))
#绘制ROC曲线
ran_roc <- roc(test_data$Yield,as.numeric(pre_ran))
plot(ran_roc, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2),grid.col=c("green", "red"), max.auc.polygon=TRUE,auc.polygon.col="skyblue", print.thres=TRUE,main='随机森林模型ROC曲线,mtry=3,ntree=500')


您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

### 使用 R 语言随机森林模型特征重要性进行排序 在处理机器学习任务时,理解各个输入特征对于最终预测的影响至关重要。通过分析特征的重要性可以帮助识别最具影响力的变量并优化模型性能。 #### 安装必要的包 为了构建和评估随机森林模型以及获取其特征重要性分数,在R环境中需安装`randomForest`库: ```r install.packages("randomForest") library(randomForest) ``` #### 构建随机森林模型 假设已经准备好了一个名为 `data` 的数据框,其中包含了目标变量(标签)和其他自变量(特征)。可以按照如下方式创建一个随机森林分类器: ```r set.seed(123) # 设置种子以确保结果可重复 rf_model <- randomForest(target ~ ., data=data, importance=TRUE, ntree=500) print(rf_model) ``` 这里设置了参数`importance=TRUE`来启用计算特征重要性的功能;`ntree=500`指定了要生长的树木数量为500棵。 #### 获取特征重要性评分 完成模型训练之后,可以通过访问`importance()`函数获得每个特征的重要性得分表单: ```r importance_matrix <- importance(rf_model) # 打印平均减少不纯度(MeanDecreaseGini)作为衡量标准的结果 print(importance_matrix[, "MeanDecreaseGini"]) ``` 此命令会输出一个向量,表示各特征按名称排列对应的均方误差降低幅度或基尼指数下降值[^2]。 #### 对特征重要性进行排序 最后一步是对上述得到的重要性分值进行降序排列,并可视化展示出来以便直观观察: ```r varImpPlot(rf_model, main="Variable Importance Plot", cex=0.8) # 或者直接提取并打印排序后的列表 sorted_importance <- sort(importance_matrix[, "MeanDecreaseGini"], decreasing = TRUE) print(sorted_importance) ``` 以上代码片段将会绘制一张条形图,显示最重要的几个特征及其相对贡献大小。同时也会输出已排序的形式化文本版本给定特征的重要性顺序[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值