Differenz zwischen Vorhersage (Modell) und Vorhersage (Modell $ finalModel) unter Verwendung von Caret für die Klassifizierung in R

8

Was ist der Unterschied zwischen

? %Vor%

und

%Vor%

Ich trainiere das Modell mit preProcess=c("center", "scale")

%Vor%

und ich erhalte 0 echte positive Ergebnisse, wenn ich es auf einem zentrierten und skalierten TestSet

ausführe %Vor%

, aber erhalten Sie einige echte positive, wenn ich es auf einem unskalierten testSet ausführen. Ich muss das rf $ finalModel verwenden, um einige echte Postives auf dem zentrierten und skalierten TestSet und das RF-Objekt auf dem unskalierten ... zu erhalten. Was fehlt mir?

Bearbeiten

Tests:

%Vor%

bei normalem TestSet:

%Vor%

auf zentriert und skaliert testSetCS:

%Vor%

so scheint es, als ob das $ finalModel das gleiche Format von trainingsSet und testSet benötigt, während das trainierte Objekt nur unzensierte und unskalierte Daten akzeptiert, unabhängig vom gewählten preProcess-Parameter?

Vorhersagecode (wobei testSet normale Daten und testSetCS zentriert und skaliert ist):

%Vor%     
Frank 13.01.2014, 16:55
quelle

1 Antwort

12

Frank,

Das ist wirklich ähnlich zu Ihrer anderen Frage auf Gegen Validiert .

Sie müssen wirklich

1) zeigen Sie Ihren genauen Vorhersagecode für jedes Ergebnis an

2) geben Sie uns ein reproduzierbares Beispiel.

Mit den normalen testSet , RF.CS und RF.CS$finalModel sollten Sie nicht die gleichen Ergebnisse erhalten und wir sollten das reproduzieren können. Außerdem gibt es Syntaxfehler in Ihrem Code, so dass es nicht genau das sein kann, was Sie ausgeführt haben.

Schließlich bin ich nicht wirklich sicher, warum Sie das Objekt finalModel überhaupt verwenden würden. Der Punkt von train besteht darin, die Details zu behandeln und die Dinge auf diese Weise zu tun (was Ihre Option ist), um den vollständigen Satz von Code zu umgehen, der normalerweise angewendet würde.

Hier ist ein reproduzierbares Beispiel:

%Vor%

Hier sind einige Ergebnisse:

%Vor%

Max

    
topepo 14.01.2014, 23:05
quelle