我想在R上的J48决策树中使用训练和测试,这是我的代码:
library("RWeka")
data <- read.csv("try.csv")
resultJ48 <- J48(classificationTry~., data)
summary(resultJ48)但是我想把我的数据分成70%的训练和30%的测试,我如何使用J48 algo来实现呢?
非常感谢!
发布于 2016-05-08 16:24:33
使用sample.split()包的caTools函数。它比caret包更轻量级(如果我没有记错的话,它是一个元包):
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)发布于 2016-05-08 00:53:37
你可能想要检查插入包中的createDataPartition。
发布于 2016-05-08 07:57:03
不是在R.但是在爪哇..。但你会理解其中的逻辑。
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中实现。希望它有帮助:)
https://stackoverflow.com/questions/37093193
复制相似问题