2017-03-22 8 views
1

Ich bin das Modell auf Zugdaten passen. Im Folgenden sind meine Variablenkorrekte Art der Vorhersage von Testdaten mit c5.0 in r

Train Variables = Client_Code,A,B,C,D,E,Target 
Test Variables = Client_Code,A,B,C,D,E,Target 

ich das Modell trainierte mit Code folgenden

model <- c5.0(Target~.,data=train[,-1]) # removing Client_Code 

Sobald das Modell trainiert wird, ich es mit folgendem Code

model_test <- predict(model,test[,-1]) 

Wo, wie mein Test bin die Vorhersage Daten haben auch Target Spalte, die ich vorhersage.Ist über die richtige Art der Vorhersage oder ich muss die Zielvariable in verschiedenen Variablen speichern und dann an den Mod übergeben el, wenn ich es trainiere und dasselbe, während ich auf dem Testdatensatz voraussage.

+0

Gibt es einen Grund, warum Sie denken, dass das falsch ist? Findest du einen Fehler oder etwas? – MrFlick

Antwort

1

Ich denke, es ist ganz in Ordnung, die Klassenvariable zu trennen, die Sie vorhersagen möchten. Zum Beispiel für die credit data:

library(C50) 

# Load data 
crx <- read.table(file="./crx.data", header=FALSE, sep=",") 

set.seed(1234) 
# Randomize data 
crx <- crx[ sample(nrow(crx)), ] 

# Classification data and its labels 
X <- crx[,1:15] 
y <- crx[,16] 

# Divide into training and test data 
trainX <- X[1:500,] 
trainy <- y[1:500] 
testX <- X[501:690,] 
testy <- y[501:690] 

# Build model 
model <- C50::C5.0(trainX, trainy) 
summary(model) 

# Predicting values 
p <- predict(model, testX, type="class") 

# Check accuracy 
accuracy <- sum(p == testy)/length(p) 
paste0((accuracy * 100), "% accuracy") 
Verwandte Themen