Кривые производительности

Введение в кривые производительности

После алгоритма классификации, такого как ClassificationNaiveBayes или TreeBagger обучался на данных, можно хотеть исследовать производительность алгоритма на определенном тестовом наборе данных. Один распространенный способ сделать это состоял бы в том, чтобы вычислить грубую меру производительности, такой как квадратичная потеря или точность, усредненная по целому тестовому набору данных.

Что такое Кривые ROC?

Можно хотеть смотреть производительность классификатора более тесно, например, путем графического вывода кривой Рабочей характеристики получателя (ROC). По определению кривая ROC [1,2] показывает истинный положительный уровень по сравнению с ложным положительным уровнем (эквивалентно, чувствительность по сравнению с 1 спецификой) для различных порогов классификатора выход. Можно использовать его, например, чтобы найти порог, который максимизирует точность классификации или оценить в большем количестве общих черт, как классификатор выполняет в областях высокой чувствительности и высокой специфики.

Оцените производительность классификатора Используя perfcurve

perfcurve вычисляет меры для графика производительности классификатора. Можно использовать эту утилиту, чтобы оценить производительность классификатора на тестовых данных после того, как вы обучите классификатор. Различные меры, такие как среднеквадратическая ошибка, ошибка классификации или экспоненциальная потеря могут обобщить предсказательную силу классификатора в одном номере. Однако кривая производительности предлагает больше информации, когда это позволяет вам исследовать производительность классификатора через область значений порогов на ее выходе.

Можно использовать perfcurve с любым классификатором или, более широко, с любым методом, который возвращает числовой счет к экземпляру входных данных. Условно принятый здесь,

  • Высокий счет, возвращенный классификатором для любого приведенного примера, показывает, что экземпляр вероятен от положительного класса.

  • Низкий балл показывает, что экземпляр вероятен от отрицательных классов.

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

perfcurve не налагает требований к входной области значений счета. Из-за этого отсутствия нормализации можно использовать perfcurve к баллам процесса, возвращенным любой классификацией, регрессией или подходящим методом. perfcurve не делает предположений о природе входных баллов или отношений между музыкой к различным классам. Как пример, рассмотрите задачу с тремя классами, AB, и C, и примите, что баллы, возвращенные некоторым классификатором для двух экземпляров, следующие:

 ABC
экземпляр 10.40.50.1
экземпляр 20.40.10.5

Если вы хотите вычислить кривую производительности для разделения классов A и B, с C проигнорированный, необходимо обратиться к неоднозначности в выборе A по B. Вы могли решить использовать отношение счета, s(A)/s(B), или выиграйте различие, s(A)-s(B); этот выбор мог зависеть от природы этих баллов и их нормализации. perfcurve всегда берет один счет на экземпляр. Если вы только предоставляете музыку к классу A, perfcurve не различает наблюдения 1 и 2. Кривая производительности в этом случае не может быть оптимальной.

perfcurve предназначается для использования с классификаторами, которые возвращают баллы, не тех, которые возвращают только предсказанные классы. Как контрпример, рассмотрите дерево решений, которое возвращает только твердые метки классификации, 0 или 1, для данных с двумя классами. В этом случае кривая производительности уменьшает до одной точки, потому что классифицированные экземпляры могут быть разделены в положительные и отрицательные категории одним способом только.

Для входа, perfcurve берет истинные метки класса для некоторых данных и баллов, присвоенных классификатором этим данным. По умолчанию эта утилита вычисляет кривую Рабочей характеристики получателя (ROC) и возвращает значения 1 специфики или ложный положительный уровень, для X и чувствительность или истинный положительный уровень, для Y. Можно выбрать другие критерии X и Y путем выбора один из нескольких обеспеченных критериев или определения произвольного критерия через анонимную функцию. Можно отобразить вычисленную кривую производительности с помощью plot(X,Y).

perfcurve может вычислить значения для различных критериев, чтобы построить или на x-или на оси Y. Все такие критерии описаны матрицей беспорядка 2 на 2, матрицей стоимости 2 на 2, и 2 1, вектор шкал применился к количествам класса.

confusion матрица, C, задан как

(TPFNFPTN)

где

  • P обозначает "положительный".

  • N обозначает "отрицательный".

  • T обозначает "истинный".

  • F обозначает "ложь".

Например, первая строка матрицы беспорядка задает, как классификатор идентифицирует экземпляры положительного класса: C(1,1) количество правильно идентифицированных положительных экземпляров и C(1,2) количество положительных экземпляров, не распознанных как отрицательное.

Матрица стоимости задает стоимость misclassification для каждой категории:

(Cost(P|P)Cost(N|P)Cost(P|N)Cost(N|N))

где Cost(I|J) стоимость присвоения экземпляра класса J классифицировать I. Обычно Cost(I|J)=0 для I=J. Для гибкости, perfcurve позволяет вам задавать ненулевые затраты для правильной классификации также.

Две шкалы включают предшествующую информацию о вероятностях класса. perfcurve вычисляет эти шкалы путем взятия scale(P)=prior(P)*N и scale(N)=prior(N)*P и нормализация суммы scale(P)+scale(N) к 1. P=TP+FN и N=TN+FP общие количества экземпляра в положительном и отрицательном классе, соответственно. Функция затем применяет шкалы как мультипликативные факторы к количествам от соответствующего класса: perfcurve умножает количества от положительного класса scale(P) и количества от отрицательного класса scale(N). Рассмотрите, например, расчет положительного прогнозирующего значения, PPV = TP/(TP+FP). TP количества прибывают из положительного класса и FP количества прибывают из отрицательного класса. Поэтому необходимо масштабировать TP scale(P) и FP scale(N), и модифицированная формула для PPV с учтенными априорными вероятностями теперь:

PPV=scale(P)*TPscale(P)*TP+scale(N)*FP

Если все баллы в данных выше определенного порога, perfcurve классифицирует все экземпляры как 'positive'. Это означает тот TP общее количество экземпляров в положительном классе и FP общее количество экземпляров в отрицательном классе. В этом случае, PPV просто дан предшествующим:

PPV=prior(P)prior(P)+prior(N)

perfcurve функция возвращает два вектора, X и Y, из критериев качества работы. Каждой мерой является некоторая функция confusion, cost, и scale значения. Можно запросить определенные меры по наименованию или обеспечить указатель на функцию, чтобы вычислить пользовательскую меру. Функция, которую вы обеспечиваете, должна взять confusion, cost, и scale как его три входных параметров и возвращают вектор выходных значений.

Критерий X должна быть монотонная функция положительного количества классификации, или эквивалентно, порог для предоставленных баллов. Если perfcurve не может выполнить взаимно-однозначное отображение между значениями X критерий и пороги счета, это выходит с сообщением об ошибке.

По умолчанию, perfcurve вычисляет значения X и Y критерии всех возможных порогов счета. В качестве альтернативы это может вычислить сокращенное количество определенного X значения, предоставленные как входной параметр. В любом случае, для M требуемые значения, perfcurve вычисляет M+1 значения для X и Y. Первое значение из них M+1 значения являются особенными. perfcurve вычисляет его путем установки TP количество экземпляра, чтобы обнулить и установка TN к общему количеству в отрицательном классе. Это значение соответствует 'reject all' 'Порог' . На стандартной кривой ROC это переводит в дополнительное очко, помещенное в (0,0).

Если существует NaN значения среди входных баллов, perfcurve может обработать их любым из двух способов:

  • Это может отбросить строки с NaN баллы.

  • Это может добавить их в ложные количества классификации в соответствующем классе.

Таким образом, для любого порога, экземпляров с NaN баллы от положительного класса считаются как ложное отрицание (FN), и экземпляры с NaN баллы от отрицательного класса считаются как положительная ложь (FP). В этом случае, первое значение X или Y вычисляется установкой TP обнулять и установка TN к общему количеству минус NaN рассчитайте в отрицательном классе. Для рисунка рассмотрите пример с двумя строками в положительном и двумя строками в отрицательном классе, каждая пара, имеющая NaN счет:

КлассСчет
Отрицательный0.2
ОтрицательныйNaN
Положительный0.7
ПоложительныйNaN

Если вы отбрасываете строки с NaN баллы, затем когда сокращение счета варьируется, perfcurve вычисляет критерии качества работы как в следующей таблице. Например, сокращение 0,5 соответствует средней строке, где строки 1 и 3 классифицируются правильно, и строки 2 и 4 не использованы.

TPFNFPTN
0101
1001
1010

Если вы добавляете строки с NaN баллы к ложной категории в их соответствующих классах, perfcurve вычисляет критерии качества работы как в следующей таблице. Например, сокращение 0,5 соответствует средней строке, где теперь строки 2 и 4 считаются, как неправильно классифицировано. Заметьте это только FN и FP столбцы отличаются между этими двумя таблицами.

TPFNFPTN
0211
1111
1120

Для данных с тремя или больше классами, perfcurve посещает один положительный урок и список отрицательных классов для входа. Функция вычисляет X и Y значения с помощью количеств в положительном классе, чтобы оценить TP и FN, и использование количеств во всех отрицательных классах, чтобы оценить TN и FP. perfcurve может опционально вычислить Y значения для каждого отрицательного класса отдельно и, в дополнение к Y, возвратите матрицу размера M- C, где M число элементов в X или Y и C количество отрицательных классов. Можно использовать эту функциональность, чтобы контролировать компоненты отрицательного вклада класса. Например, можно построить TP рассчитывает на X- ось и FP рассчитывает на Yось. В этом случае возвращенная матрица показывает как FP компонент разделен через отрицательные классы.

Можно также использовать perfcurve оценить доверительные интервалы. perfcurve вычисляет доверительные границы с помощью или перекрестной проверки или начальной загрузки. Если вы предоставляете массивы ячеек для labels и scores, perfcurve перекрестная проверка использования и элементы обработок в массивах ячеек как перекрестная проверка сворачиваются. Если вы устанавливаете входной параметр NBoot к положительному целому числу, perfcurve генерирует nboot загрузите копии, чтобы вычислить pointwise доверительные границы.

perfcurve оценивает доверительные границы с помощью одного из двух методов:

  • Вертикальное усреднение (VA) — оценивает доверительные границы на Y и T в фиксированных значениях X. Используйте XVals введите параметр, чтобы использовать этот метод в вычислительных доверительных границах.

  • Пороговое усреднение (TA) — оценивает доверительные границы для X и Y в фиксированных порогах для положительного счета класса. Используйте TVals введите параметр, чтобы использовать этот метод в вычислительных доверительных границах.

Чтобы использовать веса наблюдения вместо количеств наблюдения, можно использовать 'Weights' параметр в вашем вызове perfcurve. Когда вы используете этот параметр, чтобы вычислить XY и T или вычислить доверительные границы перекрестной проверкой, perfcurve использует ваши предоставленные веса наблюдения вместо количеств наблюдения. Вычислить доверительные границы начальной загрузкой, perfcurve выборки N из N с заменой с помощью весов в качестве вероятностей выборки многочлена.

Смотрите также

|