Средние значения точности, отзыва и fscore для каждой метки

Я проверяю модель классификатора sklearn и хочу быстро получить средние значения точности, отзыва и f-показателя. Как я могу получить эти значения?

Я не хочу самостоятельно кодировать перекрестную проверку, вместо этого я использую функцию cross_validation.cross_val_score. Можно ли использовать эту функцию для получения предполагаемых усредненных значений для каждой метки с помощью соответствующей функции оценки?


person s0kol    schedule 22.05.2015    source источник
comment
Подумайте о том, чтобы принять ответ, если он соответствует вашим потребностям, взятым из оставшихся без ответа вопросов. или прокомментируйте ответ, чтобы я мог заполнить   -  person RPresle    schedule 25.05.2015


Ответы (2)


Вы можете рассмотреть возможность использования всех методов из пакета sklearn.metrics.

Я думаю, что этот метод может делайте то, что ожидаете. Он дает вам 2D-массив с одной строкой для каждого целевого уникального значения и столбцами для точности, отзыва, оценки и поддержки.

Для быстрого ведения журнала вы можете использовать классификационный_репорт тоже.

person RPresle    schedule 25.05.2015

Для точности и отзывчивости в пакете метрик есть функция под названием precision_recall_curve, который должен делать то, что вы ищете.

Предполагая, что у вас есть обученный классификатор clf, тестовые образцы X и тестовые цели Y, тогда вам нужно будет передать цели и прогнозируемые вероятности классов. В следующем примере будет найдена точность и отзыв для задачи с двумя классами.

probs = clf.predict_proba(X)[:,1]
precision, recall, thresholds = precision_recall_curve(Y, probs)

F-оценку можно найти с помощью другой функции в пакете метрик f1_score. Это используется аналогичным образом, но требует в качестве аргумента предсказанного членства в классе, а не вероятности членства.

person mattsilver    schedule 25.05.2015