R語言實現隨機森林


R語言實現隨機森林

install.packages("pacman")
install.packages("caret")
install.packages("pROC")
install.packages()
install.packages("randomForest")

library(randomForest)
library(ggplot2)
library(lattice)
library(pacman)
library(caret)
library(pROC)
library(rpart)

data(iris)
dim(iris)
trainlist<-createDataPartition(iris$Species,p=0.7,list=FALSE)
#取出百分之七十的iris數據
trainset<-iris[trainlist,]
testset<-iris[-trainlist,]
#一部分分成訓練集,另一部分則為測試集
set.seed(2000)#生成2000個隨機數
rf.train<-randomForest(as.factor(Species)~.,data=trainset,
                       importance=TRUE,na.action = na.pass)
#因變量是Species,.表示其他都為自變量,數據來自trainset
#importance表示隨機森林需要給出每一個變量重要性的排序
#na.action表示如何處理缺失值
plot(rf.train,main = "randomforest")#畫圖,main表示設置標題
#三種顏色代表三種鳶尾花,黑色代表三種鳶尾花平均值
#橫軸是決策樹的數目,縱軸是誤差數
rf.test<-predict(rf.train,newdata = testset,type = "class")
rf.test
rf.cf<-caret::confusionMatrix(as.factor(rf.test),
                              as.factor(testset$Species))
rf.test2<-predict(rf.train,newdata = testset,type="prob")
roc.rf<-multiclass.roc(testset$Species,rf.test2)
fit1=rpart(Species~.,data=trainset)
pre2=predict(fit1,testset,type="prob")
roc1<-multiclass.roc(testset$Species,pre2[,1])
plot(roc1$rocs[[1]],col="red")
plot(roc1$rocs[[3]],add=TRUE,col="green")
#畫出roc曲線,顯示預測效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM