Je Random Forest aanpassen voor fraudedetectie
In deze oefening ga je de opties van de random forest-classifier verkennen: we kennen gewichten toe en stellen de vorm van de beslissingsbomen in het bos bij. Je definieert de gewichten handmatig om de scheefheid in de klassenverdeling iets te corrigeren. In ons geval hebben we 300 fraude- tegenover 7000 niet-fraudegevallen, dus door de gewichtsverhouding op 1:12 te zetten, komen we uit op ongeveer 1/3 fraude en 2/3 niet-fraude. Dat is goed genoeg om het model op te trainen.
De data in deze oefening is al opgesplitst in een trainings- en testset, dus je hoeft je alleen te richten op het definiëren van je model. Je kunt daarna de functie get_model_results() als snelkoppeling gebruiken. Deze functie traint het model op je trainingsdata, maakt voorspellingen en haalt prestatiemetrics op, vergelijkbaar met de stappen die je in de vorige oefeningen hebt gedaan.
Deze oefening maakt deel uit van de cursus
Fraudedetectie in Python
Oefeninstructies
- Pas de optie
weightaan om de verhouding voor niet-fraude- en fraudegevallen op 1 tot 12 te zetten, en stel het splitsingscriterium in op 'entropy'. - Stel de maximale diepte in op 10.
- Stel het minimumaantal voorbeelden in bladknopen in op 10.
- Stel het aantal bomen dat in het model wordt gebruikt in op 20.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Change the model options
model = RandomForestClassifier(bootstrap=True, class_weight={0:____, 1:____}, criterion='____',
# Change depth of model
max_depth=____,
# Change the number of samples in leaf nodes
min_samples_leaf=____,
# Change the number of trees to use
n_estimators=____, n_jobs=-1, random_state=5)
# Run the function get_model_results
get_model_results(X_train, y_train, X_test, y_test, model)