Zacznij terazZacznij za darmo

Ocena dopasowania modelu na danych testowych

Wiesz już, że ocena dopasowania modelu na danych testowych ma większy sens niż ocena na danych treningowych. W tym ćwiczeniu wyznaczysz zatem miarę dokładności na danych spoza zbioru treningowego.

Wcześniej trzeba jednak wykonać kilka kroków przygotowawczych. Wróć do zbioru defaultData. W środowisku masz już załadowany model logitModelNew.

Pamiętaj, że w pełnej analizie zawsze należy porównywać różne warianty modeli – również (a właściwie przede wszystkim) na danych testowych.

Dokładność na danych treningowych – przy optymalnym progu 0,3 – wynosi 0.7922901. Upewnij się, że rozumiesz, czy w modelu dochodzi do przeuczenia.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w analizie marketingowej w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Na początek podziel losowo zbiór danych na zbiór treningowy i testowy. Zbiór treningowy powinien zawierać 2/3 wszystkich danych.

  • Następnie uruchom model i nadaj mu nazwę logitTrainNew. Skorzystaj z podanego wzoru.

  • Wykonaj predykcje na zbiorze testowym, a potem oblicz dokładność na danych testowych za pomocą macierzy pomyłek. Uwaga: pakietu SDMTools nie można już pobierać z repozytorium CRAN. Na własnym komputerze zainstaluj go za pomocą remotes::install_version("SDMTools", "1.1-221.2").

  • Porównaj dokładność na danych testowych z wartością uzyskaną na danych treningowych, podaną powyżej.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
Edytuj i uruchom kod