• Ingen resultater fundet

AUC/ROC

In document Copenhagen Business School (Sider 52-61)

Der er flere måder at måle performance for modeller på. For klassifikationsmodeller kan ROC plottet bruges for at måle, hvor god modellen er til at skelne mellem to klasser givet forskellige thresholds. Den kan også bruges på modeller, som har mere end to klasser. Desuden findes der andre performancemål, som kan benyttes for at måle en klassifikationsmodel. Disse bliver gennemgået i dette afsnit.

I dette afsnit er de primære kilder [5] og [11].

3.8.1 Threshold

Ved klassifikation vil alle modeller, i denne rapport, regnes en betinget sandsynlighed for, hvilken klasse en observation tilhører. Omdannelsen fra en sandsynlighed til en kategorisk variabel sker ved brug af et threshold. Da en studerende enten kan været et frafald eller blive på kurset, vil klassifikationen være binær i denne rapport.

Default threshold er 0.5. Det vil sige, at når den estimerede betingede sandsynlighed er ]0.5; 1], klassificeres eleven til at være et frafald. Ellers klassificeres eleven til at være et ikke-frafald. Threshold kan ændres afhængigt af, hvordan de forskellige klassifikationer vægtes. Det kan være, at nogle skoler ønsker en konservativ model, som generelt er god til at prædiktere frafald. Her kan threshold sættes lidt lavere, så flere studerende klassificeres til at være frafald. Det kan eksempelvis være fra0.5 til 0.3. Den studerende vil derfor klassificeres som et frafald, hvis den estimerede betingede sandsynlighed er over0.3.

Hvis skolen omvendt er interesseret i, at man gerne vil være sikker på, at et frafald faktisk er et frafald, kan thresholdet hæves fra 0.5 til 0.7. Da vil færre studerende generelt bliver klassificeret som frafald.

I denne rapport bruges threshold 0.5 som det generelle threshold ved klassifikations-modellerne.

I næste afsnit vil confusion matrix blive gennemgået, som bruges ved dannelse af klassifikationsmodeller.

3.8.2 Confusion matrix, sensitivitet og specificitet

Binære klassifikationsmodeller kan lave to typer af fejl. De kan enten klassificere en elev til at være et frafald, selvom eleven ikke er et frafald (falsk positiv). Eller klassificere en elev som ikke-falde, selvom eleven faktisk er et frafald (falsk negativ).

Dette kan illustreres i en på følgende måde:

Faktisk

Ikke-frafald Frafald Prædiktion Ikke-frafald SP F P

Frafald F N SN

Tabel 6: Confusion matrix

HvorSP = Sand Positiv, FP = Falsk Positiv, FN = Falsk Negativ og SN = Sand Negativ.

Dermed kan følgende mål for klassifikationerne beregnes:

SP R/Sensitivitet= SP SP +F N

HvorSPR= Sand Positiv Rate. Med andre ord er det raten for, hvor ofte modellen klassificerer et faktisk frafald til at være et frafald. Dermed kanSPR bruges som et mål for, hvor god modellen er til at håndtere den positive klassifikation.

Derudover kræves det, at specificitet udregnes. Specificiteten indikerer, hvor god modellen er til at klassificere elever, som ikke frafalder og beregnes på følgende måde.

Specif icitet= SN F P +SN

F P R= 1−specif icitet= F P F P +SN HvorFPR = falsk Positiv Raten [5].

3.8.3 Performancemål

precision,recall ogf1-score er alle mål for klassifikationsmodellens performance. Til forskel for SPR og FPR vilprecision ogrecall og f1-score beregnes for alle klasser i responsvariablen. Alle parametrene kan tage værdierne i intervallet ]0,1[, hvor 1 er teoretisk maksimum.

3.8.3.1 Precision

Ned udgangspunkt i den positive klasse kanprecision ses som, hvor præcis modellen er i sin positiv klassificering. Den måler, hvor mange rigtige klassificeringer af den positive klasse modellen har lavet ud af alle de positive klassificeringer.

precision= SP (SP +F P)

3.8.3.2 Recall

For den positive klasse errecall præcis det samme som SPR. recall= SP

(SP +F N) 3.8.3.3 Accuracy

Accuracy for en model beregnes på følgende måde.

accuracy= (SP +SN) (SP +SN +F P +F N) 3.8.3.4 F1-score

f1-scoren er en vægtning af precision og recall. Man kan brugef1-scoren som et mål for modellens generelle performance og regnes på følgende måde.

f1-Score= 2∗precision∗recall (precision+recall) 3.8.3.5 Samlet

I performance tabellerne i afsnit 4.5 findes en variabel ved navn "samlet". Denne variabel er et gennemsnit af performancemålene for de forskellige klasser. Samlet kan for eksempel regnes for f1-score på følgende måde

samlet= 0.5∗f1-Score0+ 0.5∗f1-score1

Hvorf1-score0 er scoren for ikke-frafald.

3.8.4 Receiver Operating Characteristic (ROC)

ROC-kurven viser forholdet mellemSPRogFPR for en klassifikationsmodel. Denne illustrerer modellens performance ved brug af forskellige thresholds. Et eksempel på ROC-kurve kan ses på figur 11. Det ønskes at have den højeste SPR samtidig med den lavesteFPR. Dette svarer til, at klassifikationsmodellen klassificerer flest muligt korrekt. Sensitivitet og specificitet er omvendt proportionale. Det vil sige, at hvis sensitiviteten stiger, vil specificiteten falde. Threshold for klassifikationen påvirker sensitivitet og specificitet for modellen. Når threshold falder, vil der forekomme flere positive klassifikationer og dermed vil sensitiviteten stige. Dette resulterer i et fald i specificiteten. Omvendt når threshold stiger, vil antallet af negative klassifikationer stige. En stigning i antal negative klassifikationer vil medføre en højere specificitet, hvilket resulterer i et fald i sensitiviteten.

Figur 11: ROC-kurve 3.8.4.1 Area Under Curve (AUC)

En klassifikationmodels evne til at klassificere, på tværs af alle thresholds, måles ved AUC, arealet under ROC-kurven [5]. Jo tættere AUC er på 1, des bedre er modellen, da 1 er et teoretisk maksimum. En AUC på 0.5 svarer til, at der gættes tilfældigt på, om den studerende er et frafald eller et ikke-frafald. På figur 11 vil en AUC på 50% medføre, at ROC-kurven ligger på den stiplede linje.

I denne rapport vil AUC, blandt andre, blive brugt som mål for klassifikationsmo-dellernes performance.

I dette kapitel er teorien gennemgået, som skal anvendes i analysen på Edaptios data. I næste kapitel vil teorien blive brugt til at bygge modellerne.

4 Analyse

I denne analyse anvendes ovenstående teori på data fra Edaptio. Alle modellerne vil blive opstillet i samme rækkefølge som i teorikapitlet.

I afsnit 4.1 vil vi gennemgå, hvordan vi håndterer data. Dette indebærer håndtering af uregelmæssigheder og ubalance i datasættet. Afsnit 4.2 indeholder alle logistiske modeller. Dette gælder både Plain Logistiske Regression, men også de regulariserede udgaver. Desuden bruger vi de logistiske regressionsmodeller som baseline.

I afsnit 4.3 vil vi bruge Random Forest på Edaptios data og analysere resultaterne.

Derefter vil vi i afsnit 4.4 implementere XGboost. Efter træmodellerne vil vi imple-mentere et Neurale Netværk med og uden regularisering i afsnit 4.5. Der vil være en balanceret og ubalanceret version af alle tidligere nævnte modeller. Som den sidste model implementerer vi en Stacked Machine Learning model i afsnit 4.6. I denne

benytter vi de bedst performende versioner af de tidligere implementerede model-ler bortset fra Neuralt Netværk. Til sidst vil afsnit 4.7 sammenligne og opsummere resultaterne fra alle implementerede modeller.

4.1 Datagrundlag

4.1.1 Valg af datasæt

Som nævnt i afsnit 2.5 aggregeres data på ugeniveau. For at gøre aktiviterne for hver studerende sammenlignelige, har vi valgt at bruge kursusuger fremfor kalenderuger.

Dette gør at studerende, som har været tilmeldt kurset på tværs af år, kan sammen-lignes. En kursusuge tilsvarer en aktivitetsuge indenfor kursets start- og slutdato for en studerende. I nogle tilfælde var der hverken start- eller slutdato for kurset.

Måden dette er håndteret på, er, at vi bruger datoen for dén studerende på kurset, som har haft den første aktivitet på kurset. På samme måde vælges slutdatoen for et kursus ved, at vi bruger dén studerende med den seneste aktivitet på kurset. Selvom det havde været bedre med de faktiske start- og slutdatoer for kurset, så er data håndteret på denne måde for ikke at miste for meget data.

Derudover vælger vi et antal uger, hvor vi observerer de studerendes aktiviteter.

Det kalder vi aktivitetsuger. Hvis aktivitetsuger sættes til 20, udvælges de første 20 ugers aktivitet for hver studerende i givne kurser, som vedkommende er tilmeldt.

Herefter vælger vi det antal af uger, vi gerne vil lave en prædiktion for, som vi kalder forecastuger. Hvisforecastuger vælges til eksempelvis 10, så finder vi sandsynligheden for frafald indenfor de 10 uger på baggrund af informationen i de foregående uger, der er kategoriseret som aktivitetsuger. Data tilpasses på denne måde for at lave den ønskede prædiktion. For at finde sandsynligheden for et frafald indenfor 5 uger på baggrund af 10 ugers information, så sættes aktivitetsuger = 10 og forecastuger

= 5.

Nåraktivitetsuger vælges, fjernes alle kurser, som er kortere end aktivitetsugen. Det vil sige, hvis kurset varer 12 uger, så fjernes kurset når aktivitetsugen er 13. Dette gør vi, da det ikke er muligt at lave en frafaldsprædiktion på kurser, som allerede er afsluttet. Af samme årsag fjernes studerende, som allerede er frafaldet deres kursus, inden aktivitetsugen. Hvis aktivitetsugen er 13, så vil alle studerende, som er faldet fra deres kursus i 13. uge eller før, fjernes.

Vores overvejelser i forhold til valg af aktivitetsuger er, at vi ikke skal miste for meget data. Samtidig bliverforecastuger valgt, så datasættet indeholder flest mulige frafald og ubalancen mindskes. Disse valg er dog gjort af bekvemmelighedsgrunde, da det samme selvfølgelig kan foretages ved brug af andre aktivitets- og forecastuger.

Det kommer helt an på, hvilken sandsynlighed man gerne vil prædiktere. Valget af aktivitets- og forecastuger bliver derfor mindre kritisk, når Edaptio med årene har

skaffet mere data. Figur 12 illustrerer, hvordan mængden af frafald og antallet af

Figur 12: alle aktivitetsuger og forecastuger

observationer ændres, når forskellige kombinationer af aktivitetsuge og forecastuge vælges. Det første tal i hver punkt er antallet af aktivitetsuger og det andet tal er antallet af forecastuger. Det ses, at vi generelt har en større mængde data, når færre aktivitetsuger vælges. Dette gælder da næsten alle kurser inkluderes i datasættet, se eksempelvis højre del af plottet. Vi får flere frafald ved højere valg afforecastuger. Hvis der ønskes et balanceret datasæt, vil der være et trade-off mellem mængden af data og antal frafald. Dette er desværre, på nuværende tidspunkt, også et problem man må acceptere, hvis man står i en situation, hvor der er noget andet, der skal prædikteres.

I figur 13 har vi udvalgt nogle af de mange kombinationer af aktivitetsuger og forecastuger. Disse er udvalgt med udgangspunkt i forholdet mellem antallet af fra-fald og mængden af observationer. Vi vælger aktivitetsuge 13 og forecastuge 11, da vi samlet set får 6852 observationer hvoraf 1659 er frafald. Dermed har vi et me-re balanceme-ret datasæt sammenlignet med for eksempel en aktivitetsuge på 11 og forecastuge på 7.

4.1.2 Ubalance i datasæt

Vi har i denne opgave to klasser. En elev kan enten være et frafald eller et ikke-frafald. Generelt har vi et problem med, at der er langt flere studerende, som er ikke-frafald sammenlignet med frafald. Dette er selvfølgelig positivt, at de fleste stu-derende vælger at blive på deres kurser. Som nævnt i afsnit 2.6 fjernes alle aktiviteter tilhørende to institutioner. Disse to institutioner bidrager til ubalancen i datasættet,

Figur 13: Udvalgte aktivitetsuger og forecastuger

da der ikke indgår frafald. Ifølge Edaptio er grunden hertil, at disse skoler ikke rap-porterer frafald. Data for disse institutioner udgør næsten halvdelen af datasættet.

Ved at inkludere dem gives der anledning til forkerte prædikterede sandsynligheder.

Dette vil skævvride alle parameterestimater, hvis modellen opfatter studerende som ikke-frafald, når dette er forkert. Derfor har vi valgt at fjerne disse institutioner fra datasættet. Desværre medfører det også, at vi ender med et mindre datasæt.

Figur 14 illustrerer andelen af frafald og ikke-frafald ved valg afaktivitetsuge 13 og forecastuge 11. Selvom vi har fjernet disse institutioner fra datasættet, illustreres det tydeligt af figur 14, at data stadig er ubalanceret. Cirka 25% af de studerende er et frafald.

Ubalance i datasættet kan medføre, at modellen ikke er i stand til at skelne mel-lem de to klasser. Derfor vil modellen fokusere på at prædiktere klassen med flest observationer. Vi har derfor valgt at lave to udgaver af hver model. Den ene er en balanceret model, hvor den anden er en ubalanceret model.

I næste afsnit vil der være en gennemgang af, hvordan modellerne balanceres.

4.1.3 Håndtering af klasse ubalance

Én måde at håndtere ubalancen i datasættet på er ved at vægte de to klasser for-skelligt ved modellering. Vægtene for de forskellige klasser findes ved brug af ligning (31).

wj =n/ c∗

n

X

i=1

I(yi =j)

!

(31)

Figur 14: Fordeling af frafald og ikke-frafald efter skæringsdato

Hvorj ∈ {0,1}, wj er vægten for klassej, n = antal observationer, c= antallet af forskellige klasser i datasættet, I(yi =j)er en indikator funktion, som har værdien én, hvis yi tilhører klasse j. Man har opnået balance i modellen, hvis modellens objektfunktion påvirkes lige meget af hver klasse. Balance opnås ved at skalere den overrepræsenterede klasses påvirkning ned og skalere den underrepræsenterede klas-ses påvirkning op. Hvis klasse 1 forekommer 10 gange hyppigere i data end klasse 0, så opnås balance i modellen ved at vægte påvirkningen af objektfunktionen for klasse 0, 10 gange højere end klasse 1. Denne skalering finder sted i fitting af mo-dellen. Den balancerede model kan sammenlignes med den ikke balancerede model ved at se på resultaterne begge modeller opnår på testdatasættet.

class_weightvil tilføje en vægt til hver klasse i datasættet. Måden hvorpå vægtene tilføjes, varierer fra model til model [12][13].

Logistisk regression

For Logistisk regression vil vægte blive tilføjet i loss-funktionen [14] . Loss-funktionen dannes ud fra Maximum likelihood [15][16], der er beskrevet i afsnit 2.

Sklearns7 implementering minimerer loss-funktionen til at finde de optimale β -værdier [17].

Fremover vil Balanceret logistisk regression refererer til en logistisk regressions mo-del, som vægter begge klasser lige højt.

7Python pakken, brugt til at implementere Logistisk regression

Træmodeller

Sklearns8 algoritme for Random Forest har også en hyperparameter til at vægte klasserne. For Random Forest modellen vil vægten påvirke split kriteriet for hver decision node [12][18].

I XGboost implementeringen bruges scale_pos_weight til skalere gradienten til loss-funktionen for den positive klasse, som er frafald i vores rapport[19].

Neural Netværk

I Keras9Nerualt Netværk implementation findes også en vægtningsparameter. Denne hyperparameter tilføjer også vægte til loss-funktionen [20][21].

4.1.4 Endeligt datasæt

Vi har at gøre med et supervised Machine Learning problem i denne rapport. Vi sørger derfor for at transformere data, så vi har en designmatrice X og en vektor med responsvariable y. Vi transponerer data, så vi i søjlerne har variablene fra ta-bel 2 for hver uge. Det vil sige, at hver kolonne indeholder hver variata-bel for hver uge.

Med aktivitetsuge 13 og forecastuge 11 ender vi med 214 kolonner og 6851 rækker.

Variablen dropouts fra tabel 2 bruges som response-variabel.

Vi har valgt at standardisere data til at have middelværdi 0og varians 1. På denne måde bliver data mere sammenlignelig. Dette gør vi, selvom det ikke er nødvendigt for de træbaserede algoritmer, Random Forest og XGboost. Det er særligt vigtigt at standardisere data til regulariseret Logistisk regression og Neuralt Netværk.

4.1.5 Threshold

Eftersom vi prædikterer en sandsynlighed, skal der bruges et threshold til at klassi-ficere en studerende til at være er et frafald eller ikke-frafald. Standard threshold er som regel0.5, som vi nævner i afsnit 3.8. Vi vil prøve at justere på denne parameter for at se, om det kan være en hjælp mod ubalancen i datasættet. Yderligere har Edaptio oplyst, at de gerne vil have to typer af modeller. Den ene model skal sikre, at næsten alle frafald bliver prædikteret. Med andre ord skal den hellere prædiktere flere ikke-frafald som frafald, end omvendt. Den anden model skal derimod være sikker i sin prædiktion af frafald. Grunden til den sidste model er, at skolen har knappe ressourcer i form af studievejledere og lærere. Derfor bliver de nødt til at være sikre på, at en studerende er ved at falde fra, før de bruger ressourcerne.

Disse to typer af modeller kan vi lave ved blandt andet at justere på threshold parameteren. Vi vil i hver af de kommende modeller prøve at justere denne parameter

8Python pakken brugt, til at implementere Random Forest

9Python pakken brugt til at implementere Neuralt Netværk

og derefter måle performance ved brug af confusion matricer,accuracy, f1-score og recall.

In document Copenhagen Business School (Sider 52-61)