【问题标题】:J48 tree in R - train and test classificationR中的J48树 - 训练和测试分类
【发布时间】:2016-09-02 18:08:12
【问题描述】:

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

library("RWeka")

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

summary(resultJ48)

但我想将我的数据分成 70% 的训练和 30% 的测试,我该如何使用 J48 算法来做到这一点?

非常感谢!

【问题讨论】:

  • 无替换数据采样怎么样(见?sample

标签: r classification weka decision-tree j48


【解决方案1】:

使用caTools 包的sample.split() 函数。它比 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)

【讨论】:

  • dataTest.pred是什么意思?您只是将所有信息放在一起在 dataTest 中创建 pred 以将结果保存到它?
  • 还有,我怎么能看到这样的结果摘要?
  • 使用summary(resultJ48) 获得“weka-specific”输出“正确分类的实例....” --- dataTest.pred 保存训练分类器的输出,应用于 30% 训练数据。我认为您可能想在您的测试数据上使用 J48 的输出。所以我只是写了一些对我来说很自然的东西。我无法推断您实际上想要做什么,因为您只是在问题中写了一些非常通用的东西。 table() 只是比较 testdata 和预测的 testdata 属性值。简单的混淆矩阵。
【解决方案2】:

【讨论】:

    【解决方案3】:

    它不是在 R 中,而是在 java 中......但是你会理解它的逻辑。

    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 中实现。希望对你有帮助:)

    【讨论】:

      【解决方案4】:

      如果你不想使用 RWeka 以外的更多包,可以使用 runif:

      library("RWeka")
      data <- read.csv("try.csv")
      
      randoms=runif(nrow(data))
      
      resultJ48 <- J48(classificationTry~., data[randoms<=0.7,])
      PredTest <- predict(resultJ48, newdata = data[randoms>0.7,])
      table(data[randoms>0.7,]$classificationTry, PredTest)
      

      【讨论】:

        猜你喜欢
        • 2016-12-20
        • 2016-04-04
        • 1970-01-01
        • 2018-04-22
        • 2020-08-18
        • 1970-01-01
        • 2016-06-13
        • 2021-01-01
        • 2019-08-12
        相关资源
        最近更新 更多