Шрифт:
Интервал:
Закладка:
Это реальные, а потому довольно загрязненные данные, требующие определенной предварительной обработки. У восемнадцати пассажиров отсутствует информация о плате за поездку, так что будем считать, что они заплатили медианную стоимость для своего класса. Были добавлены некоторые родители, братья и сестры для создания единой переменной, характеризующей размер семьи. Упростились обращения: «мадемуазель» было объединено с «мисс», «мадам» – с «миссис», и целый ряд обращений был закодирован как «редкие формы обращений»[126].
Следует пояснить, что даже для простой подготовки данных к анализу, кроме требуемых навыков кодирования, могут понадобиться серьезные знания и рассуждения – например, об использовании доступной информации о каютах для определения их положения на судне. Несомненно, я мог бы сделать эту работу лучше.
На рис. 6.2 показаны доли выживших для разных категорий из 897 пассажиров, выбранных в качестве тренировочного (обучающего) набора. Все эти признаки сами по себе обладают прогностической способностью: видно, что уровень выживаемости выше среди тех, кто путешествовал более высоким классом; среди женщин и детей; тех, кто больше заплатил за билет; среди имевших небольшую семью и тех, к кому обращались миссис, мисс или мастер[127]. Все это соответствует нашим предположениям.
Рис. 6.2
Сводные данные о выживании для тренировочного набора из 897 пассажиров «Титаника», показывающие процентную долю выживших для различных категорий людей
Однако эти параметры нельзя назвать независимыми. Пассажиры более высокого класса предположительно больше заплатили за билеты; можно также ожидать, что у них меньше детей, чем у бедных эмигрантов. Многие мужчины плыли в одиночку. Важным может быть и способ кодирования информации: следует ли рассматривать возраст как качественную переменную с делением на категории (см. рис. 6.2) или как непрерывную переменную? Участники конкурса потратили много времени на подробное рассмотрение таких деталей и кодирование с извлечением максимума информации, но мы перейдем прямо к прогнозированию.
Предположим, мы сделали (заведомо неверный) прогноз: «Никто не выжил». Тогда, учитывая, что зафиксирована смерть 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].