#------------------random forest------------------
#-------------------------female---------------------------
#------------------1.装包
install.packages("pacman")
pacman::p_load(randomForest,caret,pROC)
install.packages("openxlsx")
library(openxlsx)
#------------------2.导数据
f_product=read.xlsx('D:\\文件\\2023春 (大三下)\\2022~2023市调\\省赛\\第二次报告\\男女差异分析\\女性.xlsx')
attach(f_product)
head(f_product)
#------------------3.划分训练、测试集
dim(f_product) # 查看几行几列
trainlist1 <- createDataPartition(使用频次,p=0.7,list=F) # female
trainset1 <-f_product[trainlist1,]
testset1 <- f_product[-trainlist1,]
dim(trainset1)
dim(testset1)
#--------------------建模-------------------------
#--------1.build model by traindata
set.seed(1)
rf.train1=randomForest(as.factor(使用频次)~安全性+产品效果+产品成分+包装+气味+品牌,data=trainset1,importance = T,na.action=na.omit)
rf.train1
plot(rf.train1,main="randomforest origion")
#---------2.predicting in testdata
set.seed(1)
rf.test1=predict(rf.train1,newdata = testset1,type='class')
rf.cf1 <- caret::confusionMatrix(as.factor(rf.test1),as.factor(testset1$f_useCondition))
#---------3.ROC、AUC
rf.test1=predict(rf.train1,newdata=testset1,type='prob')
head(rf.test1)
roc.rf1=multiclass.roc(testset1$f_useCondition,rf.test1)
roc.rf1
#-----------------------------male---------------------------------
#------------------1.装包
install.packages("pacman")
pacman::p_load(randomForest,caret,pROC)
#------------------2.导数据
m_product=read.xlsx('D:\\文件\\2023春 (大三下)\\2022~2023市调\\省赛\\第二次报告\\男女差异分析\\男性.xlsx')
attach(m_product)
head(m_product)
#------------------3.划分训练、测试集
dim(m_product) # 查看几行几列
trainlist2 <- createDataPartition(m_product$使用频次,p=0.7,list=F) # male
trainset2 <-m_product[trainlist2,]
testset2 <- m_product[-trainlist2,]
dim(trainset2)
dim(testset2)
#--------------------建模---------------------
#-------1.build model by traindata
set.seed(1)
rf.train2=randomForest(as.factor(使用频次)~安全性+产品效果+产品成分+包装+气味+品牌,data=trainset2,importance = T,na.action=na.omit)
rf.train2
plot(rf.train2,main="randomforest origion")
#---------2.predicting in testdata
set.seed(1)
rf.test2=predict(rf.train2,newdata = testset2,type='class')
rf.cf2 <- caret::confusionMatrix(as.factor(rf.test2),as.factor(testset2$m_useCondition))
#---------3.ROC、AUC
rf.test2=predict(rf.train2,newdata=testset2,type='prob')
head(rf.test2)
roc.rf2=multiclass.roc(testset2$m_useCondition,rf.test2)
roc.rf2
随机森林(后面ROC有错误)
最新推荐文章于 2024-04-28 11:11:46 发布