Hodnocení přesnosti modelu na nových datech
Teď už víš, že má větší smysl sledovat přesnost modelu na nových (out-of-sample) datech než na těch, na kterých byl natrénován. V tomto cvičení proto sestavíš míru přesnosti na out-of-sample datech.
Nejdřív ale budeš muset provést několik přípravných kroků. Pracuj opět s defaultData. V prostředí máš již načtený model logitModelNew.
Měj na paměti, že při kompletní analýze bys vždy musel/a porovnávat různé kandidátní modely také – a zejména – na out-of-sample datech.
In-sample přesnost při optimálním prahu 0,3 je 0.7922901.
Ujisti se, že rozumíš tomu, zda dochází k overfittingu.
Toto cvičení je součástí kurzu
Machine Learning for Marketing Analytics in R
Pokyny k cvičení
Nejprve náhodně rozděl datovou sadu na trénovací a testovací část. Trénovací sada má obsahovat 2/3 celkových dat.
Poté rychle spusť model a pojmenuj ho
logitTrainNew. Použij zadaný vzorec.Proveď predikce na testovací sadě a vypočítej out-of-sample přesnost pomocí konfuzní matice. Poznámka:
SDMToolsjiž nelze stáhnout z CRANu. Na svém počítači ho nainstaluj přesremotes::install_version("SDMTools", "1.1-221.2").Porovnej out-of-sample přesnost s in-sample hodnotou uvedenou výše.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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