• Ingen resultater fundet

XGboost

In document Copenhagen Business School (Sider 77-82)

Hyperparameter Værdi

max_depth 28

min_weight_child 0

reg_alpha 2

reg_lambda 0

scale_pos_weight 1

gamma 1

learning_rate 0.01 n_estimators 5000 subsample 0.9 colsample_bytree 0.5 tree_method auto

booster gbtree

seed 1000

(a) Ubalanceret

Hyperparameter Værdi

max_depth 30

min_weight_child 0

reg_alpha 0

reg_lambda 0

scale_pos_weight 3

gamma 0

learning_rate 0.01 n_estimators 5000 subsample 0.9 colsample_bytree 0.5 tree_method auto

booster gbtree

seed 1000

(b) Balanceret Tabel 28: Hyperparametre for XGboost

til auto. Den næstsidste parameter vi har sat erbooster. Denne har vi sat til GBtree, så XGboost er baseret på gradient boosted træer. Til slut erseed parameteren sat, så resultaterne kan genskabes ved nye kørsler.

Det ses af tabel 28a, at dybden af træer ændres til 28, hvor regulariseringspara-metrene reg_alpha og gamma er sat til henholdsvis 2 og 1, for den ubalancerede model. Dermed benyttes regulariseringsparametrene, når modellen ikke balanceres i træningsfasen. Bortset fra disse parametre er alle de øvrige parametre de samme som ved den balancerede model.

4.4.2 Ubalanceret klassifikationsresultater

Den ubalancerede XGboost trænes ved brug af hyperparametrene fra tabel 28a.

Dermed sættes scale_pos_weight til 1. Derudover bruger vi early stopping på 50.

Det vil sige, når modellen ikke forbedres efter 50 epoch, stoppes træningen.

Figur 18 illustrerer hvordan log loss, ligning (13) i afsnit 3.5.2.1, ændrer sig for hver epoch. Den blå kurve er log loss for træningsdatasættet, hvor den orange kurve er log loss for valideringsdatasættet. Valideringsdatasættet er dannet ved at splitte træningsdatasættet. Hvor 80% af observaitonerne danner et nyt træningsdatasæt og 20% danner valideringsdatasættet. Valideringsdatasættet bliver benyttet til at teste modellens performance for hver epoch under træning. Træning stoppes, når log-loss

Figur 18: Trænings- og valideringsloss for ubalanceret XGboost

Faktisk Ikke-frafald Frafald Prædiktion Ikke-frafald 912 110

Frafald 129 220

(a) Threshold 0.3

Faktisk Ikke-frafald Frafald Prædiktion Ikke-frafald 998 167

Frafald 43 163

(b) Threshold 0.5 Tabel 29: Confusion Matrix: Ubalanceret XGboost

for valideringsdatasættet stopper med at falde og ikke er faldet over de efterfølgende 50 epochs. Derfor stopper træningsfasen efter 1332 epoch og modellen ved epoch 1282 benyttes.

Tabel 29b opsummerer værdierne for XGboost modellen med threshold på0.5. Det ses, at modellen klarer sig væsentligt bedre sammenlignet med de logistiske model-ler. Modellen formår at klassificere næsten halvdelen af frafald til at være frafald, samtidig formår den at klassificere størstedelen af ikke-frafald. Ud af alle ikke-frafald prædikterer den kun 43 forkert.

Det er illustreret i tabel 29a, hvordan en ubalanceret XGboost model performer, når thresholdet sættes ned fra0.5 til0.3. Det ses, at modellen generelt prædikterer flere frafald. Det vil sige, at flere frafald bliver prædikteret rigtigt, men samtidig stiger fejlprædiktionen af ikke-frafald. En nedsætning af threshold er medvirkende til at model accuracy bliver forværret.

accuracy0.3 = 0.8257 accuracy0.5 = 0.8468

Tabel 30 er et resumé af modellens performance med threshold0.3 og0.5. Det ses,

Klassifikations Ikke-frafald Frafald Samlet Parametre(threshold)

precision(0.3) 0.89 0.63 0.76

recall(0.3) 0.88 0.67 0.77

f1-score(0.3) 0.88 0.65 0.77

precision(0.5) 0.86 0.79 0.82

recall(0.5) 0.96 0.49 0.73

f1-score(0.5) 0.90 0.61 0.76

Tabel 30: Performance: Ubalanceret XGboost

ved at sænke threshold til0.3bliver precision 3%-point højere for ikke-frafald, men 8%-point lavere i recall for ikke-frafald. Precision for frafald falder med 16%-point, hvor recall stiger med 18%-point. Dette leder til en samlet stigning i f1-score og recall, hvorimod samlet precision forværres.

I næste afsnit vil vi undersøge den balancerede XGBoost model.

4.4.3 Balanceret klassifikationsresultater

I dette afsnit balanceres XGboost modellen. Det gøres ved at sætte hyperparamete-ren, scale_pos_weight = 3.

Det ses af figur 19, at træningen stoppes efter 577 epoch, da modellen ikke

forbed-Figur 19: Trænings- og valideringsloss for balanceret XGboost

res herefter. Dermed benyttes modellen ved epoch 527, hvilket resulterer i confusion matricerne i tabel 31.

Det ses af tabel 31b, at modellen generelt bliver bedre til at prædiktere frafald sammenlignet med den ubalancerede version. Ved at nedsætte threshold til 0.3 bliver modellen bedre til at prædiktere frafald. Dette kommer som konsekvens af, at flere ikke-frafald bliver fejlprædikteret. Denne stigning i fejlprædiktion udtrykkes ved et

Faktisk Ikke-frafald Frafald Prædiktion Ikke-frafald 882 88

Frafald 159 242

(a) Threshold 0.3

Faktisk Ikke-frafald Frafald Prædiktion Ikke-frafald 975 136

Frafald 66 194

(b) Threshold 0.5 Tabel 31: Confusion Matrix: Balanceret XGboost

fald i modelaccuracy.

accuracy0.3 = 0.8198 accuracy0.5 = 0.8527

Klassifikations Ikke-frafald Frafald Samlet Parametre(threshold)

precision(0.3) 0.91 0.60 0.76

recall(0.3) 0.85 0.73 0.79

f1-score(0.3) 0.88 0.66 0.77

precision(0.5) 0.88 0.75 0.81

recall(0.5) 0.94 0.59 0.76

f1-score(0.5) 0.91 0.66 0.78

Tabel 32: Performance: Balanceret XGboost

Tabel 32 er et resumé af modellens performance med threshold 0.5 og 0.3. Den balancerede version af XGboost opnår højere precision for ikke-frafald, dog er den lavere for frafald sammenlignet med den ubalancerede model. Samtidig bliver recall lavere for ikke-frafald og højere for frafald. Ved at sænke thresholdet til 0.3 stiger modellens samlederecall fra0.76til0.79, hvorimod den samlede precision falder fra 0.81 til0.76. Den samlede f1-score falder også fra 0.78til 0.77.

4.4.4 Receiver Operating Characteristic (ROC)

I dette afsnit vil vi undersøge hvordan de to typer af modeller, altså den ubalancere-de og balancereubalancere-de moubalancere-del, performer ved forskellige valg af threshold. Til ubalancere-dette vil vi plotte ROC-kurven. Det ses af figur 20, at der fås en AUC på0.8792 for den balan-cerede model og0.8704for den ubalancerede model. Det vil sige, at den balancerede XGboost generelt performer bedre ved brug af forskellige thresholds sammenlignet med den ubalancerede XGboost.

Figur 20: ROC-kurve for ubalanceret og balanceret XGboost 4.4.5 Sammenfatning

Vi har i dette afsnit set på to typer XGboost modeller. Den ene model er ubalance-ret hvorimod den anden er balanceubalance-ret. Derudover prøver vi at justere på threshold for at se, om dette har en effekt på performance. Figur 20 illustrerer, at den balan-cerede XGboost model har en højere AUC end den ubalanbalan-cerede XGboost model.

Det fremgår af tabellerne 30 og 32, at der er en mindre forskel ved balancering af modellen. Det ses af tabellerne, atrecall stiger for den balancerede model, hvorimod precision falder. Der skal derfor tages højde for dette trade-off, når en model vælges.

In document Copenhagen Business School (Sider 77-82)