Десятикратная перекрестная проверка применялась как для выбора параметра сложности для дерева на рис. 6.3, так и для выбора параметров настройки во всех моделях, которые мы рассмотрим далее.
Регрессионные модели
Из главы 5 мы узнали, что суть регрессионной модели – построить простую формулу для предсказания результата. Переменной отклика для ситуации с «Титаником» будет результат типа «да/нет», который указывает, выжил человек или нет, поэтому логистическая регрессия уместна (как и в случае с операциями на сердце у детей, см. рис. 5.2).
В табл. 6.3 приведены результаты подбора для логистической регрессии. При обучении использовался бустинг[138] – итеративная процедура, призванная уделять повышенное внимание сложным случаям: неверно классифицированные люди из тренировочного набора получали при следующей итерации повышенный вес. Последовательность итераций создавалась с помощью десятикратной перекрестной проверки.
Таблица 6.3
Коэффициенты для признаков в логистической регрессии для данных о выживании пассажиров «Титаника»: отрицательные коэффициенты понижают шансы на выживание, а положительные – повышают
Для общей оценки выживаемости можно добавлять коэффициенты для признаков конкретного пассажира. Например, Фрэнсис Сомертон начинает с параметра 3,20. Затем вычитается 2,30 за то, что он плыл в третьем классе, и еще 3,86 за обращение «мистер», но потом добавляется 1,43, так как он был мужчиной в третьем классе. Еще 0,38 он теряет, поскольку его семья состоит из одного человека. В итоге его общая оценка составляет –1,91, что переводится в вероятность выживания 13 %, то есть чуть меньше, чем те 16 %, которые давало простое дерево классификации[139].
Это «линейная» система, но обратите внимание, что в нее входят некоторые сложные комбинированные признаки, например положительный балл за сочетание мужчины и третьего класса несколько компенсирует значительные отрицательные баллы за третий класс и обращение «мистер», которые уже были учтены. Хотя мы сосредоточены на предсказательной эффективности, эти коэффициенты действительно дают определенное понимание важности различных признаков.
Существует множество более сложных регрессионных подходов для работы с масштабными сложными задачами – например, нелинейные модели или процесс LASSO, который одновременно оценивает коэффициенты и выбирает подходящие предикторные переменные, фактически считая их коэффициенты нулевыми[140].
Более сложные методы
Деревья классификации и регрессионные модели возникают из несколько различных философий моделирования: деревья пытаются построить простые правила, которые определяют группы случаев со сходными ожидаемыми результатами, в то время как регрессионные модели сосредоточены на весах, которые придаются тому или иному признаку, безотносительно к тому, что еще наблюдалось для этого случая.
Специалисты по машинному обучению используют не только деревья классификации и регрессии, они разработали множество альтернативных, более сложных методов для создания алгоритмов. Например:
• Случайные леса – состоят из большого количества деревьев, каждое из которых производит какую-то классификацию. Итоговая классификация определяется большинством голосов – процесс известен как бэггинг[141].
• Методы опорных векторов – пытаются найти линейные комбинации признаков, которые лучше всего разделяют различные результаты.
• Нейронные сети – включают слои узлов, каждый узел зависит от предыдущего слоя с какими-то весами, то есть получается нечто вроде ряда логистических регрессий, наложенных друг на друга. Веса определяются с помощью процедур оптимизации; подобно случайным лесам, можно построить и усреднить несколько нейронных сетей. Нейронные сети с большим количеством слоев известны как модели глубокого обучения: говорят, что Inception – система распознавания образов Google – имеет больше двадцати слоев и свыше 300 тысяч параметров для оценки.
• Метод k-ближайших соседей – классифицирует объект в соответствии с большинством случаев среди ближайших соседей в тренировочном наборе, то есть присваивает объекту тот класс, который чаще всего встречается среди его k соседей.
В табл. 6.4 приведены результаты применения некоторых из этих методов к данным о «Титанике»; параметры настройки выбирались с помощью десятикратной перекрестной проверки, а в качестве критерия оптимизации использовались ROC-кривые.
Таблица 6.4
Эффективность различных алгоритмов для тестового набора данных о «Титанике»: полужирным шрифтом выделены наилучшие результаты. Сложные алгоритмы оптимизировались по максимизации площади под ROC-кривой
Высокая точность простейшего правила «все женщины выживают, все мужчины погибают», которая либо превосходит точность более сложных алгоритмов, либо лишь незначительно им уступает, демонстрирует неадекватность грубой «точности» как меры эффективности. Метод случайного леса дает наилучшее различение, отражаемое площадью под ROC-кривой, а (что, вероятно, удивительно) наилучший показатель Бриера дают вероятности из простого дерева классификации. Поэтому явного алгоритма-победителя нет. Позже, в главе 10, мы проверим, можно ли уверенно заявлять о победителе по каждому из этих критериев, поскольку преимущество лидеров настолько невелико, что его можно объяснить случайными отклонениями, например распределением, кто из пассажиров оказался в тренировочном наборе, а кто – в тестовом.
Это отражает общую озабоченность тем, что алгоритмы, выигрывающие соревнования на платформе Kaggle, имеют тенденцию к колоссальной сложности – и все ради крохотного итогового преимущества, необходимого для победы. Основная проблема в том, что эти алгоритмы напоминают непостижимые черные ящики – они выдают прогноз, но почти невозможно понять, что творится у них внутри. Здесь можно выделить три негативных аспекта. Во-первых, чрезвычайная сложность сильно затрудняет реализацию и модернизацию: когда Netflix предложила приз в миллион долларов за рекомендательные системы, победитель оказался настолько сложным, что Netflix его не использовала. Во-вторых, мы не знаем, откуда взялось такое заключение и насколько мы можем быть в нем уверены: нам приходится либо принимать, либо отказываться от него. Более простые алгоритмы легче для понимания. В-третьих, не понимая, как алгоритм выдает ответ, мы не можем исследовать его на наличие неявных, но систематических ошибок в отношении определенных участников сообщества – об этом мы подробно поговорим далее.
Все это указывает на то, что количественная эффективность может быть не единственным критерием алгоритма: как только она становится «достаточно хорошей», порой куда разумнее отказаться от попыток дальнейших небольших увеличений ради сохранения простоты.
Так кто оказался самым везучим на «Титанике»?
Таким выжившим можно считать человека с самым высоким показателем Бриера при усреднении по всем алгоритмам. Им стал Карл Даль, 45-летний норвежско-австралийский столяр[142], путешествовавший в одиночку в третьем классе и заплативший за билет столько же, сколько и Фрэнсис Сомертон; два алгоритма даже дали ему 0 % шансов на выживание. Попав в ледяную воду, он забрался на спасательную шлюпку № 15, несмотря на то что некоторые на шлюпке пытались столкнуть его обратно. Возможно, он просто применил силу.
Это резко контрастирует с судьбой Фрэнсиса Сомертона из Илфракомба, чья смерть, как мы видели, вполне вписывается в общую закономерность. Его жене Ханне Сомертон досталось всего 5 фунтов (меньше, чем Фрэнсис потратил на билет), а не успешный муж в Америке.
Проблемы алгоритмов
Алгоритмы способны демонстрировать замечательную эффективность, однако по мере увеличения их роли в обществе актуализируются и их потенциальные проблемы. На данный момент можно выделить четыре основные.
• Недостаток робастности (устойчивости). Алгоритмы создаются по связям, и в случае непонимания лежащих в их основе процессов они могут оказаться слишком чувствительны к изменениям. Даже если нас волнует исключительно точность, а не научная истина, нам по-прежнему нужно помнить базовые принципы цикла PPDAC и этапы перехода от данных, полученных из какой-то выборки, к утверждениям, касающимся всей целевой совокупности. Для предсказательной аналитики эта целевая совокупность включает будущие случаи, и если все остается по-прежнему, то алгоритмы, сконструированные по прошлым данным, должны работать хорошо. Но порой мир меняется. Мы уже отмечали провал алгоритмов при изменениях в финансовом мире 2007–2008 годов. Еще один яркий пример – попытка компании Google предсказать тенденции распространения вируса гриппа на основании закономерностей в поисковых запросах пользователей. Сначала все работало хорошо, но в 2013 году алгоритм начал резко завышать прогнозы для гриппа. Одно из объяснений – изменения, внесенные Google в поисковую систему, могли привести к большему количеству ключевых слов, указывавших на грипп.
• Отсутствие учета статистического разброса. Автоматическое ранжирование на основе ограниченного объема данных будет ненадежным. В США учителей оценивали и наказывали в соответствии с коэффициентом роста знаний их учеников за год, что проявлялось в невероятно резких изменениях в годовой оценке учителей: в Вирджинии, например, у четверти учителей фиксируется разница более чем в 40 баллов (по шкале 1–100 баллов) от года к году[143]. Но как такое может быть, ведь хорошие учителя обычно хороши и в этом году, и в следующем.