Балансування класів
Це може суттєво впливати на результати прогнозування, що видно з різниці між метриками recall і accuracy. Щоб розв'язати проблему дисбалансу, зазвичай кожному класу надають однакові ваги. Використовуючи аргумент class_weight у DecisionTreeClassifier з sklearn, можна зробити ваги класів "balanced".
Виправмо нашу модель, розв'язавши проблему дисбалансу:
- спочатку налаштуйте модель зі збалансованими класами
- потім навчіть її на тренувальних даних
- нарешті, перевірте її точність на тестовій вибірці
Змінні features_train, target_train, features_test і target_test уже доступні у вашому робочому середовищі.
Ця вправа є частиною курсу
HR Analytics: прогнозування плинності персоналу в Python
Інструкції до вправи
- Ініціалізуйте класифікатор дерева рішень, обріжте дерево, обмеживши його максимальну глибину до 5, і збалансуйте ваги класів.
- Навчіть нову модель.
- Виведіть
scoreточності прогнозу (у відсоткових пунктах) для тестової вибірки.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)