KNN atama

R ile caret kullanarak Machine Learning

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Eksik değerlerle başa çıkma

  • Medyan atama hızlıdır, ancak…
  • Eksikler rassal değilse yanlış sonuç verebilir
  • k-en yakın komşu (KNN) atama
  • Eksiksiz, “benzer” satırlara göre atar
R ile caret kullanarak Machine Learning

Örnek: rassal olmayan eksikler

  • Küçük arabaların beygir gücü rapor edilmedi varsayalım
  • Bu durumda medyan atama yanlıştır: küçük arabaların orta-büyük beygir gücü olduğunu varsayar
# Eksik değerli veri üret
mtcars[mtcars$disp < 140, "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[, 2:4]

# Medyan atama kullan
model <- train(X, Y, method = "glm", preProcess = "medianImpute")
print(min(model$results$RMSE))
3.612713
R ile caret kullanarak Machine Learning

Örnek: rassal olmayan eksikler

  • KNN atama daha iyidir
  • Atama için disp / cyl değeri benzer arabaları kullanır
  • Daha doğru (ama daha yavaş) bir model verir
# KNN atama kullan
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Medyan atamadaki 3.61 ile karşılaştırın

R ile caret kullanarak Machine Learning

Hadi pratik yapalım!

R ile caret kullanarak Machine Learning

Preparing Video For Download...