Предположим, мы сделали (заведомо неверный) прогноз: «Никто не выжил». Тогда, учитывая, что зафиксирована смерть 61 % пассажиров, показатель правильности нашего прогноза для тренировочного набора данных составил бы 61 %. Если бы мы строили прогноз на более сложном правиле «Все женщины выживают, а все мужчины погибают», то мы бы верно классифицировали 78 % данных в тренировочном наборе. Эти примитивные правила – хорошие ориентиры, по которым можно измерять все улучшения, обеспечиваемые более изощренными алгоритмами.
Дерево классификации – пожалуй, самая простая форма алгоритма, поскольку состоит из серии вопросов типа «да/нет», где ответ на каждый вопрос определяет формулировку следующего вопроса, и так до тех пор, пока не будет получено заключение. На рис. 6.3 показано дерево классификации для данных по «Титанику», в котором в конце каждой ветки указана доля выживших для соответствующей категории. Легко видеть и выбранные факторы, и окончательный вывод. Например, Фрэнсис Сомертон в базе данных отмечен как «мистер», а потому попадает на левую ветвь. Окончание этой ветки включает 58 % данных тренировочного набора, из которых 16 % выжило. Поэтому мы можем оценить на основании ограниченной информации, что шансы на выживание у Сомертона составляли 16 %. Наш простой алгоритм определяет две группы с более чем 50-процентными шансами на выживание. Во-первых, это женщины и дети в первом и втором классе (если у них нет редкой формы обращения), 93 % которых спаслись. Во-вторых, женщины и дети в третьем классе, при условии, что они не из многодетных семей, – из них выжило 60 %.
Рис. 6.3
Дерево классификации для данных по «Титанику», в котором последовательность вопросов приводит пассажиров к концу ветви, где указаны доли выживших для групп из тренировочного набора. Согласно прогнозу, конкретный человек выживет, если в аналогичной группе доля выживших превышает 50 %. Такой прогноз предлагается только для двух категорий пассажиров: женщин и детей из третьего класса из небольших семей, а также всех женщин и детей из первого и второго класса – при условии, что у них нет редких форм обращений
Прежде чем смотреть, как реально конструируется такое дерево, нам нужно решить, какие показатели эффективности следует использовать в нашем конкурсе.
Если алгоритмы будут сравниваться по точности, нужно решить, что означает «точный». В конкурсной задаче о «Титанике» на платформе Kaggle это просто процентная доля пассажиров в тестовом наборе, которых алгоритм правильно классифицировал. Поэтому, после того как участники конкурса сконструируют алгоритмы, они дают свой прогноз на переменную отклика для тестового набора, а Kaggle измеряет точность прогнозов. Мы представим результаты сразу для всего тестового набора (подчеркнем, что это не то же самое, что тестовый набор Kaggle[128]).
Если применить дерево классификации, приведенное на рис. 6.3, к тренировочным данным, для которых оно разработано, то оно даст точность 82 %. Если этот алгоритм использовать на тестовом наборе, точность слегка упадет – до 81 %. В табл. 6.1 приведено число разных типов ошибок, допущенных алгоритмом; эта таблица называется матрицей ошибок. Когда мы пытаемся определить выживших, процент верно предсказанных из числа реально выживших именуется чувствительностью алгоритма, а процент верно предсказанных из числа реально погибших – специфичностью. Эти термины взяты из медицинских диагностических исследований[129].
Таблица 6.1
Матрица ошибок дерева классификации для тренировочных и тестовых данных, где отображается точность (% правильно классифицированных), чувствительность (% правильно классифицированных выживших) и специфичность (% правильно классифицированных погибших)
Хотя общую точность выразить достаточно просто, это очень грубая мера эффективности, не учитывающая, с какой надежностью делается прогноз. Если мы посмотрим на кончики ветвей дерева классификации, то увидим, что разделение тренировочных данных не идеально: на всех ветвях кто-то выжил, а кто-то – нет. При грубом правиле распределения мы просто выбираем результат большинства, но можем поступить и иначе, присвоив каждому новому случаю