Aan de slagGa gratis aan de slag

Pas een logistisch regressiemodel toe

Zodra je je willekeurige trainings- en testsets hebt, kun je met de functie glm() een logistisch regressiemodel fitten op je trainingsset. glm() is een geavanceerdere versie van lm() die naast de standaard ordinary least squares-regressie ook andere regressietypen ondersteunt.

Geef zeker het argument family = "binomial" mee aan glm() om aan te geven dat je logistische (in plaats van lineaire) regressie wilt doen. Bijvoorbeeld:

glm(Target ~ ., family = "binomial", dataset)

Maak je geen zorgen over waarschuwingen zoals glm.fit: algorithm did not converge of glm.fit: fitted probabilities numerically 0 or 1 occurred. Dit komt vaak voor bij kleine gegevenssets en veroorzaakt meestal geen problemen. Het betekent doorgaans dat je gegevensset perfect te scheiden is, wat lastig kan zijn voor de wiskunde achter het model, maar R's glm()-functie is bijna altijd robuust genoeg om dit zonder problemen aan te kunnen.

Zodra je een glm()-model op je gegevensset hebt gefit, kun je de uitkomst (bijv. rots of mijn) op de test-set voorspellen met de functie predict() en het argument type = "response":

predict(my_model, test, type = "response")

Deze oefening maakt deel uit van de cursus

Machine Learning met caret in R

Cursus bekijken

Oefeninstructies

  • Fit een logistische regressie, model genoemd, om Class te voorspellen met alle andere variabelen als voorspellers. Gebruik de trainingsset van Sonar.
  • Voorspel met dat model op de test-set. Noem het resultaat p, zoals je eerder hebt gedaan.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Fit glm model: model


# Predict on test: p
Code bewerken en uitvoeren