Балансировка классов
Дисбаланс классов может существенно влиять на результаты предсказания — это хорошо видно по разнице между показателями recall и accuracy. Чтобы устранить дисбаланс, классам обычно назначают равные веса. Аргумент class_weight в DecisionTreeClassifier из библиотеки sklearn позволяет сделать классы "balanced".
Давайте исправим нашу модель, решив проблему дисбаланса:
- сначала вы настроите модель со сбалансированными классами;
- затем обучите её на тренировочных данных;
- наконец, проверите её точность на тестовой выборке.
Переменные features_train, target_train, features_test и target_test уже доступны в вашем рабочем пространстве.
Это упражнение является частью курса
HR-аналитика: прогнозирование текучести кадров на 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)