Вопрос или проблема
Мне нужна помощь, чтобы понять значение этих различных значений.
В настоящее время я решаю задачи классификации с использованием машинного обучения, и я получил результаты классификации, как показано на изображении ниже.
Чтобы получить результаты, как на изображении, я использую код:
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
print(confusion_matrix(y_test,y_pred))
print(accuracy_score(y_test,y_pred))
print(classification_report(y_test, y_pred))
Затем я также пытаюсь использовать код ниже, чтобы получить полноту, точность и f1-меру
print(precision_score(y_test,y_pred))
print(recall_score(y_test,y_pred))
print(f1_score(y_test,y_pred))
Результаты:
Точность: 0.19601
Полнота: 0.44360
F1-мера: 0.27188
Затем я также пробую этот код для взвешенных результатов, используя этот код:
print(precision_score(y_test,y_pred, average="weighted"))
print(recall_score(y_test,y_pred, average="weighted"))
print(f1_score(y_test,y_pred, average="weighted"))
Результаты:
Взвешенная точность: 0.8588
Взвешенная полнота: 0.7684
Взвешенная F1-мера: 0.8048
Проблема сейчас в том, что я уже запутался во всех этих значениях. Что означает значение avg/total на изображении, значения второго кода, который я попытался использовать, и значения взвешенных метрик в моем третьем коде. Какое значение я должен использовать, чтобы понять, хорош ли результат классификатора или нет? Надеюсь, кто-то сможет мне помочь.
То, что вы получаете, – это разные метрики по предсказаниям, которые вы сделали с помощью данной модели (пока я не дал вам никакой новой информации).
То, что вы напечатали, – это несколько результатов различных метрик, которые измеряют разные параметры в модели.
Как вы должны знать, иногда дата-сайентист (вы в этом случае) должен знать, как модель справляется с положительными случаями, или как она справляется с отрицательными случаями и так далее.
Первое, что вы напечатали, называется матрицей ошибок, она сопоставляет информацию о положительных/отрицательных случаях в реальном мире с вашей моделью.
В первом квадратике: когда вы сказали положительный, и это положительный в ваших данных. Последний квадратик отрицательный, и вы сказали отрицательный (в зависимости от того, как осуществляется ваш вывод), 2-й и 3-й квадратики – это ложные положительные и ложные отрицательные.
Точность измеряет, насколько хорошо ваша модель определяет положительные случаи, когда ваша модель говорит, что они положительные, то есть: как ваша модель говорит правду о положительных случаях $Precision = \frac{True Positives}{True Positives+False Positives}$
Полнота измеряет, насколько хорошо ваша модель определяет отрицательные случаи, когда ваша модель говорит, что они отрицательные, то есть: как ваша модель говорит правду об отрицательных случаях $Recall = \frac{True Negatives}{True Negatives+False Negatives}$
F1-мера дает вам гармоническое среднее точности и полноты. Оценки, соответствующие каждому классу, скажут вам, насколько точно классификатор классифицирует данные в этом конкретном классе по сравнению со всеми другими классами.
Поддержка – это количество образцов истинного отклика, которые находятся в этом классе.
Вы можете найти документацию по обеим метрикам в документации sklearn.
Ответ или решение
Вопрос о различных метриках производительности в задачах классификации является актуальным для специалистов в области машинного обучения. Давайте подробно рассмотрим основные метрики, упомянутые в вашем коде, и их различия.
1. Матрица путаницы (Confusion Matrix)
Матрица путаницы — это таблица, которая позволяет визуализировать производительность классификационной модели. В ней представлены истинные значения классов и предсказанные значения. Она содержит четыре основных параметра:
- True Positives (TP): количество правильных положительных прогнозов.
- True Negatives (TN): количество правильных отрицательных прогнозов.
- False Positives (FP): количество ложных положительных прогнозов (модель предсказала положительный класс, но фактически это негативный).
- False Negatives (FN): количество ложных отрицательных прогнозов (модель предсказала негативный класс, но фактически это положительный).
2. Точность (Precision)
Точность измеряет, насколько надежны ваши положительные прогнозы. Она рассчитывается по формуле:
[
Precision = \frac{TP}{TP + FP}
]
Это значение показывает долю истинных положительных примеров среди всех предсказанных положительных.
3. Полнота (Recall)
Полнота показывает, насколько хорошо модель выявляет все положительные случаи. Она рассчитывается по формуле:
[
Recall = \frac{TP}{TP + FN}
]
Это значение позволяет оценить, какое количество положительных примеров модель смогла обнаружить.
4. F1-Score
F1-Score — это гармоническое среднее между точностью и полнотой. Эта метрика особенно полезна, когда необходимо сбалансировать значения точности и полноты. Она рассчитывается по формуле:
[
F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}
]
5. Взвешенные метрики (Weighted Metrics)
При наличии нескольких классов, важно учитывать, как производительность модели варьируется по этим классам, особенно если классы несбалансированы (т.е. один класс представлен значительно большим количеством экземпляров, чем другой). Взвешенные метрики учитывают число экземпляров в каждом классе при вычислении итоговых значений точности, полноты и F1-score. Они рассчитываются как:
- Weighted Precision: учитывает вес каждого класса в зависимости от его представительства в данных.
- Weighted Recall: аналогично, учитывает представительность классов.
- Weighted F1-Score: основан на взвешенных значениях точности и полноты.
Как оценить производительность модели?
- Контекст задачи: Выбор метрики зависит от вашей специфической задачи. Например, в задачах, где важнее минимизировать ложные отрицательные результаты (например, в медицине), полнота будет вашим главным приоритетом. В других случаях, когда важно минимизировать ложные положительные результаты (например, в задачах фильтрации спама), стоит ориентироваться на точность.
- Сбалансированность классов: Если классы несбалансированы, лучше использовать взвешенные метрики для более точного представления производительности вашей модели.
Заключение
Каждая из приведенных метрик предоставляет уникальный взгляд на производительность вашей модели. Чтобы оценить, насколько хорошо работает классификатор, важно рассмотреть множество различных метрик в контексте специфики задачи и данных, с которыми вы работаете. Определите, какая метрика наиболее критична для вашей задачи, и используйте ее как основной ориентир в оценке производительности модели.