Medianimputatie toepassen
In dit hoofdstuk werk je met een variant van de Wisconsin Breast Cancer-gegevensset. Deze gegevensset is een klassiek binair classificatieprobleem: 50% van de monsters is goedaardig, 50% is kwaadaardig, en de uitdaging is om te bepalen welke welke zijn.
Deze gegevensset is interessant omdat veel voorspellers ontbrekende waarden bevatten en de meeste rijen minstens één ontbrekende waarde hebben. Dat is een uitdaging voor het modelleren, want de meeste Machine Learning-algoritmen kunnen niet direct overweg met ontbrekende waarden. Je eerste ingeving is misschien om een logistisch regressiemodel op deze data te fitten, maar daarvoor heb je eerst een strategie nodig om met de NAs om te gaan.
Gelukkig heeft de functie train() in caret een argument preProcess, waarmee je kunt aangeven dat medianimputatie moet worden gebruikt om de ontbrekende waarden op te vullen. In eerdere hoofdstukken maakte je modellen met train() via formules zoals y ~ .. Een alternatief is om de argumenten x en y aan train() door te geven, waarbij x een object is met de rijen als monsters en de kolommen als features, en y een numerieke vector of factor met de uitkomsten. Anders gezegd: x is een matrix of data frame met de volledige gegevensset die je bijvoorbeeld voor het data-argument in de lm()-aanroep zou gebruiken, maar dan zonder de kolom van de responsvariabele; y is een vector met alleen die responsvariabelekolom.
Voor deze oefening zijn het argument x voor train() als breast_cancer_x en y als breast_cancer_y in je werkruimte geladen.
Deze oefening maakt deel uit van de cursus
Machine Learning met caret in R
Oefeninstructies
- Gebruik de functie
train()om eenglm-model met de naammedian_modelte fitten op de breast cancer-gegevensset. GebruikpreProcess = "medianImpute"om de ontbrekende waarden af te handelen. - Print
median_modelnaar de console.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Apply median imputation: median_model
median_model <- train(
x = ___,
y = ___,
method = ___,
trControl = myControl,
preProcess = ___
)
# Print median_model to console