首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能从汇总中订购输出?

我如何才能从汇总中订购输出?
EN

Stack Overflow用户
提问于 2015-09-19 23:59:31
回答 2查看 46关注 0票数 2

以下代码:

代码语言:javascript
复制
library("C50")

portuguese_scores = read.table("https://raw.githubusercontent.com/JimGorman17/Datasets/master/student-por.csv",sep=";",header=TRUE)
portuguese_scores <- portuguese_scores[,!names(portuguese_scores) %in% c("school", "age", "G1", "G2")]
median_score <- summary(portuguese_scores$G3)['Median']
portuguese_scores$score_gte_than_median <- as.factor(median_score<=portuguese_scores$G3)
portuguese_scores <- portuguese_scores[,!names(portuguese_scores) %in% c("G3")]

set.seed(123)

train_sample <- sample(nrow(portuguese_scores), .9 * nrow(portuguese_scores))
port_train <- portuguese_scores[train_sample,]

learn_DF <- data.frame()

algorithm <- "C5.0 Decision Tree"
for (i in seq(15,100,by=1)) {
  pct_of_training_data <- sample(nrow(port_train), i/100 * nrow(port_train))
  port_train_pct <- port_train[pct_of_training_data,]

  fit <- C5.0(score_gte_than_median ~ ., data=port_train_pct)
  learn_DF <- rbind(learn_DF, data.frame(pct_of_training_set=i, err_pct=sum(predict(fit,port_train_pct) != port_train_pct$score_gte_than_median)/nrow(port_train_pct), type="train", algorithm=algorithm))
}

for (h in seq(.1, .9, by=.1)) {
  algorithm <- paste("Pruning with confidence (",h,")")  
  for (i in seq(15,100,by=1)) {
    pct_of_training_data <- sample(nrow(port_train), i/100 * nrow(port_train))
    port_train_pct <- port_train[pct_of_training_data,]

    ctrl=C5.0Control(CF=h)
    fit <- C5.0(score_gte_than_median ~ ., data=port_train_pct, ctrl=ctrl)
    learn_DF <- rbind(learn_DF, data.frame(pct_of_training_set=i, err_pct=sum(predict(fit,port_train_pct) != port_train_pct$score_gte_than_median)/nrow(port_train_pct), type="train", algorithm=algorithm))
  }
}

aggregate(err_pct~algorithm,data=learn_DF,mean)

生成以下输出:

代码语言:javascript
复制
     algorithm    err_pct
1               C5.0 Decision Tree 0.09895810
2  Pruning with confidence ( 0.1 ) 0.09288930
3  Pruning with confidence ( 0.2 ) 0.09935209
4  Pruning with confidence ( 0.3 ) 0.09496267
5  Pruning with confidence ( 0.4 ) 0.09724305
6  Pruning with confidence ( 0.5 ) 0.09721156
7  Pruning with confidence ( 0.6 ) 0.09695104
8  Pruning with confidence ( 0.7 ) 0.10041991
9  Pruning with confidence ( 0.8 ) 0.09881957
10 Pruning with confidence ( 0.9 ) 0.09611947

我的问题是:

  • 如何将此网格按err_pct而不是algorithm排序?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-20 00:07:45

可以将聚合结果存储在data.frame中,然后进行排序。

代码语言:javascript
复制
res <- aggregate(err_pct~algorithm,data=learn_DF,mean)
res[order(res$err_pct), ]
                         algorithm    err_pct
2  Pruning with confidence ( 0.1 ) 0.09288930
4  Pruning with confidence ( 0.3 ) 0.09496267
10 Pruning with confidence ( 0.9 ) 0.09611947
7  Pruning with confidence ( 0.6 ) 0.09695104
6  Pruning with confidence ( 0.5 ) 0.09721156
5  Pruning with confidence ( 0.4 ) 0.09724305
9  Pruning with confidence ( 0.8 ) 0.09881957
1               C5.0 Decision Tree 0.09895810
3  Pruning with confidence ( 0.2 ) 0.09935209
8  Pruning with confidence ( 0.7 ) 0.10041991
票数 2
EN

Stack Overflow用户

发布于 2015-09-20 00:28:57

您可以在"plry“包中使用安排函数。

代码语言:javascript
复制
library(plyr)
a<-aggregate(err_pct~algorithm,data=learn_DF,mean)
arrange(a,desc(err_pct),algorithm)

这是个建议..。祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32674381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档