2016-10-20 23 views
0

Для проблемы с двоичной классификацией в качестве примера ниже, насколько логичным будет, если я использую «Точность» в качестве показателя в обучении и нахожу оценку AUC с помощью пакета ROCR? Или я должен использовать «ROC» как показатель всегда для вычисления оценки AUC? Набор данных несбалансирован.Оценка оценки в машинном обучении

control <- trainControl(method="cv", number=5) 

fit <- train(diabetes~., data=PimaIndiansDiabetes, method="gbm", metric="Accuracy", trControl=control) 
+0

Точность смещена по несбалансированным данным, вы, скорее всего, захотите использовать любую метрику, которая не подвержена смещениям балансов классов. «ROCR» - хороший пакет для расчета метрики, вы хотите, чтобы кривая (ROC) или область под этой кривой (AUROC)? – zacdav

+0

Да, мне нужна кривая (ROC) или область под этой кривой (AUROC). –

ответ

1

Для оценки эффективности любого классификатора самого основные метрической/стендовый метка матрица путаницы в точности, точности, напомнит, F-меры, ОКР и AUC все стволовые из матрицы путаницы. Подойдя к вашему вопросу, точность как показатель производительности достаточна, чтобы судить о бинарном классификаторе? Ответ «Да», только если распределение данных сбалансировано, то есть есть равное количество объектов класса 1 и класса-2. Но если данные не сбалансированы (как в вашем случае), то это большой NO, чтобы использовать точность в качестве ключевого показателя производительности. Простой пример, чтобы развенчать привлекательность/ошибочность точности: Рассмотрим *** телефонная компания хочет проверить количество дефектных сотовых телефонов, которые она производит. Теперь в среднем по 10 плохих телефонов в каждых 1000 и построенный классификатор никогда не ловит дефектный/плохой телефон в 1000 телефонах, которые он отбирал, тогда точность классификатора по-прежнему составляет 99%, так как TP = 990 и TN = 0 и точность = TP + TN/1000. Таким образом, лучшим или по крайней мере для оценки производительности является F-оценка каждого класса, и оттуда на нем можно перейти на следующий уровень построения кривых ROC и оценки AUC.

+0

Неверно, что точность хороша только для сбалансированных данных. Да, это может привести к очень странному поведению, когда у вас есть чрезвычайный дисбаланс (например, 1-99), но набор данных, который имеет пропорции, такие как (1-4-3-8), может быть очень точным с точностью. Это рассуждение ошибочно с самого начала. Вы не подходите к оценочной метрике к распределению данных, вы подходите к оценке **, на какой вопрос вы пытаетесь ответить **. Никогда наоборот. – lejlot

+0

На самом деле, моя цель - построить кривую ROC и найти область под этой кривой (AUROC). Как я указал в вопросе, после того, как я использовал «Точность» или «ROC» в качестве оценочной метрики в функции поезда, я получил несколько разные результаты F1score или AUC. Я хочу знать причину. Так в этом случае, следует ли использовать «ROC» в качестве показателя? –

+1

@lejlot Я не пытался сказать, что метрика оценки и распределение данных связаны. Все, что я пытался передать, это использовать только Точность для оценки производительности классификатора - это то, что я не рекомендую. Благодаря! –