R语言(ggplot)如何绘制分组比较的箱线图?如下图所示

Python061

R语言(ggplot)如何绘制分组比较的箱线图?如下图所示,第1张

boxplot(x1~name,da,at=c(1,5,9),names=paste(c('A','B','C'),'x1',sep='.'),xlim=c(0,12))

boxplot(x2~name,da,at=c(2,6,10),add=T,names=paste(c('A','B','C'),'x2',sep='.'))

boxplot(x3~name,da,at=c(3,7,11),add=T,names=paste(c('A','B','C'),'x3',sep='.'))

框内的数字是行变量和列变量之间的相关系数R,相关系数R绝对值越大,颜色越深(红正,蓝负)。统计学中,P值越小相关性越显著,一般来说 一个*代表显著相关(P值为0.01,选取不同参数可能不一样)、两个**代表极显著相关(P值为0.001)、三个***代表极极显著相关(P值为0.0001).   图中还可以看出,相关系数R的绝对值0.67(变量P50与T之间)以上的都显著相关,至少一个*。符合一般关于相关系数R值的显著性统计。

R语言利用caret包比较ROC曲线

我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能。

操作

加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3:

library(ROCR)

library(e1071)

library("pROC")

library(caret)

library("pROC")

control = trainControl(method = "repaetedcv",

number = 10,

repeats =3,

classProbs = TRUE,

summaryFunction = twoClassSummary)

使用glm在训练数据集上训练一个分类器

glm.model = train(churn ~ .,

data= trainset,

method = "glm",

metric = "ROC",

trControl = control)

使用svm在训练数据集上训练一个分类器

svm.model = train(churn ~ .,

data= trainset,

method = "svmRadial",

metric = "ROC",

trControl = control)

使用rpart函数查看rpart在训练数据集上的运行情况

rpart.model = train(churn ~ .,

data = trainset,

method = "svmRadial",

metric = "ROC",

trControl = control)

使用不同的已经训练好的数据分类预测:

glm.probs = predict(glm.model,testset[,!names(testset) %in% c("churn")],type = "prob")

svm.probs = predict(svm.model,testset[,!names(testset) %in% c("churn")],type = "prob")

rpart.probs = predict(rpart.model,testset[,!names(testset) %in% c("churn")],type = "prob")

生成每个模型的ROC曲线,将它们绘制在一个图中:

glm.ROC = roc(response = testset[,c("churn")],

predictor = glm.probs$yes,

levels = levels(testset[,c("churn")]))

plot(glm.ROC,type = "S",col = "red")

svm.ROC = roc(response = testset[,c("churn")],

predictor = svm.probs$yes,

levels = levels(testset[,c("churn")]))

plot(svm.ROC,add = TRUE,col = "green")

rpart.ROC = roc(response = testset[,c("churn")],

predictor = rpart.probs$yes,

levels = levels(testset[,c("churn")]))

plot(rpart.ROC,add = TRUE,col = "blue")

三种分类器的ROC曲线

说明将不同的分类模型的ROC曲线绘制在同一个图中进行比较,设置训练过程的控制参数为重复三次的10折交叉验证,模型性能的评估参数为twoClassSummary,然后在使用glm,svm,rpart,三种不同的方法建立分类模型。

从图中可以看出,svm对训练集的预测结果(未调优)是三种分类算法里最好的。