Шрифт:
Интервал:
Закладка:
Таблица 6.1
Матрица ошибок дерева классификации для тренировочных и тестовых данных, где отображается точность (% правильно классифицированных), чувствительность (% правильно классифицированных выживших) и специфичность (% правильно классифицированных погибших)
Хотя общую точность выразить достаточно просто, это очень грубая мера эффективности, не учитывающая, с какой надежностью делается прогноз. Если мы посмотрим на кончики ветвей дерева классификации, то увидим, что разделение тренировочных данных не идеально: на всех ветвях кто-то выжил, а кто-то – нет. При грубом правиле распределения мы просто выбираем результат большинства, но можем поступить и иначе, присвоив каждому новому случаю вероятность выживания, соответствующую доле выживших в тренировочном наборе. Например, человеку с формой обращения «мистер» мы могли бы дать вероятность выживания 16 %, а не просто однозначно предсказать, что он погибнет.
Алгоритмы, которые дают не простую классификацию, а вероятность (или какое-то другое число), часто сравниваются с помощью ROC-кривых[130], которые изначально были разработаны во время Второй мировой войны для анализа радиолокационных сигналов. Ключевая идея – возможность варьировать пороговое значение, при котором дается прогноз выживания. В табл. 6.1 показан эффект использования порогового значения 50 % для прогноза выживания, при этом значения специфичности и чувствительности в тренировочном наборе соответственно равны 0,84 и 0,78. Однако мы могли бы потребовать более высокую вероятность для предсказания, что кто-то выживет, например 70 %; в этом случае специфичность и чувствительность составили бы 0,98 и 0,50 соответственно. При таком более строгом пороговом значении мы правильно определим только половину реально выживших, но зато сделаем о них очень мало ложных утверждений. Если взять все пороговые значения для предсказания выживания, то все возможные значения для специфичности и чувствительности образуют кривую. Обратите внимание, что при изображении ROC-кривой значения специфичности традиционно идут по горизонтальной оси, уменьшаясь от 1 до 0.
На рис. 6.4 изображены ROC-кривые для тренировочного и тестового набора. Если алгоритм распределяет числа случайным образом (то есть абсолютно бесполезен), то его ROC-кривая будет диагональной линией. У самых лучших алгоритмов ROC-кривые подходят близко к левому верхнему углу. Стандартный способ сравнения разных ROC-кривых – измерить площадь под ними. Для бесполезного алгоритма она равна 0,5, а для идеального – 1. Для нашего тестового набора для данных о «Титанике» площадь под кривой составляет 0,82. Оказывается, для этой площади есть изящная интерпретация: если мы выбираем истинно выжившего и истинно погибшего случайным образом, то с вероятностью 82 % алгоритм дает истинно выжившему большую вероятность выживания, чем истинно погибшему. Области свыше 0,80 представляют весьма хорошую эффективность разделения. Площадь под ROC-кривой – это способ измерить, насколько точно алгоритм отделяет выживших от погибших, но она не отражает сами вероятности. Категория специалистов, которые лучше всего знакомы с вероятностными прогнозами, – это синоптики.
Рис. 6.4
ROC-кривые для дерева классификации, приведенного на рис. 6.3, примененные к тренировочному (пунктирная линия) и тестовому (сплошная линия) набору данных. «Чувствительность» – доля правильно предсказанных выживших. «Специфичность» – доля правильно предсказанных погибших. Площади областей под кривыми равны 0,84 и 0,82 для тренировочного и тестового набора соответственно
Как узнать, насколько точны прогнозы «вероятности осадков»?
Предположим, мы хотим предсказать, будет ли завтра дождь в конкретном месте в конкретное время. Простейшие алгоритмы могут просто давать ответ в виде «да/нет», и он может оказаться правильным или неправильным. Более сложные модели могут выдавать вероятность дождя, что позволяет принимать более точные решения, ведь ваши действия при вероятности дождя в 50 % могут сильно отличаться от действий, если алгоритм выдаст 5-процентную вероятность.
На практике прогнозы погоды основываются на крайне сложных компьютерных моделях, которые включают подробные математические формулы, отображающие развитие погоды из текущего состояния, и каждый прогон модели дает детерминистский прогноз «да/нет» для дождя в конкретном месте на конкретное время. Поэтому для получения вероятностного прогноза модель нужно прогнать много раз при слегка различных начальных условиях, что создаст в итоге список различных «возможных вариантов будущего», где в некоторых вариантах пойдет дождь, а в некоторых – нет. Синоптики запускают ансамбль, скажем, из 50 моделей, и если дождь будет в 5 из них, то они говорят о вероятности осадков в 10 %.
Но как проверить, насколько хороши такие вероятности? Мы не можем создать простую матрицу ошибок, как в случае дерева классификации, потому что алгоритм никогда не утверждает категорически, пойдет дождь или нет. Мы можем начертить ROC-кривые, но они только показывают, получают ли дни с дождем более частые прогнозы, чем дни без дождя. Ключевая идея – необходимость в проверке-калибровке, то есть если мы возьмем все дни, когда синоптики говорили о вероятности дождя в 70 %, то дождь действительно должен идти примерно в 70 % таких дней. Синоптики относятся к этому очень серьезно – вероятности должны соответствовать фактам.
Так называемые калибровочные графики позволяют увидеть, насколько достоверны заявленные вероятности; на них показывается общее количество событий с конкретной вероятностью появления, и доля случаев, когда событие действительно произошло.
На рис. 6.5 представлен калибровочный график для простого дерева классификации, использованного для тестового набора. Мы хотим, чтобы точки лежали ближе к диагонали (то есть заявленные вероятности соответствовали реальной доле наблюдений). Вертикальные отрезки означают области, в которых будет находиться реальная доля в 95 % случаев для данной предсказанной вероятности. Если они пересекают диагонали, как на рис. 6.5, мы можем считать, что наш алгоритм хорошо откалиброван.
Рис. 6.5
Калибровочный график для простого дерева классификации, дающего вероятности выживания при катастрофе «Титаника». По горизонтальной оси отложены прогнозы, по вертикальной – наблюдаемая доля выживших. Мы хотим, чтобы точки лежали на диагонали – это показывает, что вероятности надежны и означают именно то, о чем говорят