首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-序列中的J48树及其测试分类

R-序列中的J48树及其测试分类
EN

Stack Overflow用户
提问于 2016-05-07 20:09:38
回答 4查看 9.9K关注 0票数 2

我想在R上的J48决策树中使用训练和测试,这是我的代码:

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

data <- read.csv("try.csv")
resultJ48 <- J48(classificationTry~., data)

summary(resultJ48)

但是我想把我的数据分成70%的训练和30%的测试,我如何使用J48 algo来实现呢?

非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-08 16:24:33

使用sample.split()包的caTools函数。它比caret包更轻量级(如果我没有记错的话,它是一个元包):

代码语言:javascript
复制
library(caTools)

library(RWeka)

data <- read.csv("try.csv")
spl = sample.split(data$someAttribute, SplitRatio = 0.7)

dataTrain = subset(data, spl==TRUE)
dataTest = subset(data, spl==FALSE)

resultJ48 <- J48(as.factor(classAttribute)~., dataTrain) 
dataTest.pred <- predict(resultJ48, newdata = dataTest)
table(dataTest$classAttribute, dataTest.pred)
票数 4
EN

Stack Overflow用户

发布于 2016-05-08 00:53:37

你可能想要检查插入包中的createDataPartition

票数 1
EN

Stack Overflow用户

发布于 2016-05-08 07:57:03

不是在R.但是在爪哇..。但你会理解其中的逻辑。

代码语言:javascript
复制
int trainSize = (int) Math.round(trainingSet.numInstances() * 0.7); //70% split 
int testSize = trainingSet.numInstances() - trainSize;
Instances train = new Instances(trainingSet, 0, trainSize);
Instances test = new Instances(trainingSet, trainSize, testSize)

用相同的逻辑在R中实现。希望它有帮助:)

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

https://stackoverflow.com/questions/37093193

复制
相关文章

相似问题

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