私はここR. にJ48の決定木で電車やテストを使用したいが、私のコードです:J48の木 - 電車やテストの分類
library("RWeka")
data <- read.csv("try.csv")
resultJ48 <- J48(classificationTry~., data)
summary(resultJ48)
が、私は70%に私のデータを分割したいです列車と30%のテスト、どのように私はそれを行うためにJ48のalgoを使用できますか?
多くの感謝!
私はここR. にJ48の決定木で電車やテストを使用したいが、私のコードです:J48の木 - 電車やテストの分類
library("RWeka")
data <- read.csv("try.csv")
resultJ48 <- J48(classificationTry~., data)
summary(resultJ48)
が、私は70%に私のデータを分割したいです列車と30%のテスト、どのように私はそれを行うためにJ48のalgoを使用できますか?
多くの感謝!
がcaTools
パッケージのsample.split()
機能を使用することができます願っています。それは(私の記憶が正しければメタパッケージです)caret
パッケージよりもleightweightです:
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に作成し、結果を保存しますか? – moshem
また、私はこのように結果の要約をどのように見ることができますか? – moshem
使用 '要約(resultJ48)'「WEKA固有の」出力を得るために「正確に分類インスタンスを....」--- dataTest.predは、あなたの訓練された分類器の出力を保持している30%の学習データに適用されます。あなたのテストデータにJ48の出力を使用したいと思っていました。だから、私は自然に思えるものを書きました。あなたが実際にしたかったことは、あなたの質問に非常に一般的なものを書いただけなので、推測することはできません。 'table()'はtestdataと予測されるtestdata属性値を比較するだけです。簡単な混乱マトリックス。 – knb
あなたはcheck the createDataPartition in caret packageにしたいことがあります。
それは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)
同じロジックで実装してください。それは:)
交換せずにデータのサンプリングについて(参照 'sample'?)どのよう –