install.packages("randomForest")
library(randomForest)
library(xgboost)
library(tidyverse)#数据整理及绘图
library(skimr)#数据整体情况
library(DataExplorer)#数据缺失
library(caret)#数据拆分,模型评估,构建机器学习模型
library(pROC)
skim(data6)
plot_missing(data6)
data6$cpp<-factor(data6$cpp)#变量类型修正
skim(data6)
hist(data6$IGF,breaks = 50)#直方图
#拆分数据
set.seed(42)
trains<-createDataPartition(y=data6$cpp,p=0.7,list = F)
traindata<-data6[trains,]
testdata<-data6[-trains,]
hist(testdata$IGF,breaks=50)
hist(traindata$IGF,breaks = 50)
colnames(data6)
form_reg<-as.formula(
paste0(
"cpp~",
paste(colnames(traindata)[1:11],collapse = "+")))
form_reg
set.seed(42)#保证可重复性
fit_rf_reg<-randomForest(form_reg, data=traindata,ntree=500,mtry=6, importance=T)
#模型概要
fit_rf_reg
#ntree参数与error之间的关系图
plot(fit_rf_reg,main="error&trees")
#变量的重要性
importance(fit_rf_reg)
varImpPlot(fit_rf_reg,main = "Variable importance plot")
varImpPlot(fit_rf_reg,main = "Variable importance plot",type=1)
varImpPlot(fit_rf_reg,main = "Variable importance plot",type=2)
#偏依赖图,自变量与因变量之间的关系
partialPlot(x=fit_rf_reg,pred.data = traindata,x.var = IGF)
plot(cpp~IGF,data=traindata)#或绘制散点图