#############R分类
###什么是分类问题
###创建误差|分类混淆矩阵
cp <- read.csv("college-perf.csv")
str(cp)
#因子重新排序
dput(levels(cp$Perf))
#常规因子排序
cp$Perf <- factor(cp$Perf,levels=c("Low", "Medium","High"))
str(cp)
#顺序因子
cp$Pred <- ordered(cp$Pred,levels=c("Low", "Medium","High"))
cp$Perf <- ordered(cp$Perf,levels=c("Low", "Medium","High"))
str(cp)
#reorder()排序
# 使用函数reorder(),该函数有三个参数:因子、排序依据的数据和汇总数据的函数
# 复制一份数据
iss <- InsectSprays
iss$spray
iss$spray <- reorder(iss$spray,iss$count,FUN = mean)
iss$spray
#混淆矩阵
tab <- table(cp[,c('Perf','Pred')])
tab
#百分比
prop.table(tab)
round(prop.table(tab,1)*100,1)
#将向量转为数据框
a <- paste(round(prop.table(tab,1)*100,1),'%',sep='')
paste0(round(prop.table(tab,1)*100,1),'%')
as.data.frame(matrix(a,ncol=3,dimnames=list(Perf=c("Low", "Medium","High"),Pred=c("Low", "Medium","High"))))
#混淆矩阵可视化
barplot(tab,legend=TRUE)
mosaicplot(tab,main='prediction performance')
#在不同类别上比较模型的表现
summary(tab)
library(caret)
confusionMatrix(tab)
?confusionMatrix
###创建ROC图
library(ROCR)
dat <- read.csv("roc-example-1.csv")
head(dat)
#创建预测对象
pred <- prediction(dat$prob,dat$class)
#创建预测表现对象
?performance
perf <- performance(pred,'tpr','fpr')
#画图
old.par <- par()
par(mfrow=c(1,2))
plot(perf)
lines(par()$usr[1:2],par()$usr[3:4])
#利用基准值
perf2 <- performance(pred,'acc','cutoff')
str(perf2)
plot(perf2)
par(old.par)
#查看AUC值
performance(pred,'auc')
#找出各个真阳性比率的截断点
str(perf)
prob.cuts <- data.frame(cut=perf@alpha.values[[1]],fpr=perf@x.values[[1]],tpr=perf@y.values[[1]])
head(prob.cuts)
tail(prob.cuts)
#选择真阳性比率对应的截断值
#使用任意的分类标签
dat <- read.csv("roc-example-2.csv")
head(dat)
pred <- prediction(dat$prob,dat$class,label.ordering = c('non-buyer','buyer'))#通过传递分类标签分量明确指出标签
perf <- performance(pred,'tpr','fpr')
plot(perf)
lines(par()$usr[1:2],par()$usr[3:4])
###构建、绘制、和评估——分类树
library(rpart)
library(rpart.plot)
library(caret)
bn <- read.csv("banknote-authentication.csv")
head(bn)
str(bn)
#创建数据分块
set.seed(1000)
table(bn$class)
train.idx <- createDataPartition(bn$class,p=0.7,list=FALSE)
#创建树
?rpart
mod <- rpart(class~.,data=bn[train.idx,],method='class',control=rpart.control(minsplit=20,cp=0.01))
#查看文本输出
mod
#创建树图
prp(mod,type=4,extra=2,digits=3)
prp(mod,type=2,extra
R分类技术
最新推荐文章于 2021-03-01 23:21:41 发布
本文深入探讨了R语言在分类问题上的应用,包括使用R实现的各种机器学习算法,如逻辑回归、决策树、随机森林等。通过实例分析,展示了如何预处理数据、构建分类模型以及评估模型性能,为读者提供了理解和实践R分类技术的全面指南。
摘要由CSDN通过智能技术生成