Median-Imputation anwenden
In diesem Kapitel arbeitest du mit einer Variante des Wisconsin-Breast-Cancer-Datensatzes. Dieser Datensatz stellt ein klassisches binäres Klassifikationsproblem dar: 50 % der Proben sind gutartig, 50 % bösartig, und die Aufgabe ist, beides auseinanderzuhalten.
Der Datensatz ist interessant, weil viele Prädiktoren fehlende Werte enthalten und die meisten Zeilen mindestens einen fehlenden Wert haben. Das ist eine Herausforderung fürs Modellieren, denn die meisten Machine-Learning-Algorithmen können fehlende Werte nicht ohne Weiteres verarbeiten. Dein erster Impuls könnte zum Beispiel sein, ein logistisches Regressionsmodell auf die Daten zu fitten. Bevor du das tust, brauchst du jedoch eine Strategie für den Umgang mit den NAs.
Zum Glück hat die Funktion train() in caret ein Argument namens preProcess, mit dem du festlegen kannst, dass zur Auffüllung fehlender Werte die Median-Imputation verwendet wird. In früheren Kapiteln hast du mit train() Modelle mithilfe von Formeln wie y ~ . erstellt. Eine Alternative ist, die Argumente x und y an train() zu übergeben, wobei x ein Objekt mit Beobachtungen in den Zeilen und Merkmalen in den Spalten ist und y ein numerischer oder Faktor-Vektor mit den Zielwerten. Anders gesagt: x ist eine Matrix oder ein Data Frame, der den gesamten Datensatz enthält, den du z. B. beim data-Argument eines lm()-Aufrufs verwenden würdest, jedoch ohne die Spalte der Zielvariable; y ist ein Vektor, der nur die Spalte der Zielvariable enthält.
Für diese Übung ist das Argument x für train() als breast_cancer_x und y als breast_cancer_y in deinem Workspace geladen.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit caret in R
Anleitung zur Übung
- Verwende die Funktion
train(), um einglm-Modell namensmedian_modelauf den Breast-Cancer-Datensatz zu fitten. NutzepreProcess = "medianImpute", um die fehlenden Werte zu behandeln. - Gib
median_modelin der Konsole aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Apply median imputation: median_model
median_model <- train(
x = ___,
y = ___,
method = ___,
trControl = myControl,
preProcess = ___
)
# Print median_model to console