Imputazione KNN

Machine Learning con caret in R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Gestire i valori mancanti

  • L’imputazione con mediana è veloce, ma…
  • Può dare risultati errati se i dati mancano non a caso
  • Imputazione k-nearest neighbors (KNN)
  • Imputa in base a righe “simili” non mancanti
Machine Learning con caret in R

Esempio: missing not at random

  • Fingiamo che le auto piccole non riportino i cavalli (hp)
  • La mediana qui è scorretta: assume che le auto piccole abbiano potenza medio‑alta
# Generate data with missing values
mtcars[mtcars$disp < 140, "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[, 2:4]

# Use median imputation
model <- train(X, Y, method = "glm", preProcess = "medianImpute")
print(min(model$results$RMSE))
3.612713
Machine Learning con caret in R

Esempio: missing not at random

  • L’imputazione KNN è migliore
  • Usa auto con disp/cyl simili per imputare
  • Produce un modello più accurato (ma più lento)
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Confronta con 3,61 per l’imputazione con mediana

Machine Learning con caret in R

Passiamo alla pratica !

Machine Learning con caret in R

Preparing Video For Download...