Równoważenie klas
Nierównowaga klas może znacząco wpływać na wyniki predykcji – widać to wyraźnie w różnicy między wartościami recall i accuracy. Aby rozwiązać ten problem, zwykle przypisuje się równe wagi każdej klasie. Argument class_weight w klasie DecisionTreeClassifier z biblioteki sklearn pozwala ustawić klasy jako "balanced".
Poprawmy nasz model, eliminując problem nierównowagi klas:
- najpierw skonfigurujesz model z wyważonymi klasami,
- następnie dopasowujesz go do danych treningowych,
- na końcu sprawdzisz jego dokładność na zbiorze testowym.
Zmienne features_train, target_train, features_test i target_test są już dostępne w twoim środowisku pracy.
To ćwiczenie jest częścią kursu
HR Analytics: Przewidywanie rotacji pracowników w Pythonie
Instrukcje do ćwiczenia
- Zainicjalizuj klasyfikator drzewa decyzyjnego, przytnij drzewo, ograniczając jego maksymalną głębokość do 5, i wyważ wagi klas.
- Dopasuj nowy model.
- Wyświetl dokładność
scorepredykcji (w punktach procentowych) dla zbioru testowego.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Initialize the DecisionTreeClassifier
model_depth_5_b = DecisionTreeClassifier(____=5,class_weight="____",random_state=42)
# Fit the model
model_depth_5_b.____(features_train,target_train)
# Print the accuracy of the prediction (in percentage points) for the test set
print(model_depth_5_b.____(features_test,____)*100)