Ich bevorzuge Caret wegen seiner Parametertuning-Fähigkeit und seiner einheitlichen Benutzeroberfläche, aber ich habe festgestellt, dass immer vollständige Datensätze (dh ohne NAs) erforderlich sind, auch wenn das angewendete "nackte" Modell NAs zulässt. Das ist sehr lästig, insofern sollte man arbeitsintensive Anrechnungsmethoden anwenden, die an erster Stelle nicht notwendig sind. Wie kann man sich der Zuschreibung entziehen und trotzdem die Vorteile von Caret nutzen?
r
missing-data
data-imputation
caret
Fredrik
quelle
quelle
Antworten:
An die Train-Funktion in Caret können Sie den Parameter na.action = na.pass und no preprocessing übergeben (nicht preProcess angeben, sondern den Standardwert NULL belassen). Dadurch werden die unveränderten NA-Werte direkt an die Vorhersagefunktion übergeben (dies führt dazu, dass Vorhersagefunktionen, die fehlende Werte nicht unterstützen, fehlschlagen, für die Sie preProcess angeben müssten, um die fehlenden Werte vor dem Aufrufen der Vorhersagefunktion zu ändern). Beispielsweise:
In diesem Fall behandelt C5.0 fehlende Werte selbstständig.
quelle
train
, um diena.action = na.pass
Option zu setzen, wird der folgende Fehler verursacht:Something is wrong; all the RMSE metric values are missing
Haben Sie versucht, die NAs neu zu codieren? Etwas> 3 Standardabweichungen außerhalb Ihrer Daten (z. B. -12345) sollten C5.0 dazu anregen, diese separat vorherzusagen, wie dies bei NAs der Fall ist.
quelle
Ich denke, Ihre Lösung wäre, die Werte unter Verwendung der predict () - Funktion zu unterstellen.
Sehen Sie
?predict.train
für weitere Details.Sie können verwenden
na.omit
zulassen, dass Caret Werte anpasst. Beispielsweise:von http://www.inside-r.org/packages/cran/caret/docs/predict.train
Eine andere Lösung wäre, während der Vorverarbeitung der Daten zu unterstellen :
von http://www.inside-r.org/node/86978
quelle