Моделям логистической регрессии свойственны те же проблемы, что и моделям линейной регрессии, которые мы подробно рассмотрели в предыдущей главе, а именно:
• Пропущенные переменные. Алгоритм не может учиться на данных, которых нет.
• Мультиколлинеарность. Коррелированные входные признаки могут сильно исказить вашу интерпретацию коэффициентов модели, а иногда даже сделать положительный коэффициент отрицательным (или наоборот).
• Экстраполяция. В случае с логистической регрессией проблема с экстраполяцией стоит не столь остро, как в случае с линейной, потому что ее выходные данные всегда находятся в пределах диапазона от 0 до 1. Однако расслабляться все-таки не следует. Предсказание значений за пределами диапазона обучающих данных может привести к чрезмерно уверенным оценкам вероятностей, поскольку эти прогнозные значения асимптотически приближаются к единице.
Разумеется, при использовании логистической регрессии следует избегать и других ошибок, которые мы обсудим в конце главы.
Деревья решений
Некоторых людей отталкивает (и, возможно, пугает) математика, связанная с использованием логистической регрессии. Кроме того, далеко не каждую взаимосвязь между входными и выходными данными можно описать с помощью линейной модели
Возьмем, к примеру, набор данных, приведенных в табл. 10.2. Здесь вы видите выборку данных о десяти студентах (из 300), которые подали заявку и были приглашены на собеседование в вашу компанию. Вместо того чтобы использовать средний балл в качестве единственного входного параметра для своей модели, вы решаете проанализировать все признаки, чтобы выяснить, как приглашения на интервью делались в прошлом. Обратите внимание на то, что в этом наборе данных на собеседование были приглашены 120 студентов (то есть 40 %).
Табл. 10.2. Фрагмент набора данных о стажерах. Специализации студентов таковы: Инф. = Информатика, Экон. = Экономика, Стат. = Статистика и Биз. = Бизнес.
Если вы хотите использовать эти признаки, чтобы понять, кто получил приглашение, а кто нет, вы можете самостоятельно вывести несколько правил. Например, студенты с высоким средним баллом, участвующие во внеклассных занятиях, вероятно, имеют больше шансов получить приглашение. Но какой средний балл вы использовали бы для «разделения» совокупности студентов? 3,0? 3,5? И с помощью какой информации вы бы обосновали свое решение? Как вы уже, вероятно, поняли, самостоятельное выведение правил – чрезвычайно сложная задача. К счастью, алгоритм для создания дерева решений может позаботиться об этом за вас. Он ищет входной признак и его значение, которое наилучшим образом отличает студентов, получивших приглашение на интервью, от тех, кто его не получил. Затем он находит следующий признак, позволяющий разделить уже эти две группы и так далее.
Мы прогнали наш набор данных через алгоритм под названием CART[97] и сгенерировали дерево решений, изображенное на рис. 10.3. Оно больше похоже на перевернутое дерево, состоящее из «узлов», «ветвей» и «листьев» решений, в котором окончательный прогноз определяется листом. Давайте обойдем это дерево, чтобы разобраться в том, как оно работает.
Рис. 10.3. Простой алгоритм дерева решений, примененный к набору данных о стажерах
Предположим, что соискатель по имени Эллен учится на втором курсе, имеет средний балл 3,6, специализируется на изучении информатики и занимается спортом. Эти данные можно закодировать следующим образом: {Ср_балл = 3,6, Курс = 2, Специальность = Инф., Число_ВЗ = 1}, где Число_ВЗ означает «число внеклассных занятий».