Modul 7: Support Vector Machines - OPGAVE
Denne opgave tager udgangspunkt i tingene gennemgået i afsnittet “Modul 7: Support Vector Machines - EKSEMPEL.”
Datamaterialet til denne opgave findes i datafilen “kreditdefaults_fixed.csv,” som vi også så på i opgaven til modul 2. Det er variablen default.status vi vil forsøge at beskrive/forudsige på baggrund af en række af datasættets øvrige variable.
Indlæsning af data
For at reducere beregningstiden indlæses kun de første 2.000 observationer fra datasættet.
<- read.csv('kreditdefaults_fixed.csv')[1:2000,] kredit
- Variablene kredit.rating og bolig.status er begge givet som tekst. Lav hver variabel om til en faktor v.hj.a. følgende kommandoer:
$kredit.rating %<>% factor(levels=c("A","B","C","D","E","F","G"))
kredit$bolig.status %<>% factor(levels=c("Belånt","Ejer","Lejer")) kredit
- Variablen default.status er ligeledes givet som tekst. Lav variablen om til en faktor (og udskrift samtidig værdien ikke default med default v.hj.a. følgende kommandoer:
$default.status <- ifelse(kredit$default.status=="ikke default","ikke_default","default")
kredit$default.status <- factor(kredit$default.status, levels=c("ikke_default", "default")) kredit
- Klargør datasættet til estimation af en SVM model variablen default.status ved at opdele datasættet i trænings- og testdatasæt (træning = 2/3, test = 1/3)
Estimation af Support Vector Machine model
Estimér en SVM model med radial kerne for default.status og alle øvrige variable som forklarende variable
Prædiktér default.status i testdatasættet på baggrund af modellen i punkt 4 og beregn den tilhørende confusion matrix
Prædiktér sandsynligheder for værdierne ikke_default og default for default.status i testdatasættet på baggrund af modellen i punkt 4 og tegn histogrammer af sandsynlighederne (opdelt på ikke_default hhv. default)
Tegn ROC-kurve og beregn AUC hørende til modellen fra punkt 4
Vurdér betydningen af de enkelte forklarende variable i modellen fra punkt 4 ud fra variable importance og partial dependence plots
Reestimér modellen fra punkt 4, idet observationer af default vægtes 10 gange højere end observationer af ikke_default (sættes v.hj.a. class.weights(…))