Классификация ML: precision, recall, порог и дисбаланс — задачи
Задачи ML на predict_proba, порог классификации, precision, recall и дисбаланс классов.
Состав подборки: 7 задач на код. Условия и формат проверки указаны на странице каждой задачи.
Разберите маленький пример
В наборе 99 отрицательных случаев и один положительный. Постоянный прогноз «отрицательный» даёт accuracy 99%, но не находит единственный положительный случай. Поэтому оценка зависит от цели и цены пропусков, а не только от процента правильных ответов.
На что обратить внимание
- Порядок колонок predict_proba определяется classes_; не угадывайте колонку нужного класса.
- Повышение порога меняет набор положительных предсказаний; проверьте FP и FN.
- Подбирайте порог на валидационных данных, сохраняя независимую проверку результата.
- При небольшом наборе проверьте, сохранились ли представители классов после разбиения.
Порядок практики
- predict_proba и classes_: найдите вероятность нужного класса — код.
- Порог классификации 0.4 и 0.5: какие метки изменятся — код.
- Разбиение train/test в scikit-learn: stratify и редкий класс — код.
- Accuracy при дисбалансе классов: сравнение с baseline — код.
- Порог классификации по цене FN и FP: precision и recall — код.
- DummyClassifier most_frequent: baseline для редкого класса — код.
- False negatives модели: какие положительные случаи пропущены — код.
Куда двигаться дальше
Основы обучения и проверки модели — бесплатный курс первой ML-модели на Python.
- predictproba и classes: найдите вероятность нужного класса
Найдите столбец класса 2 по clf.classes, извлеките вероятности и отсортируйте строки по риску.
Машинное обучение с нуля на Python: первая модель - Порог классификации 0.4 и 0.5: какие метки изменятся
Сравните бинарные решения при двух порогах и проверьте, хватит ли мест для дополнительных ручных проверок.
Машинное обучение с нуля на Python: первая модель - Разбиение train/test в scikit-learn: stratify и редкий класс
Зачем нужен stratify=y при разбиении данных на train и test? Пример сохранения долей классов и задача с проверкой.
Машинное обучение с нуля на Python: первая модель - Accuracy при дисбалансе классов: сравнение с baseline
Сравните accuracy модели с постоянным предсказанием самого частого класса train на одном test-наборе.
Машинное обучение с нуля на Python: первая модель - Порог классификации по цене FN и FP: precision и recall
Сравните пороги 0.3 и 0.7 по числу ошибок и весам FN/FP на валидации, вычислите precision и recall.
Машинное обучение с нуля на Python: первая модель - DummyClassifier mostfrequent: baseline для редкого класса
Постройте стратифицированный split и baseline через DummyClassifier; измерьте accuracy, precision, recall и F1.
Машинное обучение с нуля на Python: первая модель - False negatives модели: какие положительные случаи пропущены
Сравните логистическую регрессию с baseline на одном test и соберите строки ложных отрицаний каждой модели.
Машинное обучение с нуля на Python: первая модель
