Оглавление
Предисловие
Глава 1. Введение
1.2. Ключевые ингредиенты предиктивных моделей
1.3. Терминология
1.4. Примеры наборов данных и типичные сценарии данных
Заявки на получение грантов
Поражение печени
Проницаемость
Производство химикатов
Мошенничество в финансовых отчетах
Сравнения наборов данных
1.5. Структура книги
1.6. Условные обозначения
ЧАСТЬ I. ОБЩИЕ СТРАТЕГИИ
2.2. Аспекты, заслуживающие отдельного рассмотрения
Данные предикторов
Оценка эффективности
Оценка нескольких моделей
Выбор модели
2.3. Итоги
Глава 3. Предварительная обработка данных
3.2. Преобразования данных для отдельных предикторов
Преобразования для устранения смещения
3.3. Преобразования данных с несколькими предикторами
Прореживание данных и выделение признаков
3.4. Отсутствующие значения
3.5. Удаление предикторов
3.6. Добавление предикторов
3.7. Группировка предикторов
3.8. Вычисления
Фильтрация
Создание фиктивных переменных
Упражнения
Глава 4. Переобучение и настройка модели
4.2. Настройка модели
4.3. Разделение данных
4.4. Методы повторной выборки
Обобщенная перекрестная проверка
Повторное разделение тренировочного/тестового набора
Бутстрэп
4.5. Практикум: оценка кредитоспособности
4.6. Выбор итоговых параметров настройки
4.7. Рекомендации по разделению данных
4.8. Выбор между моделями
4.9. Вычисления
Повторная выборка
Базовый процесс построения модели в R
Определение параметров настройки
Сравнение моделей
Упражнения
ЧАСТЬ II. РЕГРЕССИОННЫЕ МОДЕЛИ
5.2. Обратное отношение между смещением и дисперсией
5.3. Вычисления
Глава 6. Модели с признаками линейной регрессии
6.2. Линейная регрессия
6.3. Частные наименьшие квадраты
Алгоритмические разновидности PLS
6.4. Штрафные модели
6.5. Вычисления
Частные наименьшие квадраты
Штрафные регрессионные модели
Упражнения
Глава 7. Нелинейные регрессионные модели
7.2. Многомерные адаптивные регрессионные сплайны
7.3. SVM, или метод опорных векторов
7.4. Метод к ближайших соседей
7.5. Вычисления
Многомерные адаптивные регрессионные сплайны
SVM, метод опорных векторов
Метод KNN
Упражнения
Глава 8. Древовидные модели. Модели на базе правил
8.2. Деревья регрессионных моделей
8.3. Модели на базе правил
8.4. Бэггинг-деревья
8.5. Случайные леса
8.6. Усиление
8.7. Модель Cubist
8.8. Вычисления
Деревья моделей
Деревья бэггинга
Случайные леса
Усиленные деревья
Модель Cubist
Упражнения
Глава 9. Обзор моделей растворимости
Глава 10. Практический пример: сопротивление сжатию бетонных смесей
10.2. Эффективность моделей
10.3. Оптимизация сопротивления сжатию
10.4. Вычисления
ЧАСТЬ III. КЛАССИФИКАЦИОННЫЕ МОДЕЛИ
Представление вероятностей классов
Неоднозначные зоны
11.2. Оценка прогнозируемых классов
Критерии, не основанные на точности
11.3. Оценка вероятностей классов
Диаграммы точности прогнозов
11.4. Вычисления
Матрица несоответствий
ROC-кривые
Диаграммы точности прогнозов
Калибровка вероятностей
Глава 12. Дискриминантный анализ и другие линейные классификационные модели
12.2. Логистическая регрессия
12.4. Дискриминантный анализ методом частных наименьших квадратов
12.5. Штрафные модели
12.6. Ближайшие сжатые центроиды
12.7. Вычисления
Линейный дискриминантный анализ
Дискриминантный анализ методом частных наименьших квадратов
Штрафные модели
Метод ближайших сжатых центроидов
Упражнения
Глава 13. Нелинейные классификационные модели
Смешанный дискриминантный анализ
13.2. Нейросети
13.3. Гибкий дискриминантный анализ
13.4. SVM, метод опорных векторов
13.5. Метод KNN
13.6. Наивный байесовский классификатор
13.7. Вычисления
Нейросети
FDA
Модель SVM
Наивный байесовский классификатор
Упражнения
Глава 14. Деревья классификации и модели на базе правил
14.2. Модели на базе правил
Модель PART
14.3. Бэггинг деревьев
14.4. Случайные леса
14.5. Бустинг
Стохастический градиентный бустинг
14.6. Модель С5 0
Правила классификации
Усиление
Другие аспекты модели
Данные грантов
14.7. Сравнение двух кодировок категорийных предикторов
14.8. Вычисления
Правила
Деревья с бэггингом
Случайный лес
Деревья с усилением
Упражнения
Глава 15. Сравнительный анализ моделей для заявок на получение грантов
Глава 16. Решение проблемы дисбаланса классов
16.2. Эффект дисбаланса классов
16.3. Настройка модели
16.4. Альтернативные пороги отсечения
16.5. Корректировка априорных вероятностей
16.6. Неравные веса
16.7. Методы выборки
16.8. Тренировка с учетом стоимости
16.9. Вычисления
Методы выборки
Тренировка с учетом стоимости
Упражнения
Глава 17. Практикум: планирование заданий
17.2. Результаты
17.3. Вычисления
ЧАСТЬ IV. ПРОЧИЕ ВОПРОСЫ ПРЕДИКТИВНОГО МОДЕЛИРОВАНИЯ
18.2. Категорийные результаты
18.3. Прочие методы
18.4. Вычисления
Категорийные результаты
Показатели важности для разных моделей
Упражнения
Глава 19. Выбор признаков
19.2. Методы сокращения количества предикторов
19.3. Методы-обертки
Имитация отжига
Генетические алгоритмы
19.4. Методы-фильтры
19.5. Смещение выбора
19.6. Практикум: прогнозирование когнитивного расстройства
19.7. Вычисления
Рекурсивное исключение признаков
Методы-фильтры
Упражнения
Глава 20. Факторы, влияющие на эффективность модели
20.2. Ошибка измерения результата
20.3. Погрешность измерений в предикторах
20.4. Дискретизация непрерывных результатов
20.5. Когда следует доверять прогнозу вашей модели?
20.6. Влияние большой выборки
20.7. Вычисления
Упражнения
ПРИЛОЖЕНИЯ
Приложение Б. Введение в R
Б.2. Пакеты
Б.З. Создание объектов
Б.4. Типы данных и базовые структуры
Б.5. Работа с прямоугольными наборами данных
Б.6. Объекты и классы
Б.7. Функции R
Б.8. Три грани =
Б.9. Пакет AppliedPredictiveModeling
Б.10. Пакет caret
Б.11. Пакеты, используемые в книге
Приложение В. Рекомендуемые веб-сайты
Слисок источников
Text
                    С&ППТЕР'



Applied Predictive Modeling Max Kuhn and Kjell Johnson Springer
Препиктивное моделирование на практике Макс Кун и Кьвлл Джонсон С^ППТЕР’ Санкт-Петербург • Москва * Екатеринбург•Воронеж Нижний Новгород•Ростов-на-Дону Самара > Минск 2019
ББК 22.183.5 УДК 519.8 К91 Кун Макс, Джонсон Кьелл К91 Предиктивное моделирование на практике. — СПб.: Питер, 2019. — 640 с.: ил. — (Серия «Для профессионалов»). ISBN 978-5-4461-1039-1 «Предиктивное моделирование на практике» охватывает все аспекты прогнозирования, начиная с ключевых этапов предварительной обработки данных, разбиения данных и основных принципов настройки модели. Все этапы моделирования рассматриваются на практических примерах из реальной жизни, в каждой главе дается подробный код на языке R. Эта книга может использоваться как введение в предиктивные модели и руководство по их применению. Читатели, не обладающие математической подготовкой, оценят интуитивно понятные объяснения конкретных методов, а внимание, уделяемое решению актуальных задач с реальными данными, поможет специалистам, желающим повысить свою квалификацию. Авторы постарались избежать сложных формул, для усвоения основного материала достаточно понимания основных статистических концепций, таких как корреляция и линейный регрессионный анализ, но для изучения углубленных тем понадобится математическая подготовка. Для работы с книгой нужно иметь базовые знания о языке R. Премия Zecgel Technometrics 2014. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ББК 22.183.5 УДК 519.8 Права на издание получены по соглашению с Springer Science+Business Media, LLC. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими. ISBN 978-1461468486 англ. First published in English under the title Applied Predictive Modeling, 1st Edition by Max Kuhn, Kjell Johnson by Springer Science+Business Media, LLC © 2013, Springer Science+Business Media New York This edition has been translated and published under licence from Springer Science+Business Media, LLC. Springer Science+Business Media, LLC takes no responsibility and shall not be made liable for the accuracy of the translation. ISBN 978-5-4461-1039-1 © Перевод на русский язык ООО Издательство «Питер», 2019 © Издание на русском языке, оформление ООО Издательство «Питер», 2019 ©Серия «Для профессионалов», 2019
Краткое содержание Предисловие 18 Глава 1. Введение 21 ЧАСТЫ ОБЩИЕ СТРАТЕГИИ Глава 2. Краткий обзор процесса предиктивного моделирования 42 Глава 3. Предварительная обработка данных 51 Глава 4. Переобучение и настройка модели 87 ЧАСТЬ II РЕГРЕССИОННЫЕ МОДЕЛИ Глава 5. Измерение эффективности регрессионных моделей 122 Глава 6. Модели с признаками линейной регрессии 128 Глава 7. Нелинейные регрессионные модели 169 Глава 8. Древовидные модели. Модели на базе правил 202 Глава 9. Обзор моделей растворимости 254 Глава 10. Практический пример: сопротивление сжатию бетонных смесей 257
6 Краткое содержание ЧАСТЬ III КЛАССИФИКАЦИОННЫЕ МОДЕЛИ Глава 11. Определение эффективности в классификационных моделях 278 Глава 12. Дискриминантный анализ и другие линейные классификационные модели 307 Глава 13. Нелинейные классификационные модели 365 Глава 14. Деревья классификации и модели на базе правил 407 Глава 15. Сравнительный анализ моделей для заявок на получение грантов 456 Глава 16. Решение проблемы дисбаланса классов 460 Глава 17. Практикум: планирование заданий 488 ЧАСТЫУ ПРОЧИЕ ВОПРОСЫ ПРЕДИКТИВНОГО МОДЕЛИРОВАНИЯ Глава 18. Определение важности предикторов 506 Глава 19. Выбор признаков 531 Глава 20. Факторы, влияющие на эффективность модели 567 ПРИЛОЖЕНИЯ Приложение А. Краткая сводка различных моделей 596 Приложение Б. Введение в R 599 Приложение В. Рекомендуемые веб-сайты 616 Список источников 619
Оглавление Предисловие 18 От издательства 20 Глава 1. Введение 21 1.1. Прогнозирование и интерпретация 24 1.2. Ключевые ингредиенты предиктивных моделей 25 1.3. Терминология 27 1.4. Примеры наборов данных и типичные сценарии данных 29 Музыкальный жанр 29 Заявки на получение грантов 30 Поражение печени 31 Проницаемость 32 Производство химикатов 32 Мошенничество в финансовых отчетах 33 Сравнения наборов данных 34 1.5. Структура книги 36 1.6. Условные обозначения 38 ЧАСТЬ I ОБЩИЕ СТРАТЕГИИ Глава 2. Краткий обзор процесса предиктивного моделирования 42 2.1. Пример прогнозирования экономии топлива 42 2.2. Аспекты, заслуживающие отдельного рассмотрения 48
Разделение данных 48 Данные предикторов 48 Оценка эффективности 49 Оценка нескольких моделей 49 Выбор модели 49 2.3. Итоги 50 Глава 3. Предварительная обработка данных 51 3.1. Практический пример: сегментация клеток в высокопроизводительном скрининге 53 3.2. Преобразования данных для отдельных предикторов 55 Центрирование и масштабирование 55 Преобразования для устранения смещения 55 3.3. Преобразования данных с несколькими предикторами 58 Преобразования для решения проблемы выбросов 58 Прореживание данных и выделение признаков 60 3.4. Отсутствующие значения 66 3.5. Удаление предикторов 69 Корреляции между предикторами 71 3.6. Добавление предикторов 73 3.7. Группировка предикторов 75 3.8. Вычисления 77 Преобразования 79 Фильтрация 81 Создание фиктивных переменных 83 Упражнения 85 Глава 4- Переобучение и настройка модели 87 4.1. Проблема переобучения 88 4.2. Настройка модели 90 4.3. Разделение данных 93 4.4. Методы повторной выборки 96 К-кратная перекрестная проверка 96
Обобщенная перекрестная проверка 98 Повторное разделение тренировочного/тестового набора 98 Бутстрэп 99 4.5. Практикум: оценка кредитоспособности 101 4.6. Выбор итоговых параметров настройки 101 4.7. Рекомендации по разделению данных 105 4.8. Выбор между моделями 106 4.9. Вычисления 108 Разделение данных 109 Повторная выборка 110 Базовый процесс построения модели в R 111 Определение параметров настройки 112 Сравнение моделей 116 Упражнения 118 ЧАСТЬ II РЕГРЕССИОННЫЕ МОДЕЛИ Глава 5. Измерение эффективности регрессионных моделей 122 5.1. Количественные показатели эффективности 122 5.2. Обратное отношение между смещением и дисперсией 124 5.3. Вычисления 126 Глава 6. Модели с признаками линейной регрессии 128 6.1. Практикум: моделирование количественного соотношения «структура- активность» 129 6.2. Линейная регрессия 135 Линейная регрессия для данных растворимости 139 6.3. Частные наименьшие квадраты 140 Применение методов PCR и PLSR для прогнозирования данных растворимости 144 Алгоритмические разновидности PLS 148 6.4. Штрафные модели 150
6.5. Вычисления 156 Обычная линейная регрессия 157 Частные наименьшие квадраты 162 Штрафные регрессионные модели 163 Упражнения 166 Глава 7. Нелинейные регрессионные модели 169 7.1. Нейросети 169 7.2. Многомерные адаптивные регрессионные сплайны 174 7.3. SVM, или метод опорных векторов 180 7.4. Метод к ближайших соседей 188 7.5. Вычисления 191 Нейросети 191 Многомерные адаптивные регрессионные сплайны 193 SVM, метод опорных векторов 196 Метод KNN 198 Упражнения 198 Глава 8. Древовидные модели. Модели на базе правил 202 8.1. Базовые деревья регрессии 204 8.2. Деревья регрессионных моделей 214 8.3. Модели на базе правил 221 8.4. Бэггинг-деревья 224 8.5. Случайные леса 230 8.6. Усиление 235 8.7. Модель Cubist 241 8.8. Вычисления 246 Простые деревья 246 Деревья моделей 247 Деревья бэггинга 248 Случайные леса 248
Усиленные деревья 249 Модель Cubist 250 Упражнения 250 Глава 9. Обзор моделей растворимости 254 Глава 10. Практический пример: сопротивление сжатию бетонных смесей 257 10.1. Стратегия построения модели 261 10.2. Эффективность моделей 262 10.3. Оптимизация сопротивления сжатию 265 10.4. Вычисления 269 ЧАСТЬ III КЛАССИФИКАЦИОННЫЕ МОДЕЛИ Глава 11. Определение эффективности в классификационных моделях 278 11.1. Прогнозы классов 278 Хорошо откалиброванные вероятности 280 Представление вероятностей классов 282 Неоднозначные зоны 284 11.2. Оценка прогнозируемых классов 286 Задача двух классов 288 Критерии, не основанные на точности 292 11.3. Оценка вероятностей классов 294 ROC-кривые 295 Диаграммы точности прогнозов 297 11.4. Вычисления 299 Чувствительность и специфичность 301 Матрица несоответствий 301 ROC-кривые 302 Диаграммы точности прогнозов 303 Калибровка вероятностей 304
Глава 12. Дискриминантный анализ и другие линейные классификационные модели 307 12.1. Практикум: прогнозирование успешных заявок на получение грантов 307 12.2. Логистическая регрессия 315 12.3. Линейный дискриминантный анализ (LDA) 320 12.4. Дискриминантный анализ методом частных наименьших квадратов 331 12.5. Штрафные модели 337 12.6. Ближайшие сжатые центроиды 341 12.7. Вычисления 344 Логистическая регрессия 347 Линейный дискриминантный анализ 353 Дискриминантный анализ методом частных наименьших квадратов 355 Штрафные модели 357 Метод ближайших сжатых центроидов 359 Упражнения 362 Глава 13. Нелинейные классификационные модели 365 13.1. Нелинейный дискриминантный анализ 365 Квадратичный и регуляризированный дискриминантный анализ 365 Смешанный дискриминантный анализ 367 13.2. Нейросети 369 13.3. Гибкий дискриминантный анализ 374 13.4. SVM, метод опорных векторов 380 13.5. Метод KNN 389 13.6. Наивный байесовский классификатор 391 13.7. Вычисления 396 Нелинейный дискриминантный анализ 397 Нейросети 398 FDA 400 Модель SVM 401 Модель KNN (к ближайших соседей) 403
Наивный байесовский классификатор 403 Упражнения 405 Глава 14. Деревья классификации и модели на базе правил 407 14.1. Базовые деревья классификации 408 14.2. Модели на базе правил 423 Модель C4.5Rules 423 Модель PART 424 14.3. Бэггинг деревьев 425 14.4. Случайные леса 427 14.5. Бустинг 429 Алгоритм AdaBoost 429 Стохастический градиентный бустинг 431 14.6. Модель С5.0 434 Классификационные деревья 435 Правила классификации 436 Усиление 437 Другие аспекты модели 438 Данные грантов 440 14.7. Сравнение двух кодировок категорийных предикторов 442 14.8. Вычисления 443 Классификационные деревья 443 Правила 447 Деревья с бэггингом 449 Случайный лес 450 Деревья с усилением 451 Упражнения 453 Глава 15. Сравнительный анализ моделей для заявок на получение грантов 456 Глава 16. Решение проблемы дисбаланса классов 460 16.1. Практикум: прогнозирование политики страхования 461
16.2. Эффект дисбаланса классов 462 16.3. Настройка модели 465 16.4. Альтернативные пороги отсечения 465 16.5. Корректировка априорных вероятностей 468 16.6. Неравные веса 469 16.7. Методы выборки 469 16.8. Тренировка с учетом стоимости 473 16.9. Вычисления 478 Альтернативные пороги отсечения 482 Методы выборки 482 Тренировка с учетом стоимости 483 Упражнения 486 Глава 17. Практикум: планирование заданий 488 17.1. Разделение данных и стратегия модели 496 17.2. Результаты 498 17.3. Вычисления 501 ЧАСТЬ IV ПРОЧИЕ ВОПРОСЫ ПРЕДИКТИВНОГО МОДЕЛИРОВАНИЯ Глава 18. Определение важности предикторов 506 18.1. Числовые результаты 507 18.2. Категорийные результаты 511 18.3. Прочие методы 516 18.4. Вычисления 522 Числовые результаты 522 Категорийные результаты 525 Показатели важности для разных моделей 528 Упражнения 529 Глава 19. Выбор признаков 531 19.1. Последствия использования неинформативных предикторов 532
19.2. Методы сокращения количества предикторов 534 19.3. Методы-обертки 535 Прямой, обратный и пошаговый выбор 539 Имитация отжига 540 Генетические алгоритмы 541 19.4. Методы-фильтры 544 19.5. Смещение выбора 545 19.6. Практикум: прогнозирование когнитивного расстройства 548 19.7. Вычисления 557 Прямой, обратный и пошаговый выбор 558 Рекурсивное исключение признаков 560 Методы-фильтры 563 Упражнения 565 Глава 20. Факторы, влияющие на эффективность модели 567 20.1. Ошибки III типа 568 20.2. Ошибка измерения результата 571 20.3. Погрешность измерений в предикторах 572 Практикум: прогнозирование нежелательных побочных эффектов 576 20.4. Дискретизация непрерывных результатов 578 20.5. Когда следует доверять прогнозу вашей модели? 582 20.6. Влияние большой выборки 586 20.7. Вычисления 588 Упражнения 590 ПРИЛОЖЕНИЯ Приложение А. Краткая сводка различных моделей 596 Приложение Б. Введение в R 599 Б.1. Запуск и вывод справочной информации 599 Б.2. Пакеты 600 Б.З. Создание объектов 602
Б.4. Типы данных и базовые структуры 602 Б.5. Работа с прямоугольными наборами данных 606 Б.6. Объекты и классы 609 Б.7. Функции R 610 Б.8. Три грани = 611 Б.9. Пакет AppliedPredictiveModeling 611 Б.10. Пакет caret 612 Б.11. Пакеты, используемые в книге 615 Приложение В. Рекомендуемые веб-сайты 616 Слисок источников 619
Посвящается нашим семьям: Миранде и Стефану Валери, Трумэну и малышу Гидеону
Предисловие Эта книга посвящена анализу данных, при этом особое внимание в ней уделяется практике предиктивного моделирования (predictive modeling). Термин «предиктивное моделирование» может вызвать ассоциации с такими темами, как машинное обучение, распознавание образов и глубокий анализ данных (data mining.) Действительно, эти ассоциации уместны, а методы, которые обычно связываются с этими терминами, являются неотъемлемой частью процесса предиктивного моделирования. Однако предиктивное моделирование отнюдь не ограничивается инструментами и методами выявления закономерностей в данных. Практика предиктивного моделирования определяет такой процесс разработки модели, который бы позволил нам понять и дать численную оценку предиктивной точности модели для будущих, пока еще отсутствующих данных. Центральное место в книге занимает этот процесс в целом. Мы стремились к тому, чтобы эта книга послужила руководством для специалиста-практика к процессу предиктивного моделирования, а также источником информации, в котором читатель мог бы узнать о методе и получить представление о многих распространенных современных мощных моделях. В книге рассматриваются некоторые статистические и математические методы, но практически в каждом случае мы старались описывать методы так, чтобы дать читателю представление об их сильных и слабых сторонах, а не об их происхождении и математическом обосновании. Почти везде мы избегаем сложных формул, хотя без нескольких неизбежных исключений не обошлось. Если вас больше интересует теоретический взгляд на предиктивное моделирование, мы рекомендуем книги Хэсти и др. (Hastie et al., 2008) и Бишопа (Bishop, 2006). Для понимания материала читатель должен быть знаком с основными понятиями статистики: дисперсия, корреляция, простая линейная регрессия и базовая проверка гипотез (p-значения и статистика критерия). Процесс предиктивного моделирования по своей природе практичен. Однако в ходе наших исследований для этой работы мы узнали, что во многих статьях и публикациях читатель не может воспроизвести результаты, потому что данные отсутствуют в свободном доступе или программное обеспечение недоступно либо доступно только на коммерческой основе. У Бакхайта и Донохо (1995) приведена уместная критика этой традиционной «дымовой завесы», свойственной для научной среды:
Предисловие 19 «Статья о вычислительных методах в научном издании — не сами научные знания, а всего лишь реклама научных знаний. Настоящие научные знания — это полная среда разработки и полный набор инструкций, на основе которых были построены графики». Следовательно, мы стремились по возможности излагать материал на практическом уровне, чтобы читатель мог воспроизводить результаты с разумной точностью, а также естественным образом расширять метод предиктивного моделирования для своих данных. Кроме того, мы используем язык R (Ihaka and Gentleman, 1996; R Development Core Team 2010) — бесплатно распространяемый программный продукт для статистических и математических вычислений — на всех стадиях процесса предиктивного моделирования. Почти все наборы данных из примеров доступны в виде пакетов R. Пакет R AppliedPredictiveModeling содержит многие наборы данных и сценарии R, использованные в книге, для воспроизведения анализа в каждой главе. Мы выбрали R в качестве вычислительного ядра этого текста по нескольким причинам. Во-первых, R распространяется бесплатно (хотя существуют и коммерческие версии) для нескольких операционных систем. Во-вторых, R публикуется на условиях стандартной общественной лицензии GPL (Free Software Foundation, июнь 2007 года), определяющей возможности повторного распространения программы. В этой структуре любой желающий может свободно анализировать и изменять исходный код. Благодаря модели распространения с открытым кодом уже существуют десятки предиктивных моделей, реализованных в виде бесплатных пакетов. Кроме того, R содержит мощную и обширную поддержку общего процесса предиктивного моделирования. Читатель, не знакомый с R, легко найдет в интернете множество учебников. Вводный курс R и руководство для начинающих приведены в приложении. Некоторые темы нам не удалось рассмотреть из-за нехватки времени и/или места, и прежде всего обобщенные аддитивные модели, ансамбли разных моделей, сетевые модели, модели временных рядов и еще несколько. У книги также существует веб-сайт: http://appliedpredictivemodeling.com/ На нем будет публиковаться обновленная информация. Эта книга появилась на свет только благодаря поддержке и наставлениям многих людей: Уолтера Г. Картера (Walter Н. Carter), Джима Гарретта (Jim Garrett), Криса Дженнингса (Chris Gennings), Пола Хармса (Paul Harms), Криса Кифера (Chris Keefer), Уильяма Клингера (William Klinger), Дайдзина Ко (Daijin Ко), Рича Мура (Rich Moore), Дэвида Нохаузера (David Neuhouser), Дэвида Поттера (David Potter), Дэвида Пайна (David Рупе), Уильяма Рэйенса (William Rayens), Арнольда Стромберга (Arnold Stromberg) и Томаса Видмара (Thomas Vidmar). Мы также хотим поблагодарить Росса Кинлана (Ross Quinlan) за помощь с Cubist и С5.0 и за
20 Предисловие проверку наших описаний этих двух тем. В издательстве Springer нам хотелось бы поблагодарить Марка Стросса (Mark Strauss) и Ханну Брэкен (Hannah Bracken), а также научных редакторов: Вини Бонато (Vini Bonato), Томаса Миллера (Thomas Miller), Росса Кинлана (Ross Quinlan), Эрика Сигела (Eric Siegel), Стэна Янга (Stan Young). Наконец, мы благодарим за поддержку свои семьи: Миранду Кун (Miranda Kuhn), Стефана Куна (Stefan Kuhn), Бобби Куна (Bobby Kuhn), Роберта Куна (Robert Kuhn), Карен Кун (Karen Kuhn) и Мэри Энн Кун (Mary Ann Kuhn); Уоррена (Warren) и Кей Джонсон (Kay Johnson); Валери (Valerie) и Трумэна Джонсона (Truman Johnson). Гротон, штат Коннектикут, США, Макс Кун Сейлайн, штат Мичиган, США, Кьелл Джонсон От издательства Некоторые иллюстрации для лучшего понимания нужно смотреть в цветном варианте. Мы снабдили их QR-кодами, перейдя по которым вы можете ознакомиться с цветной версией рисунка. Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.
Введение Люди ежедневно сталкиваются с вопросами вроде: «По какому маршруту мне сегодня ехать на работу?», «Не переключиться ли мне на другого оператора сотовой связи?», «Как мне лучше вложить свои деньги?» или «Заболею ли я раком?». Эти вопросы свидетельствуют о нашем желании узнать, что произойдет в будущем, и мы непрестанно стараемся принять наилучшие решения на пути к этому будущему. Обычно решения принимаются на основании информации. Иногда доступны реальные, объективные данные — например, информация об утренних пробках или метеосводки. В других случаях мы руководствуемся интуицией и опытом: «Мне лучше не ехать по мосту этим утром, потому что с началом снегопада здесь обычно возникают пробки» или «Мне стоит пройти анализ ПСА1, потому что у моего отца был рак простаты». В любом случае мы прогнозируем будущие события на основании уже имеющейся информации и опыта, а на основании этих прогнозов принимаются решения. По мере того как с появлением интернета и социальных сетей информация стала более доступной, возросло и наше желание пользоваться этой информацией для принятия решений. И хотя человеческий мозг может сознательно и подсознательно накапливать огромные объемы данных, он не способен обработать еще больший объем доступной информации, относящейся к текущей задаче. Чтобы упростить процессы принятия решений, мы пользуемся такими инструментами, как Google, для фильтрации миллиардов веб-страниц и поиска самой релевантной информации для наших запросов, WebMD (для диагностики заболеваний по симптомам) и E*TRADE (для просеивания тысяч акций и нахождения лучших капиталовложений для наших портфелей). Эти сайты наряду со многими другими используют инструменты, которые на основе текущей информации фильтруют данные в поисках закономерностей, относящих- 1 Простатический специфический антиген. — Примеч. пер.
22 Глава 1. Введение ся к сформулированной задаче, и возвращают ответы. Процесс разработки таких инструментов развивался в нескольких областях — химии, информатике, физике и статистике — и сегодня известен как «машинное обучение», «искусственный интеллект», «распознавание образов», «глубокий анализ данных», «предиктивная аналитика» и «извлечение информации». Хотя каждой области присуще решение свойственных ей задач с разных позиций и с использованием разных инструментов, конечная цель остается неизменной: создание точного прогноза. В этой книге мы объединим все эти термины в широко используемом выражении ^предиктивное моделирование». Напомним, Гейссер (Geisser, 1993) определяет предиктивное моделирование как «процесс, используемый для создания или выбора модели в попытках наилучшим образом предсказать вероятность исхода». Мы слегка подправим это определение: Предиктивное моделирование — это процесс разработки математического инструментария или модели, на основании которой генерируется точный прогноз. В свою очередь, Стив Леви (Steve Levy) писал в журнале Wired о нарастающем присутствии предиктивных моделей (Levy, 2010) следующее: «Примеры [искусственного интеллекта] встречаются повсюду: глобальная машина Google использует искусственный интеллект для интерпретации невразумительных человеческих запросов. Компании — эмитенты кредитных карт — для выявления мошенничества. Netflix — для того, чтобы рекомендовать фильмы подписчикам. А финансовая система использует его для обработки миллиардов торговых операций (с относительно редкими обвалами)». Вот примеры вопросов, для получения ответов на которые нам хотелось бы использовать прогнозирование: О Сколько экземпляров этой книги разойдется на рынке? О Перенесет ли этот клиент свой бизнес в другую компанию? О За сколько я смогу продать свое жилье при текущем состоянии рынка? О Имеется ли у этого пациента конкретное заболевание? О Какие фильмы заинтересуют зрителя, если руководствоваться его прошлыми решениями? О Стоит ли мне продавать эти акции? О Каких людей стоит свести друг с другом в нашем интернет-сервисе знакомств? О Является ли это сообщение электронной почты спамом? О Отреагирует ли пациент на некоторый вид терапии? Теперь — пример иного рода. Как известно, страховые компании должны прогнозировать риски потенциальных страхователей автомобилей, здоровья и жизни.
Введение 23 Эта информация затем используется для определения того, стоит ли предоставить клиенту страховой полис, а если стоит, то с какой страховой премией. Правительства, как и страховые компании, тоже стараются прогнозировать риски, но с целью защиты своих граждан. Из последних примеров правительственных предиктивных моделей можно привести биометрические модели выявления потенциальных террористов, модели выявления мошенничества (Westphal, 2008), модели беспорядков и бунтов (Shachtman, 2011). Даже посещение гастронома или бензоколонки (повседневных мест, в которых собирается и анализируется наша информация о покупках, в попытках определения того, кто мы и что нам нужно (Duhigg, 2012)) приводит нас в мир предиктивного моделирования, причем часто мы даже не подозреваем об этом. Как видим, предиктивные модели стали неотъемлемой частью нашего существования. Хотя предиктивные модели помогают создавать продукты, отвечающие запросам потребителей, более качественные лекарства и делать более выгодные инвестиции, они регулярно порождают и неточные прогнозы, и неправильные ответы. Например, многие из нас не получали порой важные сообщения электронной почты из-за того, что предиктивная модель (фильтр электронной почты) неправильно распознала их как спам. Точно так же, впрочем, медицинские диагностические модели ставят ошибочные диагнозы, а финансовые предиктивные модели (финансовые алгоритмы) ошибочно покупают и продают акции в расчете на прибыли, которые в реальности оборачиваются потерями. Подобная ошибка предиктивной модели дорого обошлась многим инвесторам в 2010 году. Специалисты, следящие за состоянием фондовой биржи, наверняка помнят «молниеносный обвал» 6 мая 2010 года, когда рынок стремительно потерял более 600 пунктов, а затем немедленно отыграл их обратно. Через несколько месяцев исследований Комиссия по срочной биржевой торговле и Государственная комиссия по ценным бумагам и фондовому рынку определили, что причиной обвала стала ошибка алгоритмической модели (U.S. Commodity Futures Trading Commission and U.S. Securities & Exchange Commission. 2010). По поводу «молниеносного обвала» и других подобных финтов предиктивных моделей Родригес (Rodriguez, 2011), в частности, пишет: «Предиктивное моделирование, как процесс создания или выбора модели в попытках наилучшим образом предсказать вероятность исхода, утратило доверие как инструмент прогнозирования». Он выдвигает гипотезу, согласно которой предиктивные модели регулярно сбоят, поскольку не учитывают такие сложные переменные, как человеческое поведение. В самом деле, наши возможности по прогнозированию или принятию решений ограничиваются нашими текущими и прошлыми знаниями, а также факторами, которые мы не учитываем. Эти реалии становятся ограничивающими факторами для любой предиктивной модели, однако они не должны препятствовать совершенствованию процесса их функционирования и улучшению самих моделей.
24 Глава 1. Введение Отказы предиктивных моделей объясняются целым рядом типичных причин, которые будут описаны в последующих главах. Вот наиболее распространенные причины. 1. Недостаточная предварительная обработка данных. 2. Недостаточная проверка модели. 3. Неоправданная экстраполяция (например, применение модели к данным в пространстве, неизвестном для модели). 4. Переобучение модели к существующим данным. Более того, замечено, что специалисты по предиктивному моделированию часто исследуют относительно небольшое количество моделей при поиске предиктивных связей. Чаще всего это объясняется личными предпочтениями, знаниями или опытом разработчика модели в использовании нескольких моделей либо отсутствием необходимого программного обеспечения, которое бы позволило проанализировать более широкий диапазон средств. В этой книге мы попытались помочь разработчикам предиктивных моделей в построении надежных достоверных моделей. Для этого мы предоставили пошаговое описание процесса построения модели и общие сведения о широком спектре распространенных моделей. В книге также изложены: О основополагающие принципы построения предиктивных моделей; О доступные объяснения многих методов предиктивного моделирования, чаще иных применяемых для решения классификационных и регрессионных задач; О принципы и этапы проверки предиктивной модели; О компьютерный код для выполнения важнейших операций по построению и проверке предиктивных моделей. Для демонстрации этих принципов и методов авторами использован широкий спектр реальных примеров из самых разных областей — от финансов до фармацевтики (они будут подробно описаны в разделе 1.4). Однако прежде следует проанализировать фактор, препятствующий применению методов предиктивного моделирования: компромисс между прогнозированием и интерпретацией. 1.1. Прогнозирование и интерпретация Во всех перечисленных выше примерах обычно присутствуют исторические данные, пригодные для создания математических средств прогнозирования будущих непредвиденных случаев. Более того, конечная цель примеров не сводится лишь к пониманию того, почему что-то произойдет (или не произойдет). Нас прежде всего интересует точное определение вероятности того, что некое событие произойдет
1.2. Ключевые ингредиенты предиктивных моделей 25 или, напротив, не произойдет. Помните, что моделирование этого типа прежде всего направлено на оптимизацию точности прогнозов. Например, нас не интересует, почему фильтр электронной почты считает, что сообщение является спамом. Важно лишь то, чтобы фильтр безошибочно искоренял спам и пропускал в электронный почтовый ящик только те сообщения, которые представляют для нас интерес. Другой пример: если я продаю дом, то меня интересует не то, по каким критериям веб-сайт (скажем, zillow.com) сформирует его оценку, — важно лишь то, чтобы эта цена была определена правильно. Заниженная оценка означает снижение ставок и более низкую цену продажи, завышенная — отпугнет потенциальных покупателей. Противоречия между прогнозированием и интерпретацией наглядно проявляются и в области медицины. Представьте процесс, с которым сталкиваются врач и пациент при принятии решений об изменении терапии. Пациент и врач должны учитывать такие факторы, как режим дозирования, потенциальные побочные эффекты, уровень смертности. Но если достаточное количество пациентов прошло альтернативную терапию благополучно, то появляется возможность аккумулировать информацию, относящуюся к их заболеванию, истории лечения и демографии. Кроме того, можно провести лабораторные исследования по анамнезу пациента, некоторым другим данным (например, по выполненным ранее анализам уровня белка). В результате становится возможным создать модель для прогнозирования реакции на альтернативную терапию. Критически значимым для врача и пациента является вопрос о том, как пациент отреагирует на смену терапии. Подобный прогноз должен быть максимально точным. Создаваемая для этого модель не должна ограничиваться требованием интерпретируемости (даже если кто-то сочтет это неэтичным). Ведь в конце концов, если модель может пройти соответствующую проверку, то неважно, будет это некий «черный ящик» или обычная интерпретируемая модель. Хотя главной задачей предиктивного моделирования должно быть генерирование точных прогнозов, его вторичной задачей может быть интерпретация модели и выработка понимания того, почему она работает. К сожалению, при стремлении к повышению точности модели становятся все более сложными, причем усложняется и их интерпретируемость. Как следствие, разработчикам моделей постоянно приходится отыскивать приемлемый компромисс между сложностью модели и точностью ее прогнозов. 1.2. Ключевые ингредиенты предиктивных моделей Обиходные примеры, приводившиеся ранее, демонстрировали, что данные — более того, очень большие наборы данных — теперь могут легко генерироваться в попытке ответить на едва ли не любые вопросы исследователей, возникающие в ходе
26 Глава 1. Введение моделирования. Бесплатные или относительно недорогие программы построения моделей — JMP, НЕКА, многочисленные пакеты R, а также мощь современных персональных компьютеров позволяют любому человеку, мало-мальски разбирающемуся в компьютерных технологиях, без особого труда приступить к разработке предиктивных моделей. Но, как справедливо замечает тот же Родригес (Rodriguez, 2011), достоверность построения моделей снижается, особенно с расширением окна доступа к данным и аналитическим инструментам. Как увидят далее наши читатели, если в наборе данных присутствует предиктивный сигнал, то он в той или иной степени будет обнаружен многими моделями независимо от метода или усилий, затраченных на их разработку. Таким образом, даже наивная модель может быть до известной степени эффективной; как гласит пословица, «раз в год даже палка стреляет». Но самые лучшие, самые сильные предиктивные модели находятся под фундаментальным влиянием разработчика, обладающего экспертными знаниями, и контекста задачи, «под которую» создается модель. Сначала эти знания должны быть применены для получения релевантных данных, соответствующих целям исследования. Хотя огромные базы данных с информацией могут использоваться в качестве субстрата для построения прогнозов, не относящаяся к делу информация способна снизить предиктивную эффективность значительной части создаваемых моделей. Знания, относящиеся к конкретной теме, помогают отделить потенциально содержательную информацию от посторонней, снизив таким образом помехи и усилив скрытый сигнал. В данных также могут присутствовать нежелательные искажающие сигналы, которые не могут быть выявлены без экспертных знаний. Ярким примером последнего служит база данных системы отчетов о нежелательных явлениях Управления США по надзору в сфере пищевых продуктов и лекарственных средств, включающая информацию о миллионах заявленных побочных эффектов от применения лекарств. В этом массиве данных присутствуют явные несуразности — например, поиск лекарства для лечения тошноты может показать, что значительная часть пациентов, использовавших это лекарство, болела лейкемией. Некомпетентный анализ может определить лейкемию как потенциальный побочный эффект от применения лекарства. Более вероятное объяснение, впрочем, заключается в том, что пациенты принимали лекарство от тошноты для подавления побочных эффектов терапии рака. Этот факт может быть очевиден интуитивно, но, несомненно, доступность огромного количества данных не защищает пользователей от издержек их использования, подобных описанным выше. Эйрес (Ayres, 2007) в результате всестороннего изучения взаимодействий между экспертным мнением и эмпирическими моделями, управляемыми данными, делает два важных замечания, подчеркивающих необходимость знания специфики проблемы. Во-первых, пишет Эйрес, «в конечном итоге [предиктивное моделирование] не заменяет интуицию, а скорее дополняет ее».
1.3. Терминология 27 Говоря несколько иначе, ни модели, управляемые данными, ни эксперты, полагающиеся исключительно на интуицию, не обеспечат, действуя порознь, наилучшее решение задачи — необходимо объединение их усилий. Во-вторых, указывает Эйрес, «традиционные эксперты принимают более качественные решения, когда они получают результаты статистического прогнозирования. Люди, цепляющиеся за авторитет традиционных экспертов, обычно склонны представлять идею объединения двух форм “знаний” при получении экспертом “статистической поддержки”. На самом деле люди обычно делают лучшие прогнозы, располагая для этого результатами статистического прогнозирования». В некоторых случаях, например при обнаружении спама, можно поручить большую часть анализа компьютерам. Но при более серьезных потенциальных последствиях (например, при прогнозировании реакции пациента на лечение) комбинированный подход часто приводит к лучшим результатам. Подведем итог: фундаментом эффективной предиктивной модели является интуиция и глубокое знание контекста проблемы. Именно эти факторы критически значимы для принятия решений относительно разработки модели. Процесс начинается с релевантных данных — еще один ключевой ингредиент. Третьим ингредиентом становится вариативный вычислительный инструментарий, включающий средства предварительной обработки и визуализации данных, а также набор средств моделирования для широкого спектра возможных сценариев; некоторые из этих сценариев перечислены в табл. 1.1. 1.3. Терминология Как упоминалось ранее, «предиктивное моделирование» — всего лишь одно из обозначений процесса выявления связей в данных для прогнозирования некоторого желательного результата. Поскольку рассматриваемая нами область знаний лежит на стыке нескольких научных дисциплин, у многих понятий существуют синонимы. О Так, термины точка данных (data point), выборка (sample), наблюдение (observation) или экземпляр (instance) обозначают независимую единицу данных, например клиента, пациента или вещество. Термин «выборка» также может обозначать подмножество точек данных — например, «выборка тренировочного набора» (training set sample). При использовании этого термина в дальнейшем нами будет уточняться контекст. О Тренировочный набор (training set) состоит из данных, используемых для разработки моделей, тогда как термины тестовый набор (test set) или контрольный набор (validation set) используются исключительно для оценки эффективности итогового набора вариантов моделей.
28 Глава 1. Введение Таблица 1.1. Сравнение некоторых характеристик наборов данных из примеров Набор данных производство химикатов 177 Непрерыв¬ ная X X X X X X проницаемость 165 о Непрерывная X X X X мошенничество в финансовых отчетах 204 о см Категорийная X X X X поражение печени 281 с© |> со Категорий¬ ная X X X X X X X заявки на предоставление грантов 8707 ОТ) хг см Категорийная X X X X X X музыкальный жанр 12 495 съ Категорийная X X X X X Характеристика Размеры Точки данных 3 си о н X 5 4 6 е Характеристики реакции Категорийная или непрерывная Сбалансированная / симметричная Несбалансированная /скошен¬ ная Независимая Характеристики предикторов Непрерывность Счетность Категорийность Коррелированность Разные шкалы измерений Отсутствующие значения Разреженность
1.4. Примеры наборов данных и типичные сценарии данных 29 О Предикторы (predictors), независимые переменные (independent variables), атрибуты (attributes) и дескрипторы (descriptors) — данные, используемые в качестве входных в формуле прогнозирования. О Термины результат (outcome), зависимая переменная (dependent variable), цель (target), класс (class) млп реакция (response) обозначают итоговое прогнозируемое событие или величину О Непрерывные (continuous) данные измеряются по естественной числовой шкале. Артериальное давление, стоимость товара, количество спален в доме — все это примеры непрерывных величин. В последнем случае значение не может быть дробным, но оно все равно относится к непрерывным данным. О Категорийные данные (categorical data), также называемые качественными (nominal), или дискретными (discrete), принимают конкретные значения, не имеющие определенной шкалы. Примеры таких данных — кредитная история («хорошая» или «плохая») или цвет («красный», «синий» и т. д.). О Термины построение модели (model building), обучение модели (model training) и оценка параметра (parameter estimation) обозначают процесс использования данных для определения значений в уравнениях модели. 1.4. Примеры наборов данных и типичные сценарии данных В последующих главах для демонстрации методов будет использоваться анализ конкретных ситуаций. Но прежде, по-видимому, стоит кратко исследовать несколько примеров задач предиктивного моделирования и типы данных, используемых для их решения. Основное внимание будет уделяться разнообразию задач и характеристик собираемых данных. Некоторые наборы данных из примеров позаимствованы с конкурсов по машинному обучению, на которых ставятся реальные задачи с поощрением (часто денежным) за нахождение лучшего решения. Такие конкурсы уже давно проводятся в области предиктивного моделирования. Они оказали значительное воздействие на ее развитие. Музыкальный жанр Этот набор данных был опубликован в качестве конкурсного на веб-сайте TunedIT (http://tunedit.org/challenge/music-retrieval/genres). Цель конкурса — разработка предиктивной модели для классификации музыки по шести категориям. Набор включал 12 495 музыкальных фрагментов, для которых была определена 191 характеристика. Распределение по категориям не было сбалансированным (рис. 1.1): наименьший сегмент относился к категории «хэви-метал» (7 %), а наибольший — к категории
30 Глава 1. Введение «классика» (28 %). Все предикторы были непрерывными; многие из них обладали высокой корреляцией, охватывая несколько разных шкал измерения. Коллекция данных была создана на основе композиций 60 исполнителей (от 15 до 20 композиций для каждого). Затем 20 фрагментов каждой композиции были параметризованы для создания итогового набора данных. Следовательно, образцы по своей природе не являются независимыми друг от друга. Рис. 1.1. Частотное распределение жанров в музыкальных данных Заявки на получение грантов Этот набор данных также был опубликован для конкурса — на веб-сайте Kaggle (http://www.kaggle.com). Цель конкурса — разработка предиктивной модели вероятности успеха заявки на получение гранта. База данных состояла из 8707 заявок на гранты, поданных в Университет Мельбурна с 2009 по 2010 год (количество предикторов — 249). Результат рассмотрения отражался в статусе заявки («успех» или «отказ»), из которых 46 % были квалифицированы как успешные. На веб-сайте упоминается, что текущий коэффициент успешности подобных заявок на гранты в Австралии составляет менее 25 %. Таким образом, показатели, присутствующие в базе данных, не являются типичными для Австралии. В числе предикторов — идентификатор спонсора, категория гранта, диапазон размеров гранта, область исследований и факультет. Все они являются непрерывными, счетными и категорийными. У этого набора данных есть и другая важная особенность: многие значения (83 %) предикторов отсутствовали. Кроме того, данные не были независимыми, так как одни и те же составители заявок фигурировали в них по несколько раз. Эти данные используются нами далее для демонстрации различных методов класси-
1.4. Примеры наборов данных и типичные сценарии данных 31 фикационного моделирования (см. главы 12-15, в том числе пояснение и сводку в подразделе 12.1). Поражение печени Следующий набор данных — из области фармацевтики — использовался для разработки модели прогнозирования вероятности того, что лекарственный препарат в процессе приема вызовет у пациента поражение печени. Набор данных содержал информацию о 281 уникальном препарате (количество предикторов — 376: данные о 184 биологических анализах и 192 химических свойствах). Возможные варианты интерпретации данных: «не вызывает поражения»; «умеренное поражение»; «серьезное поражение». Итоговый результат интерпретации представляется в высшей степени несбалансированным (рис. 1.2). Заметим, что подобное разнообразие реакций часто встречается в фармацевтике, поскольку компании-разработчики держатся подальше от создания молекул с недостаточными свойствами безопасности. Таким образом, молекулы с «добропорядочным» поведением часто значительно превосходят по численности «нежелательные» молекулы. Биологические предикторы по каждому анализу ранжировались от 0 до 10. Химические предикторы характеризуют некоторые важные субструктуры и результаты измерения физических свойств, которые, как предполагается, связаны с поражением печени пациентов. Более подробное описание предикторов рассматриваемого типа — в главе 5. Рис. 1.2. Распределение типов поражения печени
32 Глава 1. Введение Проницаемость Другой набор фармацевтических данных использовался для разработки модели прогнозирования проницаемости препаратов. Последняя определяет способность молекулы проникать через мембраны. Например, в человеческом теле существуют заметные мембраны между телом и мозгом (так называемый «гемато-энцефалический барьер»), между кишечником и телом во внутренних органах. Эти мембраны помогают телу защищать критически значимые участки от нежелательных или вредных веществ. Чтобы перорально принимаемые препараты эффективно влияли на мозг, они сначала должны пройти через стенки кишечника, а затем преодолеть гемато-энцефалический барьер для попадания в нужный неврологический приемник. Следовательно, способность препарата преодолевать соответствующие биологические мембраны исключительно важно понять уже на ранней стадии поиска нового лекарства. Если препарат эффективно противодействует конкретной болезни в исследовательских экспериментах, но обладает плохой проницаемостью, возможно, его придется модифицировать для улучшения проницаемости (способности препарата достигать нужной цели). Выявление проблем с проницаемостью может помочь химикам в построении более эффективных молекул. Для оценки проницаемости препаратов были разработаны такие методы количественного анализа, как PAMPA и Сасо-2 (Kansy et al., 1998). Эти методы эффективны для количественной оценки проницаемости вещества, но анализ достаточно дорог и трудоемок. Если вы располагаете данными по достаточному количеству препаратов, прошедших лабораторные испытания, можно разработать предиктивную модель проницаемости, чтобы сократить необходимость в анализе. В рассматриваемом нами проекте были задействованы 165 уникальных препаратов, для каждого из которых определены 1107 молекулярных сигнатур (fingerprints). Молекулярная сигнатура представляет собой двоичную последовательность, отражающую наличие или отсутствие конкретных молекулярных субструктур. Реакции распределены в высшей степени неравномерно (рис. 1.3), предикторы сильно разрежены (их присутствие отмечено в 15,5 % случаев), при сохранении между многими предикторами сильных связей. Производство химикатов Следующий набор данных содержит информацию о процессе производства химикатов. Цель исследования — понять связь между процессом и выходом продукта. Уточним, что в рассматриваемом примере для создания итогового лекарственного препарата сырье проходит 27 фаз обработки. Исходный материал генерируется биологическим отделением и обладает разнообразными показателями качества и характеристиками. Целью данного проекта является построение модели для прогнозирования выхода производственного процесса в процентах. Набор данных состоит из 177 образцов биологического материала, для которого определяются
1.4. Примеры наборов данных и типичные сценарии данных 33 Рис. 1.3. Распределение проницаемости 57 характеристик. Из этих 57 характеристик 12 относятся к исходному биологическому материалу, а 45 являются метриками производственного процесса. К переменным процесса относятся такие показатели, как температура, время просушки, время промывки и концентрации сопутствующих продуктов в разных фазах. Одни метрики процесса могут контролироваться, другие — только наблюдаются. Предикторы являются непрерывными, счетными и категорийными, между некоторыми из них существует корреляция, у отдельных отсутствует часть значений. Образцы не являются независимыми, так как наборы образцов берутся из одной партии исходного биологического материала. Мошенничество в финансовых отчетах Фэннинг и Коггер (Fanning and Cogger, 1998) описывают набор данных, ис- пользованный для прогнозирования случаев управленческого мошенничества в компаниях, зарегистрированных на бирже. Используя открытые источники данных, в частности документы Государственной комиссии по ценным бумагам и фондовому рынку, авторы смогли выявить 102 мошеннических финансовых отчета. Учитывая, что фальсификация встречается лишь в небольшом проценте отчетов, было решено собрать информацию об эквивалентном количестве1 добросовестных компаний; эта информация была использована для контроля важных факторов (например, размер компании, ее принадлежность к определенной отрасли). 150 точек данных использовались для тренировки моделей, остальные 54 — для оценки их эффективности. 1 Такой тип выборочных исследований очень близок к исследованиям методом «случай- контроль» в медицинской области.
34 Глава 1. Введение Первоначально использовалось неопределенное количество предикторов, выявленных в результате анализа ключевых областей, таких как коэффициент текучести руководства, судебные разбирательства и структура долга. В итоге количество предикторов сократилось до 20. Примеры — отношение дебиторской задолженности к объему продаж, отношение складских запасов к объему продаж, изменение валовой прибыли по годам и др. Многие предиктивные переменные, содержащие различные отношения, используют общие знаменатели (например, отношение дебиторской задолженности к объему продаж и отношение складских запасов к объему продаж). Хотя фактические точки данных не были опубликованы, скорее всего, между предикторами существуют сильные корреляции. С точки зрения моделирования этот пример интересен по нескольким причинам. Во-первых, из-за значительного дисбаланса в классах частоты двух классов в наборах данных сильно отличались от прогнозируемой генеральной совокупности. Распространенная стратегия минимизации последствий подобных дисбалансов — так называемое прореживание (down-sampling) данных. Во-вторых, количество возможных предикторов было существенно больше количества точек данных. В этом примере выбор предикторов для моделей был нетривиальной задачей из-за небольшого количества подходящих точек данных, в том числе для построения моделей и для оценки их эффективности. В дальнейших главах будет рассмотрена проблема переобучения, при которой тенденции в тренировочных данных не встречаются в других выборках. При большом количестве предикторов и малом количестве точек данных появляется риск того, что релевантный предиктор, обнаруженный в этом наборе данных, не будет воспроизводиться в других наборах. Сравнения наборов данных Дальнейшие примеры демонстрируют характеристики, общие для большинства наборов данных. Прежде всего, реакция может быть непрерывной или категорийной, а для категорийных реакций могут быть задействованы две и более категории. Для данных непрерывной реакции распределение реакции может быть симметричным (например, производство химикатов) или асимметричным (например, проницаемость); для данных категорийных реакций распределение может быть сбалансированным (например, заявки на предоставление грантов) или несбалансированным (например, музыкальный жанр, поражение печени). В главе 4 наши читатели увидят, что понимание распределения реакции критично для одного из первых шагов процесса предиктивного моделирования — разбиения данных на тренировочные и тестовые наборы. Понимание распределения реакции поможет разработчику модели в поиске лучших способов разбиения данных; непонимание характеристик реакции может создать вычислительные сложности для
1.4. Примеры наборов данных и типичные сценарии данных 35 некоторых видов моделей и моделей, обладающих субоптимальной предиктивной способностью. Наборы данных, описанные в табл. 1.1, также подчеркивают характеристики предикторов, универсальные для большинства наборов данных. Так, значения предикторов могут быть непрерывными, счетными и/или категорийными, в них может отсутствовать часть значений, могут использоваться разные шкалы измерения предикторов, и др. Кроме того, предикторы в наборе данных могут иметь высокую корреляцию — признак того, что набор предикторов содержит избыточную в числовом отношении информацию. Также предикторы могут быть разреженными', это означает, что большинство точек данных содержит одну и ту же информацию, и только некоторые из них — уникальную информацию. Как и реакции, предикторы могут иметь симметричное или смещенное распределение (для непрерывных предикторов), быть сбалансированными или несбалансированными (для категорийных предикторов). Наконец, предикторы в пределах набора данных могут иметь скрытые связи с реакцией или не иметь их. Разные виды моделей по-разному решают проблемы с подобными характеристиками. Например, метод частных наименьших квадратов естественным образом решает проблемы с корреляцией предикторов, но в числовом отношении он работает стабильнее, если предикторы измеряются по сходным шкалам. С другой стороны, на рекурсивное секционирование различия в шкалах не влияют, при этом структура секционирования становится менее стабильной при наличии корреляции между предикторами. Другой пример: множественная линейная регрессия не справляется с отсутствием информации предикторов, но рекурсивное секционирование может применяться в том случае, если предикторы содержат умеренное количество отсутствующей информации. В любой из этих ситуаций отсутствие необходимой регулировки предикторов до моделирования — предварительной обработки (pre-processing) — создает модели с субоптимальной эффективностью прогнозирования. Оценка характеристик предикторов и их регулировка посредством предварительной обработки рассматриваются в главе 3. Наконец, каждый из этих наборов данных демонстрирует другую фундаментальную характеристику, которая должна учитываться при построении предиктивной модели: связь между количеством точек данных (я) и количеством предикторов (Р). В случае с набором данных музыкальных жанров количество точек данных (п - 12 496) намного превышает количество предикторов (Р= 191). Все предиктивные модели справляются с этой ситуацией, но время вычислений зависит от модели и, скорее всего, увеличится с ростом количества точек данных и предикторов. И наоборот, в наборе данных проницаемости количество точек данных (п = 165) намного меньше количества предикторов (Р= 1107). Соответственно, такие предиктивные модели, как множественная линейная регрессия или линейный дискриминантный анализ, не могут использоваться напрямую. Тем не
36 Глава 1. Введение менее некоторые модели (например, рекурсивное секционирование и метод k ближайших соседей (KNN)) можно применять напрямую и в описываемых условиях. При рассмотрении каждого метода в последующих главах мы будем указывать, насколько хорошо метод справляется с наборами данных при п < Р. Для тех методов, которые в этой ситуации не работают, будут предложены альтернативные методы моделирования или действия по предварительной обработке, фактически сокращающие размерность пространства предикторов. Итак, до построения модели необходимо сформировать глубокое понимание предикторов и реакции на любой набор данных. Отсутствие такого понимания может привести к вычислительным сложностям и, как следствие, весьма условной эффективности модели. Кроме того, многие наборы данных потребуют известной предварительной обработки для расширения пространства возможных предиктивных моделей и оптимизации эффективности прогнозирования каждой модели. 1.5. Структура книги Книга состоит из четырех частей, в которых будет представлен процесс построения и критической оценки предиктивных моделей. Так как многие читатели, скорее всего, захотят реализовать представленные концепции, в конце каждой главы имеется раздел с кодом реализации рассмотренных тем. В тексте будет использоваться язык программирования R (R Development Core Team 2010). Для читателей, не знакомых с языком R, в приложении Б приведен краткий вводный курс. Цель приложения Б — ознакомить читателей с наиболее существенной информацией по основным программным конструкциям R. Тем не менее для читателей без опыта работы с R информации в приложении может оказаться недостаточно. В качестве дополнительного учебного материала мы можем порекомендовать следующие публикации: Verzani (2002); Venables et al. (2003); Maindonald and Braun (2007); Muenchen (2009); Spector (2008). В части I объясняются методы закладки надежных фундаментов, на которых строятся модели. Прежде чем пытаться моделировать какие-либо данные, необходимо хорошо понять краеугольные концепции их предварительной обработки (глава 3) и повторной выборки (глава 4). В главе 3 рассматриваются распространенные методы предварительной обработки: преобразование данных, добавление и/или удаление переменных, статистическая группировка непрерывных переменных. Здесь же подробно объясняется, почему для большинства моделей перед моделированием необходимо произвести предварительную обработку данных. В главе 4 представлена суть расходования данных, а также методы их расходования для соответствующей настройки модели и оценки ее эффективности. Там же по-
1.5. Структура книги 37 меняется, что для решения любой конкретной задачи специалист-практик всегда должен опробовать разнообразные модели. Заложив, таким образом, фундамент предиктивного моделирования, мы перейдем к обзору традиционных и современных регрессионных методов (часть II). Эта часть книги начинается с освещения способов оценки эффективности при моделировании непрерывного результата (глава 5). В главе 6 представлено рабочее и интуитивное понимание регрессионных моделей, формирующих иерархически ниже следующую структуру данных в форме линейной комбинации предикторов. К этому классу моделей относятся линейная регрессия, метод частных наименьших квадратов и L1-регуляризация. Далее (глава 7) дается объяснение регрессионных моделей, не основанных на простых линейных комбинациях предикторов. К этому классу, напомним, относятся нейросети, многомерные адаптивные регрессионные сплайны (MARS), метод опорных векторов (SVM) и KNN. Древовидные модели также не ограничиваются линейными комбинациями предикторов. С учетом популярности и широты применения в ансамблевых методах древовидные модели рассматриваются в отдельной главе (глава 8), где представлен обзор регрессионных деревьев, случайных лесов, усиления и Cubist. Часть II завершается анализом практического примера (глава 10), в котором сравниваются все вышеперечисленные методы применительно к конкретной задаче: моделированию прочности сжатия бетона для получения состава с улучшенными свойствами. После регрессионных моделей в рамках части III рассматриваются предиктивные классификационные модели. Метрики производительности для задач классификации отличаются от метрик регрессионных задач (глава 11). В главе 12 представлено рабочее и интуитивное понимание классификационных моделей, основанных на линейных комбинациях предикторов, таких как линейные, квадратичные, регуляризованные модели и дискриминантный анализ частных наименьших квадратов. Здесь же рассматриваются штрафные методы классификации. В главе 13 исследуются методы классификации, основанные на в высшей степени нелинейных функциях предикторов. К этому классу относятся гибкий дискриминантный анализ, нейросети, SVM, KNN, наивная классификация Байеса и ближайшие центроиды. Древовидные методы классификации рассматриваются в главе 14. В главе 17 представлен практический пример классификации со сравнительным анализом методов. В части IV рассматриваются другие важные соображения построения модели или оценки ее эффективности. В стремлении к поиску самых релевантных предикторов для имеющейся задачи было предложено множество различных типов методов выбора. Хотя эти методы обладают потенциалом обнаружения информации, со-
38 Глава 1. Введение держательной в практическом смысле, они часто помогают пользователю уяснить помехи в данных, а не их структуру. В главе 18 продемонстрированы различные методы количественной оценки важности предикторов. В главе 19 представлено введение и руководство по правильному использованию методов выбора признаков. Заметим, что на эффективность модели могут влиять самые разные факторы, вводя, таким образом, в заблуждение практика и заставляя его поверить, что модель имеет плохую предиктивную эффективность (тогда как в действительности эффективность хорошая) или модель имеет хорошую предиктивную эффективность (хотя на деле все обстоит наоборот). Некоторые типичные факторы, влияющие на эффективность модели, — избыточные помехи в наборе предикторов, реакции и предиктивная экстраполяция рассматриваются в главе 20. 1.6. Условные обозначения Среди прочих целей авторы книги стремились предоставить интуитивно понятные описания многих методов. Там, где это возможно, вместо формул используются слова. Многие модели могут быть выражены в алгоритмическом виде, но для некоторых из них предпочтительнее формулы. Обычно символы х и у с разными шрифтами и в разном регистре представляют предикторы и реакцию модели соответственно. В тексте они выглядят следующим образом: О п = количество точек данных; О Р = количество предикторов; О yi - i-e наблюдаемое значение результата, г = 1 ... п; О £ = прогнозируемый результат г-й точки данных, i = 1 ... п; О у = выборочное среднее значение для п наблюдаемых значений результата; О у = вектор всех п значений результата; О х- = значение у-го предиктора для г-й точки данных, i = 1,..., п uj = 1 ..., Р; О Xj = выборочное среднее значение п точек данных для/го предиктора, J = 1, О х, = коллекция (то есть вектор) Р предикторов для г-й точки данных, г = 1,..., п; О X = матрица Р предикторов для всех точек данных; матрица содержит п строк и Р столбцов; О Xх = транспонированная матрица X; эта матрица содержит Р строк и п столбцов.
1,6. Условные обозначения 39 Другие условные обозначения, встречающиеся по ходу изложения в формулах: О С = количество классов в категорийном результате; О Се = значение уровня /*-го класса; О р = вероятность события; О = вероятность Лго события; О Рг[.] = вероятность события; п О £ = оператор суммирования по индексу i; i=l О Z = теоретическая ковариационная матрица; О £[•] = ожидаемое значение •; О /(•) = функция .; для функций в тексте также используются обозначения g(-) и/г(); О р = неизвестный или теоретический коэффициент модели; О Ь = оценочный коэффициент модели, полученный на основании выборки точек данных. Для освещения отдельных тем и моделей авторами также используются другие обозначения (см. соответствующие пояснения по ходу изложения).
Часть I ОБЩИЕ СТРАТЕГИИ
Краткий обзор процесса предиктивного моделирования Прежде чем перейти к глубокому изучению формальных компонентов построения модели, рассмотрим простой пример, иллюстрирующий основы ее построения, точнее, то, что в дальнейшем будет именоваться как «расходование» данных, построение моделей-кандидатов и выбор оптимальной модели. 2.1. Пример прогнозирования экономии топлива На веб-сайте fueleconomy.gov, принадлежащем Управлению по энергоэффективности и возобновляемым источникам энергии Министерства энергетики США и Агентству охраны окружающей среды США, перечислены различные оценки экономии топлива для легковых и грузовых автомобилей. Для каждого вида транспорта регистрируются различные характеристики, включая объем двигателя и число цилиндров. Параллельно проводятся лабораторные измерения потребления топлива в городе и на автострадах (в милях на галлон (MPG)). На практике для нахождения наиболее эффективной предиктивной модели ее следовало строить с учетом максимально возможного числа характеристик. Тем не менее в данном примере нас интересуют прежде всего высокоуровневые концепции построения модели, поэтому мы ограничимся одним предиктором — объемом двигателя (пространством в цилиндрах двигателя) и одной реакцией — нескорректированным показателем MPG на автостраде для автомобилей 2010-2011 годов выпуска. Построение модели начинается с уяснения исходных данных — допустим, посредством их представления в графическом виде. Поскольку в нашем примере используются один предиктор и одна реакция, эти данные могут быть представлены в виде графика (рис. 2.1), отражающего зависимость между объемом двигателя и экономией топлива. На графике слева представлены данные по всем машинам
2.1. Пример прогнозирования экономии топлива 43 2010 года, на графике справа — данные только по новым машинам 2011 года. Очевидно, что с ростом объема двигателя эффективность потребления топлива падает независимо от года выпуска. Зависимость выглядит достаточно линейной, но на концах оси, отражающей изменение объема двигателя, наблюдается некоторая тенденция к искривлению. 2 4 6 8 -0- ф 70 60 50 40 30 20 2 4 6 8 Объем двигателя Рис. 2.1. Зависимость между объемом двигателя и эффективностью потребления топлива для автомобилей 2010 и 2011 года выпуска Если бы в модели использовалось несколько предикторов, то пришлось бы продолжить анализ их характеристик, а равно и зависимостей между предикторами. Эти характеристики могут указывать на обязательность выполнения ряда операций по обработке данных, предшествующих построению модели (подробнее см. главу 3). Получив первое представление о данных, можно приступить к построению и оценке модели. Стандартный подход заключается в том, чтобы использовать случайную выборку данных для построения модели, а остальные данные — для оценки ее эффективности. Предположим, однако, что нам необходимо спрогнозировать MPG для нового семейства автомобилей. Подобные модели могут создаваться на основе данных 2010 года (для 1107 автомобилей), а тестироваться — на основе данных 2011 года (для 245 автомобилей). Условимся, что данные за 2010 год будут именоваться нами «тренировочным набором» модели, а данные за 2011 год — «тестовым» или «контрольным» набором. Теперь необходимо решить, как именно оценивать эффективность модели. Для регрессионных задач, в которых мы пытаемся предсказать то или иное числовое значение, важным источником информации могут стать погрешности. Остаточная погрешность (residual) вычисляется как разность между наблюдаемым и спрогнозированным значением (то есть г/, - г/?) При прогнозировании числовых значений для оценки моделей обычно применяется среднеквадратичная погрешность. Эта
44 Глава 2. Краткий обзор процесса предиктивного моделирования характеристика (подробнее см. главу 7) показывает, насколько в среднем погрешность отклоняется от нуля. В процессе оценки модели ее разработчик опробует различные приемы математического определения зависимости между предиктором и результатом. Здесь тренировочный набор используется для оценки различных значений, задействованных в уравнениях модели. Тестовый набор используется только после того, как несколько наиболее подходящих моделей (далее также — моделей-кандидатов) будут приняты разработчиком для окончательного выбора в пользу наиболее подходящей. Отметим, что повторное использование тестового набора в процессе построения модели не позволяет применять его в качестве «арбитра» модели. Предположим, нами была создана модель линейной регрессии, в которой прогнозируемая величина MPG определяется простейшим уравнением прямой с угловым коэффициентом. На основании тренировочных данных мы посредством метода наименьших квадратов (подробнее см. раздел 6.2) оцениваем точку пересечения 50,6 и угловой коэффициент -4,5 MPG. На рис. 2.2 показана погрешность модели для данных тренировочного набора1. В левой части отображен тренировочный набор данных с линейной аппроксимацией, определяемой вычисленной точкой пересечения и угловым коэффициентом. В правой части отображены наблюдаемые и спрогнозированные значения MPG. Как видим, модель упускает некоторые закономерности в данных — например, занижение эффективности потребления топлива, если объем двигателя меньше 2 л или, напротив, больше 6 л. 70 к х X ф 7 X со ф >ч о. 60 50 40 30 20 ф 3 2 о Е а с 2 4 6 8 20 30 40 50 60 70 Объем двигателя Наблюдаемые значения Рис. 2.2. Диагностика качества аппроксимации для модели линейной регрессии 1 Как говорил наш преподаватель в аспирантуре:« Если вы хотите чувствовать себя уверенно со своими данными, никогда не смотрите на них».
2.1. Пример прогнозирования экономии топлива 45 Подчеркнем: не следует оценивать производительность модели на данных, использованных для построения модели. Выполнив прогнозирование на основе данных тренировочного набора, вы рискуете получить завышенную оценку качества работы модели, особенно если модель обладает высокой адаптируемостью. Альтернативный способ оценки качества модели основан на использовании повторной выборки (resampling) с вариативным использованием данных тренировочного набора для обучения модели (подробнее см. главу 4). В рассматриваемом примере использован прием повторной выборки, именуемый далее десятикратной перекрестной проверкой (10-fold cross-validation); значение среднеквадратичной погрешности составляет 4,6 MPG. Исходя из рис. 2.2 можно предположить, что задача решается введением некоторой нелинейности в модель несколькими возможными способами — например, посредством искусственного усложнения вычислительного аппарата модели. Так, добавление квадратного члена для объема двигателя позволяет дополнительно оценить параметр углового коэффициента (через квадрат предиктора). В этом случае уравнение модели принимает вид: Эффективность = 63,2 - 11,9 х объем + 0,94 х объем2. Такое уравнение называется квадратичной моделью, поскольку включает квадратный член (см. аппроксимацию модели на рис. 2.3). Добавление квадратного члена улучшает качество аппроксимации — значение среднеквадратичной погрешности, вычисленной с использованием перекрестной проверки, составляет 4,2 MPG. Один из недостатков квадратичных моделей — неэффективность в крайних диапазонах предиктора. На рис. 2.3 нечто похожее наблюдается для автомобилей с очень большим объемом двигателя. Результаты подобного прогнозирования могут характеризоваться серьезными погрешностями. В главах 6-8 рассматривается немало других методов создания сложных зависимостей между предикторами и результатом. Это, например, рассмотренная Фридманом (Friedman, 1991) модель многомерных адаптивных регрессионных сплайнов (MARS). При наличии только одного предиктора MARS может произвести аппроксимацию разных линейных регрессий для разных диапазонов объема двигателя. Для этой модели вычисляется точка пересечения оси и угловой коэффициент, а также количество и размеры нескольких областей для линейных моделей. В отличие от линейных регрессионных моделей, у модели, формируемой рассматриваемым методом, имеется параметр настройки, который не может быть напрямую выведен из данных. Не существует и формулы, по которой можно было бы определить количество сегментов для моделирования данных. Хотя в модели MARS предусмотрены внутренние алгоритмы для определения этой характеристики, можно опробовать разные значения и использовать повторную выборку для определения наиболее подходящего из них. Это позволит провести обучение итоговой модели MARS по всем данным тренировочного набора, после чего использовать ее для прогнозирования.
46 Глава 2. Краткий обзор процесса предиктивного моделирования 70 60 га га х £ 50 О н (X i 40 О х § & 30 20 70 (1) 3 ф >ч Q. X о О г о Q. 60 50 40 30 С 2 4 6 8 20 30 40 50 60 70 Объем двигателя Наблюдаемые значения Рис. 2.3. Диагностика качества аппроксимации для модели квадратичной регрессии (с использованием тренировочного набора) Для одного предиктора MARS поддерживает до пяти компонентов модели (аналогов упоминавшихся выше точек пересечения и угловых коэффициентов). Используя перекрестную проверку, вычислим четыре значения-кандидата для этого параметра настройки и последующего создания профиля повторной выборки (рис. 2.4). Наименьшее значение среднеквадратичной погрешности достигается при четырех сегментах, хотя разница значений среднеквадратичной погрешности указывает на относительно небольшое влияние этого параметра настройки. Значение среднеквадратичной погрешности для оптимальной модели составляет 4,2 MPG. После аппроксимации итоговой модели MARS с четырьмя сегментами приходим 2,0 2,5 3,0 3,5 4,0 4,5 Количество компонентов 5,0 Рис. 2.4. Профиль перекрестной проверки для параметра настройки MARS
2.1. Пример прогнозирования экономии топлива 47 к значениям тренировочного набора (рис. 2.5), для которого было также спрогнозировано несколько линейных сегментов. 70 2 4 6 8 Объем двигателя (X X X ф т го X со ф 5 ф >4 о. о о. С 60 50 40 30 20 20 30 40 50 60 70 Наблюдаемые значения Рис. 2.5. Диагностика качества аппроксимации для модели MARS (с использованием тренировочного набора). Модель MARS создает несколько вариантов линейной регрессии с точками изменений в 2,3, 3,5 и 4,3 л 2 3 4 5 6 7 60 S 50 х q О о О 30 О 20 2 3 4 5 6 7 Объем двигателя Рис. 2.6. Данные тестового набора и результаты аппроксимации для двух моделей На основании этих трех моделей для тестового набора проведена оценка модели квадратичной регрессии и модели MARS (рис. 2.6). Обе модели обеспечивают при-
48 Глава 2. Краткий обзор процесса предиктивного моделирования близительно одинаковое качество аппроксимации. Значение среднеквадратичной погрешности тестового набора для квадратичной модели составило 4,72 MPG, а для модели MARS — 4,69 MPG. Следовательно, любая из этих моделей пригодна для прогнозирования эффективности новых моделей автомобилей. 2.2. Аспекты, заслуживающие отдельного рассмотрения У процесса построения модели есть несколько аспектов, о которых стоит рассказать подробнее, особенно для читателей, не имеющих опыта в предиктивном моделировании. Разделение данных Способ распределения данных на части, используемые, например, для построения модели и для оценки ее эффективности, является (подробнее см. следующую главу) важным аспектом моделирования. В рассмотренном примере нас прежде всего интересовала возможность прогнозирования экономии топлива новых автомобилей, а эти данные не принадлежат той же совокупности, что и данные, использованные для построения модели. Тем самым мы до определенной степени проверяем, насколько хорошо модель экстраполируется на другую совокупность данных. Если бы нас интересовало прогнозирование по той же совокупности машин (то есть интерполяция), то правильнее было бы воспользоваться случайной выборкой этих данных. Значит, способ определения тренировочного и тестового наборов должен отражать и особенности применения модели. Сколько именно данных следует выделить под тренировочный и тестовый наборы, зависит от ситуации. Если набор данных мал, то решение о разделении данных следует принимать крайне осмотрительно. Малый набор данных обладает ограниченными возможностями для оценки эффективности. Для получения адекватной оценки в данной ситуации можно прибегнуть к методу повторной выборки, отказавшись от применения тестового набора. Данные предикторов В рассмотренном примере центральное место занимал один из предикторов: объем двигателя. Но исходные данные включают также сведения о количестве цилиндров, о типе передачи, о производителе автомобиля. Более серьезная попытка прогнозирования экономии топлива учитывала бы максимально возможное количество предикторов для повышения эффективности. Заметим, при использовании нескольких предикторов представляется возможным уменьшить значения среднеквадратичной
2.2. Аспекты, заслуживающие отдельного рассмотрения 49 погрешности для новых моделей машин. Вам могут помочь и дополнительные исследования данных — с учетом, например, того, что ни одна модель не обеспечивала эффективного прогнозирования экономии топлива для автомобилей с малым объемом двигателя. Соответственно, включение предикторов, ориентированных именно на автомобили с малолитражными двигателями, способно повысить эффективность моделирования (о процессе определения минимально необходимого набора релевантных предикторов подробнее см. главу 19). Оценка эффективности Перед использованием тестового набора мы применили два метода определения эффективности модели. Первый из них — количественная оценка статистики (например, среднеквадратичная погрешность) с использованием повторной выборки — позволяет понять, насколько применим каждый метод в отношении новых данных. Другой метод — создание простых визуализаций модели (например, посредством нанесения на график наблюдаемых и спрогнозированных значений) для обнаружения областей данных, в которых модель показывает наилучшие или, напротив, наихудшие результаты. Эта информация особенно важна для улучшения моделей и, наоборот, утрачивает свое значение, если модель оценивается только на основе сводной статистики. Оценка нескольких моделей Мы выполнили оценку трех разных моделей. Между тем многие практики моделирования замечены в склонности к использованию только одной модели, облеченной их доверием (быть может, чрезмерным). Однако представленная Уолпертом (Wolpert, 1996) «Теорема о бесплатном сыре» утверждает, что без обладания наиболее важной информацией о проблеме, решить которую предполагается посредством моделирования, невозможно сделать выбор в пользу модели, которая бы априори работала лучше любой другой. Значит, следует опробовать разнообразные методы оценки моделей и лишь затем определить, на какой именно модели следует остановиться. В рассмотренном примере график данных указал на наличие нелинейной зависимости между предиктором и реакцией, что позволяет исключить из дальнейшего рассмотрения линейные модели (при сохранении множества иных вариантов), сделав окончательный выбор в пользу простой квадратичной модели. Выбор модели Итак, мы рассмотрели два варианта выбора. В соответствии с первым из них модели сравнивались между собой, что повлекло исключение из числа моделей-кандидатов модели линейной регрессии (как не обеспечивающей требуемой аппроксимации).
50 Глава 2. Краткий обзор процесса предиктивного моделирования Во втором варианте к моделям определенного типа, например MARS, выбор параметра осуществлен посредством перекрестной проверки. Соответственно, искомый тип модели MARS определялся посредством выбора между несколькими однотипными моделями. В обоих случаях для получения оценок моделей, упрощающих выбор, применены перекрестная проверка и тестовый набор. Поскольку в рассмотренном примере использовался всего один предиктор, что на практике случается редко, были построены графики аппроксимации, способствовавшие принятию обоснованного решения. Выбранные в итоге варианты моделей, на первый взгляд, обладали одинаковой эффективностью. Но поскольку квадратичные модели могут недостаточно хорошо работать для машин с очень большим объемом двигателя, интуиция подсказывает, что лучше отдать предпочтение модели MARS. К слову, одна из целей этой книги заключается в том, чтобы помочь читателю сформировать интуитивное представление о сильных и слабых сторонах разных моделей, что, в свою очередь, способствует принятию последующих взвешенных решений. 2.3. Итоги На первый взгляд, построение модели выглядит прямолинейно: выберите метод моделирования, введите данные и сформируйте прогноз. Да, в результате такого подхода будет сгенерирована предиктивная модель, но вряд ли она окажется достаточно надежной и достоверной для прогнозирования по новым выборкам. Чтобы получить искомую модель, необходимо уяснить цель моделирования, требования к данным, используемым в процессе моделирования. Это, в свою очередь, позволит провести предварительную обработку данных, их обоснованное разделение. Только после этого можно приступить к построению, оценке и выбору моделей.
Предварительная обработка данных Под методами предварительной обработки обычно понимается добавление, удаление или преобразование тренировочных наборов данных. Подготовка данных может сыграть решающую роль в предиктивной эффективности модели. Разные модели обладают разной чувствительностью к типу предикторов; важно и то, как предикторы входят в модель. Преобразования данных для сокращения влияния асимметричности или выбросов могут привести к значительному улучшению эффективности модели. Выделение признаков (подробнее см. раздел 3.3) — один из эмпирических методов создания суррогатных переменных, представляющих сочетание нескольких предикторов. Но и более простые стратегии, например удаление предикторов из-за нехватки информационного контента, тоже могут оказаться эффективными. Необходимость предварительной обработки данных определяется с учетом типа модели. Так, древовидные модели наименее чувствительны к характеристикам данных предикторов, что, напротив, не характерно для линейной регрессии. В этой главе рассматривается широкий спектр возможных методологий. При последующем описании методов моделирования внимание читателей будет обращено на те из них, что представляются в контексте повествования наиболее подходящими. В этой же главе обозначены подходы к неконтролируемой обработке данных, когда результирующая переменная не учитывается методом предварительной обработки. Рассмотрены контролируемые методы, например модели частных наименьших квадратов (PLS), по сути, являющиеся контролируемыми версиями метода главных компонент (РСА, Principal Component Analysis). Будут описаны и стратегии удаления предикторов без проведения анализа взаимосвязи переменных с результатом (о методах нахождения подмножеств предикторов, оптимизирующих способность модели к прогнозированию реакции, см. главу 19).
52 Глава 3. Предварительная обработка данных Способ кодирования предикторов, называемый конструированием признаков (feature engineering), может оказывать значительное влияние на эффективность модели. Например, использование комбинаций предикторов иногда может быть более эффективным, чем их раздельное использование. Часто выбор наиболее эффективной кодировки данных определяется не каким-либо математическим методом, а исходя из понимания разработчиком модели стоящей перед ним задачи. Обычно применяются несколько различных методов кодирования данных предикторов. Так, в главах 12-15 описан набор данных для прогнозирования успеха заявки на получение академических грантов. В числе данных фигурирует и дата подачи заявки, представляемая: О как количество дней, отсчитываемых от некоторой начальной даты; О с выделением месяца, года и дня недели в отдельные предикторы; О как порядковый номер дня года; О как признак принадлежности даты к учебному году (в отличие от дней, не относящихся к числу учебных). «Правильное» конструирование признаков зависит от нескольких факторов. Во-первых, некоторые кодировки могут быть оптимальными для одних моделей, но абсолютно непригодными для других. Например, древовидные модели разделяют данные на два и более гнезда. Теоретически, если месяц важен, дерево разобьет числовой день года соответствующим образом. Кроме того, в некоторых моделях множественные способы кодирования определенных данных могут оказаться трудноприменимыми. Ряд моделей (см. далее) содержат встроенные средства выбора признаков; это означает, что модель будет включать только те предикторы, которые способствуют максимизации ее точности. Во-вторых, необходимо учитывать взаимозависимость между предиктором и результатом. Например, если в данных присутствует фактор сезонности, то определение признака дня года по порядковому номеру будет лучшим вариантом. Кроме того, если в некоторых месяцах наблюдаются более высокие показатели успешности, чем в других, кодировка на базе месяца будет предпочтительной. На вопрос «Какие методы конструирования признаков работают лучше всего?» ответ будет таким же, как и на многие иные вопросы из области статистики: это зависит от ситуации (подробнее о кодировке данных см. раздел 12.1). Прежде чем приступить к изучению конкретных методов конструирования признаков, рассмотрим следующий пример.
3.1. Практический пример: сегментация клеток 53 3.1. Практический пример: сегментация клеток в высокопроизводительном скрининге Медики-исследователи часто пытаются понять эффект воздействия препарата или заболевания на размер, форму, состояние развития и количество клеток в живом организме. Для этого под микроскопом исследуются сыворотка или ткань, после чего выбираются нужные для оценки состояния клеток характеристики. Эта работа утомительна и требует экспертных знаний типов и характеристик клеток. Но для указанных целей возможно и применение высокопроизводительного скрининга, упоминаемого, например, у Джулиано (Giuliano et al., 1997), в соответствии с которым исследуемый образец сначала окрашивается веществом, позволяющим выявить соответствующие характеристики клеток. Например, если требуется получить количественную оценку размера или формы ядра клетки, то в образце применяется вещество, взаимодействующее с ДНК клетки. Состояние клетки при этом консервируется. Затем образец исследуется при помощи инструмента (например, конфокального микроскопа), где краситель отражает свет, а датчики определяют степень рассеяния с учетом конкретной длины волны. Для исследования нескольких характеристик клеток допустимо одновременное использование нескольких красителей и нескольких световых частот. Результаты измерений обрабатываются специальной программой для получения числовой оценки искомых характеристик исследуемых клеток. Впрочем, и подобный способ определения характеристик клеток иногда дает недостоверные результаты. Так, у Хилла (Hill et al., 2007) описан исследовательский проект, в котором высокопроизводительный скрининг применен для измерения нескольких параметров, характеризующих состояние клеток. По ходу исследований выяснилось, что у программы, определявшей форму и местонахождение клеток, возникали проблемы с сегментированием (то есть определением границ) клеток. На изображениях (рис. 3.1) ярко-зеленые границы обозначают ядро клетки, синие — ее периметр. Очевидно, что одни клетки имеют четкую сегментацию, а другие — нет. Клетки с плохой сегментацией кажутся поврежденными, но в действительности это не так. Таким образом, если предметом исследования является определение размера, формы и/или количества клеток, очень важно, чтобы программа обработки изображений правильно сегментировала исследуемые клетки. Для проведения исследований группа Хилла (Hill et al., 2007) сформировала набор данных из 2019 клеток, из которых 1300 считались плохо сегментированными (PS,
54 Глава 3. Предварительная обработка данных Poorly Segmented), а 719 — хорошо сегментированными (WS, Well Segmented); еще 1009 клеток были зарезервированы для тренировочного набора1. Для конкретного типа клеток исследователи применяли разные красители, видимые в разных оптических каналах. Канал 1 был связан с клеточным телом и мог использоваться для определения периметра клетки, ее площади и ряда других показателей. Канал 2 был связан с ядром клетки и использовался для окрашивания ядерной ДНК (синие участки на рис. 3.1). Каналы 3 и 4 были направлены на обнаружение актина и тубулина соответственно. Эти два типа волокон проходят через клеточный каркас и являются частью цитоскелета клетки. Для клеток в составе набора вычислены 116 признаков (например, площадь или количество волокон), которые использовались при прогнозировании качества сегментации клеток2. d е Рис. 3.1. Изображение с сегментацией клеток из исследования Хилла (Hill et al., 2007). Фрагменты [(d) и (е)] обозначают плохо сегментированные клетки, а клетки в фрагментах (с) и (Ь) являются примерами хорошей сегментации В этой главе будут использоваться выборки тренировочного набора, выделенные авторами для демонстрации методов предварительной обработки данных. ' Конкретные точки данных можно найти на веб-сайте журнала или в пакете R AppliedPredictiveModeling. См. раздел «Вычисления» в конце этой главы. 2 Авторы также включили несколько «статусных» признаков, которые являлись бинарными представлениями других признаков в наборе данных. Мы исключили их из анализа в этой главе.
3.2. Преобразования данных для отдельных предикторов 55 3.2. Преобразования данных для отдельных предикторов Преобразования переменных-предикторов могут понадобиться по разным причинам. Так, у некоторых методов моделирования существуют требования к наличию у предикторов единой шкалы масштаба. Иногда хорошую модель трудно создать из-за особых характеристик данных (например, выбросов), в связи с чем необходимы рассматриваемые далее преобразования: центрирование, масштабирование и смещение. Центрирование и масштабирование Самое тривиальное и распространенное преобразование данных — центрирование переменных-предикторов по оси координат. Чтобы отцентровать предиктор, из всех имеющихся значений вычитается среднее значение. В результате получается нулевое среднее значение предиктора. Аналогичным образом для масштабирования данных каждое значение переменной-предиктора делится на ее среднеквадратичное отклонение. Масштабирование данных модифицирует значения так, чтобы среднеквадратичное отклонение равнялось единице. Рассматриваемые преобразования обычно используются для улучшения числовой стабильности некоторых вычислений. Так, модели наподобие PLS (разделы 6.3 и 12.4) выигрывают от приведения шкалы предикторов к одному масштабу. Недостаток таких преобразований — потеря интерпретируемости индивидуальных значений (поскольку данные уже не измеряются в исходных единицах). Преобразования для устранения смещения Другая стандартная причина, влекущая необходимость преобразований, — устранение асимметрии в распределении. Несмещенное распределение приблизительно симметрично. Это означает, что вероятность попадания по обе стороны от математического ожидания распределения приблизительно одинакова. В распределении, смещенном вправо, в его левой части (меньшие значения) оказывается большее количество точек, чем в правой части (большие значения). Например, данные сегментации клеток содержат предиктор, оценивающий среднеквадратичное отклонение пикселов в волокнах актина. В данных, выраженных в натуральных единицах, наблюдается сильное смещение вправо; в области малых значений наблюдается большая концентрация точек данных, тогда как в области больших значений их относительно немного (рис. 3.2).
56 Глава 3. Предварительная обработка данных Рис. 3.2. Слева: гистограмма среднеквадратичного отклонения интенсивности пикселов в волокнах актина. У этого предиктора наблюдается сильное смещение вправо с концентрацией точек с низкими значениями. Для этой переменной отношение большего значения к меньшему равно 870, а коэффициент асимметрии составляет 2,39. Справа', те же данные после логарифмического преобразования. Коэффициент асимметрии для логарифмических данных равен -0,4 Принято считать, что данным, у которых отношение наибольшего значения к наименьшему превышает 20, присуще значительное смещение. Коэффициент асимметрии может использоваться и как диагностический признак. Если же распределение приблизительно симметрично, то величины смещения будут близки к нулю. По мере нарастания смещения вправо увеличивается и коэффициент асимметрии. При нарастании смещения распределения влево значение становится отрицательным. Формула коэффициента асимметрии выборки выглядит так: асимметрия = Х(х(-*)3 (w-l)r3/2 ’ где (п-1) гдех — переменная-предиктор, п — количество значений, х — выборочное среднее для предиктора. Для данных волокон актина на рис. 3.2 вычисленный коэффициент асимметрии равен 2,39, а отношение наибольшего значения к наименьшему равно 870. Замена данных логарифмом, квадратным корнем или обратной величиной может помочь устранить асимметрию. Для данных на правой панели (рис. 3.2) показано распределение после логарифмического преобразования. Как видим, и преобразованное распределение не является абсолютно симметричным, но эти данные обладают намного лучшим поведением, чем в натуральных единицах.
3.2. Преобразования данных для отдельных предикторов 57 Для эмпирического определения подходящего преобразования можно воспользоваться и статистическими методами. Бокс и Кокс (Box and Сох, 1964) предлагают семейство преобразований1, индексированных по параметру X: если X фО если X — О Кроме логарифмического преобразования, это семейство может выявлять преобразование возведения в квадрат (X = 2), квадратный корень (X = 0,5), вычисление обратной величины (X = -1) и другие промежуточные преобразования. Используя тренировочные данные, можно оценить значение X. Бокс и Кокс (Box and Сох, 1964) показывают, как при помощи оценивания методом максимального правдоподобия определить параметр преобразования. Эта процедура будет применяться независимо ко всем данным предикторов, содержащих положительные значения. Рис. 3.3. Слева: гистограмма предиктора периметра клетки. Справа: те же данные после преобразования Бокса—Кокса с вычисленной оценкой X = -1,1 Для данных сегментации 69 предикторов не были преобразованы из-за нулевых или отрицательных значений, а у трех предикторов оценки X лежали в диапазоне 1 Некоторые читатели, знакомые с работой Бокса и Кокса (Box and Сох, 1964), знают, что это преобразование было разработано для данных результата, тогда как у Бокса и Тидуэлла (Box and Tidwell, 1962) описаны аналогичные методы преобразования набора предикторов в линейной модели. Наш опыт показывает, что преобразование Бокса—Кокса более прямолинейно, создает меньше проблем с числовыми данными и не уступает по эффективности преобразованию отдельных переменных-предикторов.
58 Глава 3. Предварительная обработка данных 1 ± 0,02, поэтому преобразование не применялось. У остальных 44 предикторов значения оценивались в диапазоне от -2 до 2. Например, для данных предикторов на рис. 3.2 оценка значения преобразования равна 0,1, что указывает на оптимальность логарифмического преобразования. Для другого предиктора, примененного при оценке периметра клетки, значение X составляло -1,1 (рис. 3.3). 3.3. Преобразования данных с несколькими предикторами Преобразования для решения проблемы выбросов Выбросы (outliers) обычно определяются как точки данных, лежащие аномально далеко от основного потока данных. Отметим, что даже при доскональном понимании данных выявление выбросов может оказаться проблематичным. Тем не менее нетипичные значения часто выявляются при рассмотрении графиков. Чтобы квалифицировать одну или несколько точек в качестве выбросов, следует убедиться в том, что оцениваемые значения являются действительными с научной точки зрения (например, кровяное давление положительно), а регистрация данных не сопровождалась ошибками. Никогда не торопитесь с удалением или изменением значений, особенно при малом размере выборки. В малых выборках очевидные выбросы могут быть результатом смещения в распределении, когда объем данных еще недостаточен для того, чтобы заметить это смещение. Выбросы данных могут свидетельствовать и о том, что из особой части изучаемой совокупности еще только начинают поступать данные. В зависимости от того, как собирались данные, «кластер» действительных точек вне основного потока данных может принадлежать к другой совокупности, чем другие выборки1. Отметим, что существует несколько предиктивных моделей, устойчивых к выбросам. Древовидные модели классификации создают разделения тренировочных данных, а формула прогнозирования представляет собой набор логических утверждений типа «если предиктор А больше X, то прогнозировать класс У», так что выброс обычно не оказывает значительного влияния на модель. Метод опорных векторов, применяемый для классификации данных, обычно игнорирует часть данных в составе тренировочного набора при создании предиктивного уравнения. Исключенные данные могут лежать как за пределами принятия решения, так и за пределами основного потока данных. 1 В разделе 20.5 рассматривается экстраполяция модели, при которой модель прогнозирует точки данных, находящиеся за пределами основного потока тренировочных данных. Другая важная концепция, область применимости модели, представляет собой совокупность точек данных, которые могут эффективно прогнозироваться моделью.
3.3. Преобразования данных с несколькими предикторами 59 Если известно, что модель чувствительна к выбросам, можно прибегнуть к предлагаемому Сернилсом (Serneels et al., 2006) преобразованию пространственного знака. Эта процедура проецирует значения предиктора на многомерную сферу В результате все данные находятся на одинаковом расстоянии от центра сферы. С математической точки зрения каждое значение делится на среднеквадратичную норму: Поскольку знаменатель должен отражать расстояние до центра распределения предиктора, важно отцентрировать и масштабировать данные предиктора до преобразования. Обратите внимание: в отсутствие центрирования или масштабирования эта операция с предикторами преобразует их как группу. Удаление переменных- предикторов после применения преобразования пространственного знака может оказаться проблематичным. Основной поток данных Выбросы -6 -4 -2 0 2 4 -1,0 -0,5 0,0 0,5 1,0 о о о о ю о I <э 7 Переменная-предиктор 1 Рис. 3.4. Слева: характерный пример с группой аномальных точек данных. Справа: после преобразования исходных данных выбросы приближаются к основной группировке данных На рис. 3.4 изображен другой набор данных с двумя коррелированными предикторами, не менее восьми точек которого группируются обособленно от большинства других. Вероятно, эти точки образуют действительную, но нетипичную подобласть данных. Необходимо выяснить, почему эти точки отличаются от других; возможно, отображаемые данные представляют интерес, например, применительно к клиентам,
60 Глава 3. Предварительная обработка данных приносящим особенно высокую прибыль. В правой части (рис. 3.4) изображено преобразование пространственного знака, при котором все точки данных проецируются на равном расстоянии от центра. В северо-западной части распределения по-прежнему остаются выбросы, но они «втягиваются» внутрь. В результате сокращается эффект влияния точек на обучение модели. Прореживание данных и выделение признаков Методы прореживания данных — отдельный класс преобразований предикторов. Эти методы сокращают объем данных посредством генерирования меньшего набора предикторов, сохраняющих большую часть информации из исходных переменных. При этом можно использовать меньшее количество переменных, с удовлетворительной точностью отражающих исходные данные. В большинстве методов прореживания данных новые предикторы являются функциями исходных предикторов; таким образом, сохраняется потребность во всех исходных предикторах для создания суррогатных переменных. Подобные методы обычно именуются методами выделения признаков или методами выделения сигнала. Одним из распространенных методов прореживания является метод главных компонент РСА, упоминаемый, в частности, Эбди и Уильямсом (Abdi and Williams, 2010). Этот метод направлен на нахождение линейных комбинаций предикторов, называемых главными компонентами (PC, Principal Components) и фиксирующих максимально возможную дисперсию. Первая главная компонента определяется как линейная комбинация предикторов, отражающая максимально возможный разброс среди всех возможных линейных комбинаций. Далее выводятся последующие главные компоненты, отражающие максимальный остаточный разброс при сохранении корреляции со всеми предшествующими главными компонентами. j-я главная компонента записывается в следующем виде: РС; = (ау1 х Предиктор 1) + (aj2 х Предиктор 2) + ••• + (а-р х Предиктор Р), где Р — количество предикторов. Коэффициенты ajV aJ2,..., ajP называются весами компонентов и помогают понять, какие предикторы наиболее важны для каждой главной компоненты. Чтобы продемонстрировать практическое применение РСА, обратимся к рис. 3.5. Набор содержит подмножество двух коррелированных предикторов средней интенсивности пикселов канала 1, энтропии значений интенсивности в клетке (метрика формы клетки) и категорийный результат. С учетом высокой корреляции между предикторами (0,93) можно заключить, что значения средней интенсивности пикселов и энтропии значений интенсивности содержат избыточную информацию о клетках, а вместо исходных предикторов может использоваться только один из них или их линейная комбинация. В этом примере можно вывести две главные
3.3. Преобразования данных с несколькими предикторами 61 компоненты (правая часть рис. 3.5); преобразование представляет поворот данных по оси с наибольшей дисперсией. Первая главная компонента отражает 97 % исходного разброса, вторая — 3 %. Следовательно, предпочтительнее использовать для моделирования только первую главную компоненту как учитывающую большую часть информации в данных. 2,8 Исходные данные PS WS Преобразованные данные СМ с го X го 2,6 2,4 2,2 2,0 го н X ф X о с 2 -2 2 0 1,3 1,4 1,5 1,6 Канал 1 Ширина волокон -2 0 2 Главная компонента 1 Рис. 3.5. Пример преобразования главных компонент для данных сегментации клеток Главное преимущество метода РСА — в том, что при прореживании данных образуются некоррелированные компоненты. Как упоминалось в этой главе, для некоторых предиктивных моделей желательно, чтобы предикторы были некоррелированными (или, по крайней мере, имели низкую корреляцию), — это необходимо как для поиска оптимальных решений, так и для улучшения числовой стабильности модели. Предварительная обработка РСА позволяет создать новые предикторы с характеристиками, предпочтительными для моделей исследуемого типа. Вместе с тем нужно учитывать, что метод РСА работает с дисперсией набора предикторов без учета применяемых шкал измерения или распределений и целей моделирования (то есть переменной реакции). В результате РСА может сгенерировать компоненты, которые обобщают характеристики данных, не являющиеся релевантными ни для структуры данных, ни для конечной цели моделирования. Метод РСА ориентирован на линейные комбинации предикторов, максимизирующие разброс, и, следовательно, прежде всего будет обобщать предикторы с большей дисперсией. Если масштаб шкалы исходных предикторов отличается на порядки (представьте такие предикторы, как уровень дохода (в долларах) и рост (в футах)), то несколько первых компонент сосредоточатся на обобщении предикторов
62 Глава 3. Предварительная обработка данных с большими значениями (например, дохода), тогда как последующие компоненты будут обобщать предикторы с меньшей дисперсией (например, рост). Таким образом, в нескольких начальных компонентах весовые значения будут выше для предикторов с более высоким разбросом. Кроме того, это означает, что метод PC А будет нацелен на идентификацию структуры данных исходя из масштаба шкалы, без должного учета важных связей между данными в контексте решаемой задачи. Далее обратим внимание на то, что для большинства наборов данных предикторы имеют разный масштаб и асимметричные распределения. Во избежание обобщения различий, обусловленных распределением и значениями масштаба предикторов, предпочтительнее сначала преобразовать смещенные предикторы (см. раздел 3.2), а затем (также до применения РСА) провести центрирование и масштабирование предикторов. Последние позволят РСА выявить скрытые зависимости в данных без влияния исходных масштабов шкалы измерения. Другой недостаток РСА заключается в том, что этот метод не учитывает цель моделирования или переменную реакции при обобщении дисперсии. Поскольку метод РСА не учитывает реакцию, он, по существу, является неконтролируемым (unsupervised). Если прогнозируемая зависимость между предикторами и реакцией не связана с разбросом предикторов, то полученная главная компонента не будет обеспечивать подходящей зависимости с реакцией. В этом случае контролируемый метод, такой как PLS (см. разделы 6.3 и 12.4), позволит получить нужные компоненты с учетом соответствующих реакций. После того как выбраны подходящие преобразования переменных-предикторов, можно переходить к применению РСА. Для наборов данных с большим количеством переменных-предикторов необходимо решить, сколько именно компонентов будет сохранено. Эвристический способ определения количества компонентов основан на создании графика каменистой осыпи, на котором представлено количество упорядоченных компонентов (ось х) и количество обобщаемого разброса (ось у) (рис. 3.6). Для большинства наборов данных несколько первых главных компонент будут обобщать основную часть разброса, а на графике будет наблюдаться резкое снижение; для остальных компонент оно будет замедляться. В общем случае номер компоненты, непосредственно предшествующей этому замедлению, становится максимальным номером сохраняемой компоненты. На рис. 3.6 замедление начинается с компоненты 5. Согласно приведенному ранее эмпирическому правилу, следует оставить четыре главные компоненты. При автоматизированном построении модели оптимальное количество компонент может определяться посредством перекрестной проверки (см. раздел 4.4). Визуальный анализ главных компонент является важнейшим этапом оценки качества данных и формирования интуитивного представления о задаче. Для этого можно отобразить несколько первых главных компонент на графике, окрасив их по соответствующим характеристикам (например, по меткам классов). Если РСА удалось отразить достаточный объем информации в данных, то на таком графике
3.3. Преобразования данных с несколькими предикторами 63 О 20 40 60 80 100 Компонента Рис. 3.6. На графике каменистой осыпи отображается процент общей дисперсии, объясняемый каждой компонентой могут сформироваться кластеры точек данных или выбросы, указывающие на необходимость более глубокого изучения отдельных точек. Для задач классификации на диаграмме РСА может быть отражено потенциальное разделение классов (при наличии последнего). Такой график может выявить исходные ожидания разработчика модели; если степень кластеризации классов невысока, то на графике для значений главных компонент между точками классов будет наблюдаться значительное перекрытие. При нанесении компонент на диаграмму следует учитывать, что по мере того, как компоненты начинают отражать все меньший разброс данных, их масштаб обычно уменьшается. Например, на рис. 3.5 значения компоненты 1 лежат в диапазоне от -3,7 до 3,4, тогда как компонента 2 лежит в диапазоне от -1 до 1,1. Если оси отображаются в разных масштабах, то возникает риск переоценки закономерностей, встречающихся в компонентах с меньшими объемами разброса (о других аналогичных примерах см. Джелади, Мэнли и Лестандер (Geladi, Manley, and Lestander, 2003)). Метод РСА применялся ко всему набору предикторов данных сегментации. Как показано ранее, некоторые предикторы обладают значительной асимметрией. Учитывая, что смещенные предикторы могут повлиять на работу РСА, 44 переменные были преобразованы по описанной ранее процедуре Бокса—Кокса. После преобразований (до применения анализа РСА) предикторы прошли центрирование и масштабирование. На рис. 3.6 показан процент общего разброса данных, отражаемого каждой компонентой. Отметим, что значения уменьшаются с добавлением новых компонент. Первые три компоненты отражали 14 %, 12,6 % и 9,4 % общей дисперсии соответственно. Начиная с пятой компоненты, наблюдается выраженное снижение процентных значений, хотя на первые четыре компоненты приходится всего 42,4 % информации набора данных.
64 Глава 3. Предварительная обработка данных PS WS Матрица точечной диаграммы Рис- 3-7- Первые три главные компоненты данных сегментации клеток, окрашенные в соответствии с типом клеток На рис. 3.7 изображена матрица точечной диаграммы для первых трех главных компонент. Точки окрашены в соответствии с классом (качество сегментации). Так как проценты разброса для первых трех компонент невелики, не следует увлекаться чрезмерной интерпретацией полученного изображения. Из графика видно, что при выводе первой и второй компоненты между классами как будто имеет место некоторое разделение. При этом распределение хорошо сегментированных клеток наблюдается преимущественно внутри распределения неявно идентифицированных клеток. Один из выводов, которые можно сделать в этой связи: типы клеток не удастся легко разделить. Однако это не означает, что другие модели, особенно поддерживающие зависимости с высокой степенью нелинейности, придут к такому же выводу. Хотя в данных присутствуют значения, не вполне соотносящиеся с основным потоком данных, очевидных выбросов нет. Метод РСА применим и для определения взаимосвязи предикторов с той или иной компонентой. Вспомним, что каждая компонента представляет собой линейную комбинацию предикторов, а коэффициент каждого предиктора называется нагрузкой (loading). Нагрузки, близкие к нулевому значению, означают, что
3.3. Преобразования данных с несколькими предикторами 65 переменная-предиктор не оказывает сколь-нибудь существенного влияния на эту компоненту На рис. 3.8 показаны нагрузки для первых трех компонент в данных сегментации клеток. Каждая точка соответствует переменной-предиктору и окрашивается оптическим каналом, использованным в эксперименте. Для первой главной компоненты нагрузки первого канала (связанного с клеточным телом) принимают исключительно высокие значения. Это означает, что характеристики клеточного тела имеют наибольшее влияние для первой главной компоненты и, как следствие, для значений предикторов. Значения большинства нагрузок для третьего канала (оценка актина и тубулина) близки к нулю для первой компоненты. И наоборот, третья главная компонента в основном связана с третьим каналом, тогда как канал клеточного тела играет в этом случае второстепенную роль. Хотя метрики клеточного тела отвечают за больший разброс в данных, это не означает, что рассматриваемые переменные будут связаны с прогнозированием качества сегментации. Канал 1 Канал 3 Канал 2 Канал 4 Матрица точечной диаграммы Рис. 3.8. График нагрузок первых трех главных компонент для данных сегментации клеток, окрашенных в соответствии с оптическим каналом. Канал 1 связан с клеточным телом, канал 2 — с ядром клетки, канал 3 — с актином и канал 4 — с тубулином
66 Глава 3. Предварительная обработка данных 3.4. Отсутствующие значения Во многих случаях у некоторых предикторов отсутствуют значения для заданной точки. Отсутствующие значения могут быть структурно невозможными — например, количество детей, рожденных мужчиной. В других случаях отсутствующее значение не могло быть определено (или не было определено) в момент построения модели. Подчеркнем: важно понимать, почему именно отсутствуют те или иные данные, и в частности то, связана ли закономерность отсутствия данных с результатом. Этот феномен можно обозначить как «информативное отсутствие», имея в виду, что закономерность отсутствия данных сама по себе несет полезную информацию. Информативное отсутствие данных может создавать в модели значительное смещение. Во вводной главе приведен пример с реакцией пациента на лекарственный препарат. Допустим, лекарство оказалось в высшей степени малоэффективным или обладало значительными побочными эффектами. Пациент с большой вероятностью пропустит посещения врача или выйдет из исследования. В этом случае существует очевидная зависимость между вероятностью отсутствия значений и способом лечения. Так, информативное отсутствие данных часто может встречаться в пользовательских оценках; люди с большей вероятностью оценивают продукты, когда имеют твердое мнение о предмете оценки (хорошее или плохое). Это ведет к поляризации данных: в середине шкалы оценок значений относительно мало. Так, в конкурсе машинного обучения Netflix Prize требовалось предсказать, какие фильмы понравятся людям, на основании их предыдущих оценок. Фильм «Napoleon Dynamite Effect» привел в замешательство многих участников: ставивший оценку либо был в восторге от него, либо, напротив, крайне разочарован им. Отсутствующие данные не следует путать с цензурированными данными, то есть данными, точное значение которых отсутствует, но вместе с тем о нем что-то известно. Например, компания, которая выдает напрокат диски по почте, может использовать в своих моделях такой параметр, как продолжительность нахождения диска у клиента. Если клиент еще не вернул фильм, то фактический период проката неизвестен, и в этом случае можно лишь констатировать, что итоговое значение, характеризующее продолжительность проката, не будет меньше текущего. Цензурированные данные также встречаются при использовании лабораторных измерений. Так, некоторые виды анализа не могут выполнять измерения ниже своего порога обнаружения. Соответственно, мы знаем, что интересующее нас значение ниже порогового, но не имеем возможности определить его более точно. Следует ли относиться к цензурированным данным иначе, чем к отсутствующим? При построении традиционных статистических моделей, целью которых является интерпретация или логические выводы, факт цензурирования обычно учитывается формально, для чего делаются предположения о механизме цензурирования. Для предиктивных моделей такие данные чаще рассматриваются именно как отсут-
3.4. Отсутствующие значения 67 ствующие данные, или же цензурированное значение используется как наблюдаемое. Например, когда значение точки данных ниже порога обнаружения, вместо реального значения может использоваться его фактический предел. В подобной ситуации также часто используется случайное число в диапазоне от нуля до порога обнаружения. Как правило, отсутствующие значения чаще связаны с переменными-предикторами, чем с данными. По этой причине отсутствующие данные могут быть сконцентрированы в подмножестве предикторов, не распределяясь случайным образом между всеми ими. Порой процент отсутствующих данных оказывается достаточно значимым, что дает основания для исключения предиктора из последующего моделирования. Иногда отсутствующие значения могут концентрироваться в конкретных выборках. Для больших наборов данных исключение некоторых из них из-за отсутствующих значений допустимо, если предположить, что отсутствие не является информативным. В малых наборах данных исключение отдельных значений может обернуться отрицательными последствиями (см. ниже). Если отсутствующие данные не удаляются, то возможны два основных подхода к их интерпретации. Во-первых, применение некоторых предиктивных моделей, в особенности древовидных методов, предполагает учет отсутствующих данных (см. главу 8). Во-вторых, отсутствующие данные могут быть выведены посредством подстановки (imputation). В этом случае информация из предикторов тренировочного набора используется для фактической оценки других предикторов, образуя подмодель внутри основной предиктивной модели. Подстановка широко освещалась в литературе по статистике в контексте генерирования корректных процедур проверки гипотез при наличии отсутствующих данных. Применительно к предиктивным моделям нас, однако, в первую очередь интересует точность прогнозов, а не правильность заключений. Литературы по применению подстановки для предиктивных моделей не так много. Саар-Цечански и Провост (Saar-Tsechansky and Provost, 2007b) анализируют вопрос отсутствующих значений и то, как конкретные модели справляются с этой проблемой. Джерез (Jerez et al., 2010) рассматривает разнообразные методы подстановки для конкретного набора данных. Напомним, что подстановка представляет собой еще один уровень моделирования при попытке оценивать значения переменных-предикторов на основании других предикторов. Наиболее релевантный способ достижения этой цели заключается в использовании тренировочного набора для построения модели подстановки для каждого предиктора в наборе данных. До использования тренировочного набора или прогнозирования новых точек данных отсутствующие значения заполняются посредством подстановки. Обратите внимание: дополнительный уровень модели
68 Глава 3. Предварительная обработка данных добавляет неопределенности. Если вы используете повторную выборку для значений параметров настройки или для оценки эффективности, то подстановка должна быть встроена в повторную выборку. Вычислительное время для построения моделей при этом увеличится, но одновременно возрастет и объективность оценки эффективности модели. Если количество предикторов, на которые влияют отсутствующие значения, невелико, можно прибегнуть к анализу связей между предикторами. Например, визуализация или такие методы, как РСА, могут использоваться для выявления выраженных связей между предикторами. Если переменная с отсутствующими значениями обладает высокой корреляцией с другим предиктором, имеющим незначительное количество отсутствующих значений, то более эффективной зачастую оказывается специализированная модель (см. ниже). Одним из распространенных методов подстановки является метод KNN. Новая точка данных вычисляется поиском в тренировочном наборе сходных точек данных и усреднением значений ближайших точек для вычисления значения. К примеру, Троянская (Troyanskaya et al., 2001) анализирует этот метод для данных высокой размерности с малым размером выборки. Одно из его преимуществ — в том, что подстановочные данные ограничиваются диапазоном значений тренировочного набора. К недостаткам метода можно отнести то, что для вычисления очередного отсутствующего значения требуется задействовать весь тренировочный набор. Кроме того, количество сходных точек данных является параметром настройки, как и метод определения «близости» двух точек. В упоминаемом исследовании отмечено, что метод ближайших соседей достаточно устойчив как к параметрам настройки, так и к объему отсутствующих данных. В разделе 3.2 предиктор, оценивающий периметр клетки, использовался для демонстрации асимметрии (см. рис. 3.3). Для этого применена модель с пятью сходными точками данных, использующая значения из тренировочного набора. В последнем отсутствующие значения были случайным образом введены в 50 имеющихся в составе набора значений периметра клетки, а затем сгенерированы с использованием модели. На рис. 3.9 изображена точечная диаграмма исключенных данных. Слева показаны результаты применения метода на основе модели с пятью сходными точками данных. Модель подстановки удовлетворительно прогнозирует отсутствующие данные — корреляция между реальными и подставленными значениями составляет 0,91. Отметим, что для подстановки периметра клетки применим и более простой метод. Длина клеточного волокна — другой предиктор, связанный с размером клетки, — обладает очень высокой (0,99) корреляцией с данными периметра клетки. Для прогнозирования отсутствующих значений можно воспользоваться моделью линейной регрессии (см. правую часть рис. 3.9). Для этого метода корреляция между реальными и сгенерированными значениями составляет 0,85.
3.5. Удаление предикторов 69 -1,0 -0,5 0,0 0,5 1,0 1,5 1,5 2 1,0 ш X g 0,5 5 о С 0,0 -0,5 -1,0 -1,0 -0,5 0,0 0,5 1,0 1,5 Исходное значение (после центрирования и масштабирования) Рис. 3.9. После имитации отсутствия 50 случайно выбранных значений тестового набора были построены две разные модели подстановки с тренировочным набором. Эти модели были применены к отсутствующим значениям тестового набора. На диаграмме показаны значения после центрирования и масштабирования до и после подстановки 3.5. Удаление предикторов Удаление предикторов до начала моделирования несет в себе ряд потенциальных преимуществ. Во-первых, сокращение количества предикторов позволяет снизить и затраты времени, и сложность вычислений. Во-вторых, если между двумя предикторами существует высокая корреляция, то это позволяет рассматривать их как несущие сходную базовую информацию. Значит, удаление одного из них не должно повлиять на эффективность модели, более того, оно может привести к созданию более простой и интерпретируемой модели. В-третьих, применение предикторов с вырожденными распределениями может нарушить работоспособность некоторых моделей. В подобных случаях заблаговременное устранение проблемных переменных может обеспечить значительное улучшение эффективности и/или стабильности модели. Возьмем переменную-предиктор с одним уникальным значением, известную нам также как предиктор с нулевой дисперсией. У некоторых моделей такая неинформативная переменная практически не оказывает влияния на вычисления. Древовидная модель (см. разделы 8.1 и 14.1) устойчива к предикторам этого типа, поскольку предикторы никогда не будут использоваться в разделении. Но в таких моделях, как линейная регрессия, эти данные наверняка вызовут ошибку в вычислениях. По-
70 Глава 3. Предварительная обработка данных скольку эти данные не содержат существенной информации, ими можно пренебречь. Аналогичным образом некоторые предикторы могут иметь небольшой набор значений, встречающихся крайне редко. Предикторы «с дисперсией, близкой к нулю» могут иметь одно и то же значение для подавляющего большинства точек данных. Возьмем приложение для интеллектуального анализа текстов, в котором набор ключевых слов собирается для большого набора документов. После фильтрации часто используемых игнорируемых слов (таких, как the или of) можно создать переменные-предикторы для выявления ключевых слов, интересующих исследователей. Допустим, ключевое слово встречается в небольшой группе документов, но в других не используется вовсе. В 531 исследованном документе (табл. 3.1) было обнаружено всего четыре редких слова. Таблица 3.1. Предиктор, описывающий количество документов, в которых встречается ключевое слово Количество документов Ключевых слов: 0 523 Ключевых слов: 2 6 Ключевых слов: 3 1 Ключевых слов: 6 1 В абсолютном большинстве документов (523) ключевое слово отсутствовало; в шести документах было обнаружено по два таких слова, в одном документе — три и еще в одном — шесть. Поскольку 98 % данных имеет нулевое значение, влияние столь малого числа документов на моделирование может быть неоправданно высоким. Кроме того, при проведении повторной выборки (см. раздел 4.4) существует высокая вероятность того, что один из наборов данных повторной выборки будет содержать только документы без ключевого слова, в связи с чем предиктор будет иметь всего одно уникальное значение. Как пользователь может диагностировать данные такого рода? Во-первых, количество уникальных точек в совокупности данных должно быть относительно мало. Так, в рассмотренном выше примере доля уникальных значений составила всего 0,8 %. Малый процент уникальных значений сам по себе не является причиной для беспокойства, так как многие «фиктивные переменные» (см. раздел 3.6), сгенерированные по категорийным предикторам, подходят под это описание. Проблема возникает при серьезной диспропорции частот уникальных значений. Отношение самой типичной частоты к следующей из них отражает дисбаланс частот. В большинстве документов набора данных (п = 523) ключевое слово отсутствует. Второй по распространенности случай — документы, в которых ключевые слова встречаются дважды (п = 6). Отношение этих частот (523/6 = 87) указывает на явный дисбаланс.
3.5. Удаление предикторов 71 Эмпирические правила для обнаружения предикторов с дисперсией, близкой к нулевой, можно сформулировать следующим образом. О Доля уникальных значений по размеру выборки низка (допустим, 10 %). О Отношение частоты самого распространенного значения к частоте второго по распространенности заметно выше (допустим, около 20 %). При наличии в модели предиктора, соответствующего вышеназванным критериям, представляется правильным скорее отказаться от его использования для целей моделирования. Корреляции между предикторами Коллинеарность — термин, применяемый для обозначения ситуации, в которой пара переменных-предикторов обладает значительной взаимной корреляцией. Возможны связи и между большим количеством предикторов (подобное явление принято именовать мультиколлинеарностью). Например, данные сегментации клеток содержат ряд предикторов, отражающих размер клетки: значения периметра клетки, ее ширины и длины и др. Одновременно существуют и признаки, оценивающие морфологию клетки, — допустим, ее жесткость. На рис. 3.10 изображена корреляционная матрица тренировочного набора. Каждая парная корреляция вычисляется по тренировочным данным и окрашивается в соответствии с ее величиной. Визуализация симметрична: верхние и нижние диагонали представляют идентичную информацию. Темно-синие цвета обозначают сильную положительную корреляцию, темно-красный цвет — сильные отрицательные корреляции, белый цвет — отсутствие эмпирических связей между предикторами. На схеме переменные-предикторы сгруппированы посредством метода кластеризации по Эверитту (Everitt et al., 2011) с тем, чтобы коллинеарные группы предикторов находились по соседству друг от друга. При рассмотрении вдоль диагонали заметны блоки сильных положительных корреляций, указывающие на существование «кластеров» коллинеарности. Вблизи центра диагонали расположен большой блок предикторов из первого канала, относящихся к размеру клетки (например, ее ширине и длине). Если набор данных содержит слишком много предикторов для визуального анализа, то для описания масштабности проблемы могут использоваться такие методы, как РСА. Например, если первая главная компонента покрывает большой процент дисперсии, то это означает, что существует по крайней мере одна группа предикторов с однородной информацией. Например, из рис. 3.6 следует, что первые три- четыре компоненты вносят взаимосвязанный вклад в общую дисперсию, то есть между предикторами существуют хотя бы три-четыре значимые связи. Для того
72 Глава 3. Предварительная обработка данных 1 о.в 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 Рис. 3.10. Визуализация корреляционной матрицы сегментации клеток. Порядок переменных основан на алгоритме кластеризации чтобы понять, какие предикторы связываются с каждой компонентой, также применим метод РСА. В классическом регрессионном анализе существуют средства выявления мультиколлинеарности для линейной регрессии. Поскольку коллинеарные предикторы могут влиять на дисперсию оценок параметров в модели, для выявления последних можно воспользоваться статистикой — тем ее инструментом, который, по Майерсу (Myers, 1994), обозначается как фактор, увеличивающий дисперсию (VIF, Variance Inflation Factor). За пределами линейной регрессии этот метод может быть трудноприменим, поскольку разрабатывался для линейных моделей, количество точек данных в которых должно быть больше количества переменных-предикторов, без возможности выявления предикторов, подлежащих удалению.
3.6. Добавление предикторов 73 Иной, более эвристический подход к решению проблем такого рода сводится к удалению минимального количества предикторов, исходя из того, что все парные корреляции лежат ниже определенного порога. Хотя этот метод позволяет выявлять коллинеарности только в двух измерениях, он может способствовать повышению эффективности некоторых моделей. Приведем алгоритм реализации метода. 1. Вычислить корреляционную матрицу предикторов. 2. Найти два предиктора, связанных наибольшей абсолютной парной корреляцией (предикторы А и В). 3. Определить среднюю корреляцию между А и другими переменными. Сделать то же для предиктора В. 4. Если предиктор А обладает большей средней корреляцией, удалить его; в противном случае — удалить предиктор В. 5. Повторять действия, описанные в пунктах 2-4, до тех пор, пока остаются абсолютные корреляции, превышающие заданный порог. Идея заключается в том, чтобы сначала удалялись предикторы, обладающие наибольшим количеством корреляционных связей. Предположим, требуется модель, особенно чувствительная к корреляциям между предикторами — с порогом, близким 0,75. Для достижения парных корреляций менее 0,75 предстоит удалить минимальное количество предикторов. В частности, для данных сегментации рассматриваемый алгоритм предложит удалить 43 предиктора. Методы выделения признаков (например, метод главных компонент) могут использоваться и для устранения эффекта сильных корреляций между предикторами. Однако эти методы усложняют связи между предикторами и результатом. Кроме того, поскольку методы выделения сигнала обычно являются неконтролируемыми, нет гарантий того, что полученные суррогатные предикторы будут более или менее тесно связаны с результатом. 3.6. Добавление предикторов Если предиктор является категорийным (например, пол или национальность), он часто раскладывается на набор более конкретных переменных. Например, в данных оценки кредитоспособности (см. раздел 4.5) присутствует предиктор, основанный на количестве денег, хранящихся на сберегательном счете претендента. Эти данные были закодированы в виде нескольких групп, включая группу «неизвестно». В табл. 3.2 приведены значения этого предиктора и количество претендентов, относящихся к каждой группе.
74 Глава 3. Предварительная обработка данных Таблица 3.2. Категорийный предиктор с пятью группами из данных оценки кредитоспособности. Значения описывают сумму на сберегательном счету (в марках ФРГ (DM)) Значение n Фиктивные переменные < 100 100-500 500-1000 > 1000 Неизвестно < 100 DM 103 1 0 0 0 0 100-500 DM 603 0 1 0 0 0 500-1000 DM 48 0 0 1 0 0 > 1000 DM 63 0 0 0 1 0 Неизвестно 183 0 0 0 0 1 Для использования данных в моделях категории перекодируются в меньшие фрагменты информации — так называемые фиктивные переменные. Обычно каждой категории соответствует определенная фиктивная переменная — своего рода индикатор «0/1» для этой группы. В табл. 3.2 приведены возможные фиктивные переменные. Отметим, что в рассматриваемом примере достаточно четырех фиктивных переменных, на основе которых возможно определить следующую. Однако решение о включении всех фиктивных переменных может зависеть от выбора модели. Модели, включающие свободный член, например простая линейная регрессия (раздел 6.2), столкнутся с вычислительными проблемами при включении в них всех наличествующих фиктивных переменных, поскольку для каждой точки данных эти переменные будут накапливаться, сообщая модели ту же информацию, что и свободный член. Если же модель нечувствительна к подобным проблемам, то использование полного набора фиктивных переменных поможет усовершенствовать интерпретацию. Многие модели, описанные в этой книге, автоматически генерируют сложные нелинейные связи между предикторами и результатом. Многие упрощенные модели, наоборот, не позволяют этого сделать, кроме случаев, когда пользователь «в ручном режиме» определяет, какие именно предикторы (и в какой мере) должны быть нелинейными. Например, логистическая регрессия представляет собой хорошо известную модель классификации, по умолчанию генерирующую границы линейной классификации. На рис. 3.11 представлен характерный пример с двумя предикторами и двумя классами. Слева обозначены границы базовой логистической регрессии при добавлении предикторов обычным (линейным) способом, справа — логистическая модель с базовыми линейными членами и дополнительным членом, содержащим квадрат предиктора В. Поскольку логистическая регрессия представляет собой
3.7. Группировка предикторов 75 Класс 1 Класс 2 -10 12 3 2 □о Q. С -2 -10 12 3 Предиктор А Рис. 3.11. Границы классификации двух моделей линейной регрессии. На левой диаграмме используются только линейные члены для двух предикторов, тогда как на правой диаграмме добавляется дополнительный квадратичный член для предиктора В. Эта модель более подробно рассматривается в главе 12 хорошо изученную и стабильную модель, ее использование с несколькими дополнительными нелинейными членами может оказаться предпочтительнее методов с применением сложного обучения. В работе Форины (Forina et al., 2009) продемонстрирован, кроме того, прием расширения предиктивных данных с добавлением сложных комбинаций данных. Для моделей классификации они вычисляют «центроиды классов», то есть центры данных предикторов по каждому классу. Затем для каждого предиктора вычисляется расстояние до каждого центроида класса; вычисленные значения могут добавляться в модель. 3.7. Группировка предикторов Существуют как предпочтительные методы предварительной обработки данных, так и методы, которых следует избегать. Один из распространенных методов упрощения набора данных заключается в предварительном разделении числового предиктора по двум и более группам. Например, в работе Боуна (Bone et al., 1992) определяется набор клинических симптомов для диагностики синдрома системной воспалительной реакции (ССВР). ССВР может развиваться после получения
76 Глава 3. Предварительная обработка данных человеком физической травмы (например, вследствие автомобильной аварии). Упрощенная версия клинических критериев ССВР включает следующие признаки: О температура — менее 36 °C или выше 38 °C; О частота сердечных сокращений (ЧСС) — выше 90 ударов в минуту; О частота дыхания — более 20 раз в минуту; О уровень лейкоцитов в крови — ниже 4000 на мм3 или выше 12 000 на мм3. Если у пациента наблюдаются два и более из этих критериев, то, следовательно, у него можно диагностировать ССВР. Такой подход как будто обладает рядом очевидных преимуществ. О Его применение позволяет формулировать либо простое правило для принятия решений (как в примере с ССВР), либо предположения, что у модели существует простая интерпретация. О При этом разработчику модели не обязательно обладать данными, отражающими точную взаимосвязь между предикторами и результатом. О Представляется достижимым и получение более высокой доли ответов на вопросы анкет (с ограниченной вариативностью ответов) — например, на вопрос о дате последней прививки от столбняка ответов будет меньше, чем на вопрос с указанием диапазона (последние 2 года, последние 4 года и т. д.). Но группировка непрерывных данных «в ручном режиме» порождает и множество проблем. Во-первых, она может привести к существенной потере эффективности модели. Многие методы моделирования, описанные в этой книге, вполне подходят для выявления сложных связей между предикторами и результатами. Ручная группировка предикторов явно ограничивает этот потенциал. Во-вторых, при прогнозировании с распределением предикторов по категориям неизбежна потеря точности. Например, при группировке двух предикторов в наборе данных возможны всего четыре комбинации и, как следствие, только простые прогнозы. В-третьих, исследования, выполненные Остином и Брюннером (Austin and Brunner, 2004), показали, что разделение предикторов по категориям может привести к неоправданно высокой доле ложных ожиданий (то есть шумовые предикторы определяются как информативные). К сожалению, самые мощные предиктивные модели обычно оставляют наименьшие возможности для интерпретации. Кажущееся улучшение интерпретируемости, обеспечиваемое ручным делением на категории, обычно оборачивается значительной потерей эффективности. Для предиктивных моделей потеря эффективности нежелательна. Более того, в некоторых случаях произвольное деление предикторов на категории может оказаться и неэтичным. Например, в области прогнозирования аспектов заболевания (реакции на терапию, массовые обследования) ведутся масштабные исследования. Если для принятия столь важных решений используется
3.8. Вычисления 77 медицинская диагностика, то пациенты желают получить самые точные прогнозы из всех возможных. Но учитывая, что сложные модели проходят необходимую проверку, было бы нелогично использовать модель, построенную для интерпретации, а не для достижения наивысшей эффективности прогнозирования. Последний аргумент относится к ручному делению предикторов на категории до построения модели. Существуют, впрочем, модели (например, деревья классифи- кации/регрессии и многомерные адаптивные регрессионные сплайны), вычисляющие пороговые точки в процессе построения модели. Различие между этими методологиями и ручной группировкой прежде всего в том, что модели используют для формирования групп все предикторы, нацеленные, например, на достижение максимальной точности. Они одновременно оценивают большое количество переменных и обычно базируются на статистически обоснованных методологиях. 3.8. Вычисления В этом разделе используются данные из пакета AppliedPredictiveModeling и функции из пакетов caret, corrplot, е1071 и lattice. Соответствующий код R можно найти: О во-первых, в каталоге chapters пакета AppliedPredictiveModeling — там хранится код, воспроизводящий конкретные модели, рассмотренные в этой главе. Тем самым читателю предоставляется возможность увидеть, как именно создавались модели; О во-вторых, многие последующие главы завершаются подробными описаниями того, как подобные вычисления могут в принципе выполняться в R. Например, существуют отдельные функции для методов предварительной обработки данных, продемонстрированных в этой главе. Хотя их подробности приводятся в завершающем разделе, на практике те или иные функции могут и не использоваться напрямую. Например, при использовании функции train операции предварительной обработки задаются в одном аргументе, тогда как отдельные функции не используются вовсе. В этих разделах упоминаются модели, создаваемые в каждой главе, но в основном в контексте обсуждения функций. Вот почему в разделах «Вычисления» каждой главы объясняются общие принципы выполнения вычислений, а код в каталоге chapters пакета AppliedPredictiveModeling является лучшим для вычислений конкретных моделей этой главы. Есть (см. приложение Б) несколько полезных функций R, пригодных для поиска существующих функций и классов и потому представляющих очевидный интерес для читателей. Функция apropos ищет заданный критерий во всех загруженных пакетах R. Например, чтобы найти функции для создания матрицы несоответствий в загруженных пакетах, используйте команду:
78 Глава 3. Предварительная обработка данных > apropos ( "confusion") [1] "confusionMatrix" "confusionMatrix.train" Для поиска функции в любом пакете может использоваться функция RSiteSearch. Команда > RSiteSearchf"confusion", restrict = "functions") проведет поиск в интернете и откроет результаты в браузере. Необработанный набор данных сегментации содержится в пакете AppliedPredictiveModeling1. Чтобы загрузить этот набор данных в R, используйте команды: > Library(АррLiedPredictiveModeLing) > data(segmentationOriginaL) В них присутствуют поля, идентифицирующие каждую клетку (Cell), и факторный вектор, указывающий, какие клетки были хорошо сегментированы (Class). Переменная Case позволяет определить, какие именно клетки изначально использовались в тренировочном и тестовом наборах. В этой главе центральное место занимают примеры тренировочного набора, поэтому и данные отфильтрованы для названных клеток: > segData <- subset(segmentationOriginaL, Case = "Train") Поля Class и Cell сохраняются в отдельных векторах, а затем удаляются из основного объекта: > ceLLID <- segData$CeLL > с Lass <- segDatafCLass > case <- segData$Case > # Теперь столбцы удаляются > segData <- segData[, -(1:3)] Исходные данные содержали несколько столбцов со «статусными» данными, представляющими собой бинарные версии предикторов. Чтобы исключить их, находим столбцы, имена которых содержат слово «Status», после чего удаляем их: > statusCoLNum <- grep ("Status", names(segData)) > statusCoLNum [1] 2 4 9 10 11 12 14 16 20 21 22 26 27 28 30 32 34 [18] 36 38 40 43 44 46 48 51 52 55 56 59 60 63 64 68 69 [35] 70 72 73 74 76 78 80 82 84 86 88 92 93 94 97 98 103 [52] 104 105 106 110 111 112 114 segData < - segData[, -statusCoLNum] 1 Версия этих данных, прошедшая предварительную обработку, также находится в пакете caret и используется в последующих главах.
3.8. Вычисления 79 Преобразования Как отмечалось, некоторые признаки характеризуются значительной асимметрией. Функция skewness в пакете е1071 позволяет вычислить статистику асимметрии для каждого предиктора: > Library(el071) > # For one predictor: > skewness(segData$AngLeChl) [1] -0.0243 > # Так как все предикторы являются числовыми столбцами, функция appLy > # может использоваться для вычисления асимметрии между столбцами. > skewVaLues <- appLy(segData, 2, skewness) > head(skewVaLues) AngleChl AreaChl AvglntenChl AvgIntenCh2 AvgIntenCh3 AvgIntenCh4 -0.0243 3.5251 2.9592 0.8482 2.2023 1.9005 Используя значения в качестве основы, назначим приоритеты переменных для визуализации распределения. Для оценки формы распределения воспользуемся базовой функцией R hist или функцией histogram из lattice. Для определения используемого типа преобразования в пакете MASS есть функция Ьохсох. Хотя эта функция вычисляет оценку X, она не создает преобразованную переменную (или переменные). Функция BoxCoxTrans из caret может найти подходящее преобразование и применить его к новым данным: > Library(caret) > ChlAreaTrans <- BoxCoxTrans(segDatafAreaChl) > ChlAreaTrans Box-Cox Transformation 1009 data points used to estimate Lambda Input data summary: Min. 1st Qu. Median Mean 3rd Qu. Max. 150 194 256 325 376 2190 Largest/Smallest: 14.6 Sample Skewness: 3.53 Estimated Lambda: -0.9 > # Исходные данные > head(segData$AreaChl) [1] 819 431 298 256 258 358 > # После преобразования > predict(ChlAreaTrans, head(segData$AreaChl)) [1] 1.1085 1.1064 1.1045 1.1036 1.1036 1.1055 > (819Л(-.9) - l)/(-.9) [1] 1.1085
80 Глава 3. Предварительная обработка данных Другая функция caret — preProcess — применяет преобразование к набору предикторов (см. ниже). Базовая функция R prcomp может использоваться для выполнения РСА. В следующем коде до выполнения РСА к данным было применено центрирование и масштабирование: > pcaObject <- prcomp(segData, + center = TRUE, scaLe. = TRUE) > # Вычисление накапливаемого процента дисперсии, ># за который отвечает каждая компонента. > percentVariance <- pcaObject$sdA2/sum(pcaObject$sdA2)*100 > percentVariance[l:3] [1] 20.9 17.0 11.9 Преобразованные значения сохраняются в pcaObject в виде подобъекта с именем х: > head(pcaObject$x[, 1:5]) РС1 РС2 РСЗ РС4 РС5 2 5.099 4.551 -0.0335 -2.64 1.278 3 -0.255 1.198 -1.0206 -3.73 0.999 4 1.293 -1.864 -1.2511 -2.41 -1.491 12 -1.465 -1.566 0.4696 -3.39 -0.330 15 -0.876 -1.279 -1.3379 -3.52 0.394 16 -0.862 -0.329 -0.1555 -2.21 1.473 Другой подобъект с именем rotation содержит нагрузки; строки соответствуют переменным-предикторам, столбцы связаны с компонентами: > head(pcaObject$rotation[, 1:3]) PCI РС2 РСЗ AngleChl 0.00121 -0.0128 0.00682 AreaChl 0.22917 0.1606 0.08981 AvglntenChl -0.10271 0.1797 0.06770 AvgIntenCh2 -0.15483 0.1638 0.07353 AvgIntenCh3 -0.05804 0.1120 -0.18547 AvgIntenCh4 -0.11734 0.2104 -0.10506 Класс spatialSign из пакета caret содержит функциональность преобразования пространственного знака. Хотя это преобразование не применяется к данным, базовый синтаксис имеет вид spatialSign (segData). В представленных данных нет отсутствующих значений для подстановки — для выполнения последней в пакете impute имеется функция impute.knn, использующая KNN для оценки отсутствующих данных. Упоминавшаяся ранее функция preProcess применяет методы подстановки на основании KNN или бэггинга деревьев. Для серий преобразований к нескольким наборам данных возможно применение средств преобразования, центрирования, масштабирования или подстановки значений, средств преобразования пространственного знака и выделения признаков
3.8. Вычисления 81 в составе функции preProcess из пакета caret, вычисляющей все необходимые значения. После вызова функции preProcess метод predict применяет результаты к набору данных. Например, чтобы выполнить преобразование Бокса—Кокса, отцентрировать и масштабировать данные, а затем провести РСА для выделения сигнала, применим синтаксис: > trans <- preProcess(segData, + method = с("ВохСох", "center”, "scaLe", "pea")) > trans Call: preProcess.default(x = segData, method = c("BoxCox", "center”, "scale”, "pea”)) Created from 1009 samples and 58 variables Pre-processing: Box-Cox transformation, centered, scaled, principal component signal extraction Lambda estimates for Box-Cox transformation: Min. 1st Qu. Median Mean 3rd Qu. Max. NA's -2.00 -0.50 -0.10 0.05 0.30 2.00 11 PCA needed 19 components to capture 95 percent of the variance > # Применение преобразований: > transformed <- predict(trans, segData) > # Эти значения отличаются от предыдущих компонент РСА, > # потому что до применения РСА они были преобразованы. > head(transformed[, 1:5]) PCI РС2 РСЗ РС4 РС5 2 1.568 6.291 -0.333 -3.06 -1.342 3 -0.666 2.046 -1.442 -4.70 -1.742 4 3.750 -0.392 -0.669 -4.02 1.793 12 0.377 -2.190 1.438 -5.33 -0.407 15 1.064 -1.465 -0.990 -5.63 -0.865 16 -0.380 0.217 0.439 -2.07 -1.936 Здесь, как видим, применялись центрирование, масштабирование, подстановка, выделение признаков, а после них — пространственный знак. У многих функций моделирования предусмотрена возможность центрирования и масштабирования перед моделированием. Например, при использовании функции train (рассматриваемой в следующих главах) возможно применение preProcess перед моделированием в итерациях повторной выборки. Фильтрация Чтобы отфильтровать предикторы с дисперсией, близкой к нулевой, функция nearZeroVar из пакета caret возвращает номера столбцов любых предикторов, для
82 Глава 3. Предварительная обработка данных которых выполняются условия из раздела 3.5. Для данных сегментации клеток проблемные предикторы отсутствуют: > nearZeroVar(segData) integer(0) > # При удалении предикторов возвращается вектор целых чисел, > # показывающий, какие столбцы должны быть удалены. Аналогичным образом для выполнения фильтрации по корреляции между предикторами функция сот вычисляет корреляции между переменными-предикторами: > correLotions <- cor(segData) > dim(correLotions) [1] 58 58 > correLations[l:4, 1:4] AngleChl AreaChl AvglntenChl AvgIntenCh2 AngleChl 1.00000 -0.00263 -0.0430 -0.0194 AreaChl -0.00263 1.00000 -0.0253 -0.1533 AvglntenChl -0.04301 -0.02530 1.0000 0.5252 AvgIntenCh2 -0.01945 -0.15330 0.5252 1.0000 Для изучения корреляционной структуры данных в пакете corrplot имеется одноименная функция, поддерживающая большое число управляющих параметров и позволяющая переупорядочивать переменные для выявления кластеров предикторов с высокой корреляцией. Для формирования изображения (см. рис. 3.10) использована команда: > Librory(corrpLot) > corrpLot(correLations, order = "hcLust") Размер и цвет точек отражают степень корреляции между двумя переменными- предикторами. Чтобы выполнить фильтрацию на основании корреляций, функция f indCorrelation применяет алгоритм из раздела 3.5. Для заданного порога парных корреляций функция возвращает номера столбцов для предикторов, рекомендованных к удалению: > highCorr <- findCorreLation(correLotions, cutoff = ,75) > Length(highCorr) [1] 33 > head(highCorr) [1] 23 40 43 36 7 15 > fiLteredSegData <- segData[, -highCorr] Пакет subselect также содержит несколько функций аналогичного назначения.
3.8. Вычисления 83 Создание фиктивных переменных Существуют несколько методов создания фиктивных переменных на базе конкрет- ной модели. В разделе 4.9 рассматриваются различные методы определения передачи предикторов модели. Один из методов — метод формул — допускает большую гибкость при создании функции модели. Применение формул в функциях модели параметризирует предикторы так, что не во всех категориях будут присутствовать фиктивные переменные. Этот подход будет более подробно описан для линейной регрессии. В некоторых случаях полный набор фиктивных переменных может оказаться полезен. Например, разделение в древовидной модели лучше интерпретируется тогда, когда фиктивные переменные кодируют всю информацию для соответствующего предиктора. Рекомендуем использовать полный набор фиктивных переменных при работе с древовидными моделями. Чтобы продемонстрировать работу кода, используем подмножество набора данных cars в пакете caret, относящихся ко вторичным продажам 804 машин GM за 2005 год по Kelly Blue Book (Kuiper, 2008). Цель модели — прогнозирование цены автомобилей на основании известных характеристик. При рассмотрении работы кода ограничимся тремя характеристиками: ценой, пробегом и типом автомобиля (например, седан) для подмножества машин: > head(carSubset) Type Price Mileage 214 19981 24323 sedan 299 21757 1853 sedan 460 15047 12305 sedan 728 15327 4318 sedan 162 20628 20770 sedan 718 16714 26328 sedan > LeveLs(carSubset$Type) [1] "convertible” "coupe" "hatchback" "sedan" "wagon" Чтобы смоделировать цену как функцию, отражающую пробег и тип машины, воспользуемся функцией dummyVars для определения кодировок предикторов. Допустим, что моделирование цены в первой модели выполняется как простая аддитивная функция пробега и типа машины: > simpLeMod <- dummyVars(^MiLeage * Type, + data = carSubset, + ## Убрать имя переменной + ## из имени столбца + LeveLsOnLy = TRUE) > simpLeMod Dummy Variable Object
84 Глава 3. Предварительная обработка данных Formula: ^Mileage + Type 2 variables, 1 factors Factor variable names will be removed Чтобы продемонстрировать использование фиктивных переменных для тренировочного набора или любых новых точек данных, воспользуемся методом predict в сочетании с объектом dummyVars: > predict(simpLeMod, head(carSubset)) Mileage convertible coupe hatchback sedan wagon 214 24323 0 0 0 1 0 299 1853 0 0 0 1 0 460 12305 0 0 0 1 0 728 4318 0 0 0 1 0 162 20770 0 0 0 1 0 718 26328 0 0 0 1 0 Поле type развернуто в пять переменных для пяти уровней. Простая модель предполагает, что эффект пробега остается постоянным для всех типов автомобилей. В более сложной модели учитывается совместный эффект пробега и типа машины (эффект взаимодействия (interaction)). В формуле модели двоеточие между факторами означает, что взаимодействие для них должно быть сгенерировано. Для имеющихся данных в кадр данных добавляются пять предикторов: > withlnteraction <- dummyVars(~MiLeage + Type + MiLeage:Type, + data = carSubset, + LeveLsOnLy = TRUE) > withlnteraction Dummy Variable Object Formula: ^Mileage + Type + Mileage:Type 2 variables, 1 factors Factor variable names will be removed > predict(withlnteraction, head(carSubset)) Mileage convertible coupe hatchback sedan wagon Mileage:convertible 214 24323 0 0 0 1 0 0 299 1853 0 0 0 1 0 0 460 12305 0 0 0 1 0 0 728 4318 0 0 0 1 0 0 162 20770 0 0 0 1 0 0 718 26328 0 0 0 1 0 0 Mileage:coupe Mileage:hatchback Mileage:sedan Mileage:wagon 214 0 0 24323 0 299 0 0 1853 0 460 0 0 12305 0 728 0 0 4318 0 162 0 0 20770 0 718 0 0 26328 0
Упражнения 85 Упражнения 3.1. Репозиторий UC Irvine Machine Learning Repository1 содержит набор данных, относящихся к идентификации 214 образцов стекла в соответствии с одной из семи категорий. Для них определены девять предикторов: рефракционный индекс и процентное содержание восьми химических элементов (Na, Mg, Al, Si, К, Ca, Ba и Fe). Доступ к данным выполняется следующим образом: > Library(mLbench) > data(GLass) > str(GLass) ’data.fr ame*: 214 L obs. of 10 variables: $ RI : num 1.52 1.52 1.52 1.52 1.52 ... $ Na : num 13.6 13.9 13.5 13.2 13.3 ... $ Mg : num 4.49 3.6 3 ».55 3.69 3.62 3.61 3.6 3.61 3.58 3.6 ... $ Al : num 1.1 1.36 1 ..54 1.29 1.24 1.62 1.14 1.05 1.37 1.36 ... $ Si : num 71.8 72.7 73 72.6 73.1 ... $ К : num 0.06 0.48 0.39 0.57 0.55 0.64 0.58 0.57 0.56 0.57 .. $ Ca : num 8.75 7.83 7.78 8.22 8.07 8.07 8.17 8.24 8.3 8.4 ... $ Ba : num 0 0 0 0 0 00000... $ Fe : num 0 0 0 0 0 0.26 000 0.11 ... $ Type: Factor w/ 6 levels "I","2"/’3","5”,..: 1 1 1 1 1 1 1 111 A. Используя средства визуализации, проанализируйте переменные-предикторы, чтобы понять характер их распределения, а также связи между предикторами. Б. Есть ли в данных выбросы? Наблюдается ли асимметрия в каких-либо предикторах? B. Существуют ли релевантные преобразования одного или нескольких предикторов, позволяющих улучшить модель классификации? 3.2. В репозитории UC Irvine Machine Learning Repository также хранится информация о соевых бобах. Были собраны данные для прогнозирования заболеваемости 683 видов соевых бобов. 35 предикторов являются преимущественно категорийными и включают информацию об условиях окружающей среды (например, температура и уровень осадков) и состоянии растения (рост плесени, бляшки). Результат состоит из 19 разных классов. Данные могут быть загружены следующим образом: > Library(mLbench) > data(Soybean) > ## Подробности см. 6 ?Soybean 1 http://archive.ics.ud.edu/ml/index.html.
86 Глава 3. Предварительная обработка данных A. Исследуйте распределение частот категорийных предикторов. Являются ли какие-либо из распределений вырожденными, как было рассмотрено ранее в этой главе? Б. Приблизительно 18 % данных отсутствуют. Есть ли предикторы, которые будут отсутствовать с большей вероятностью? Связана ли закономерность отсутствия данных с классами? B. Разработайте стратегию для решения проблемы отсутствующих данных — либо посредством исключения предикторов, либо посредством подстановки. 3.3, В модели количественного соотношения «структура-активность» (QSAR, Quantitative Structure-Activity Relationship, глава 5) характеристики химического вещества используются для прогнозирования других химических свойств. Пакет caret содержит набор данных QSAR от Менте и Ломбардо (Mente and Lombardo, 2005), в котором экспериментально определена способность 208 веществ к преодолению гемато-энцефалического барьера, для каждого из которых измерены 134 дескриптора. A. Запустите R и используйте следующие команды для загрузки данных: > Library(caret) > data(BLoodBrain) > # Подробности см, в fBLoodBrain Результат содержится в векторе logBBB, предикторы — в кадре данных bbbDescr. Б. Имеют ли какие-либо из предикторов вырожденные распределения? B. В общем случае существуют ли сильные связи между данными предикторов? Если они существуют, то как сократить корреляции в наборе предикторов? Окажет ли это серьезное воздействие на количество предикторов, доступных для моделирования?
Переобучение и настройка модели Многие современные модели классификации и регрессионные модели высокоэффективны для моделирования сложных связей. Тем не менее они также очень легко переоценивают невоспроизводимые закономерности. Без методологического подхода к оценке моделей разработчик модели не будет знать о проблеме до прогнозирования следующего набора точек. Проблема переобучения (over-fitting) рассматривалась в области прогнозирования Кларком (Clark, 2004), медицинских исследований — Саймоном, Стейер- бергом (Simon et al., 2003; Steyerberg, 2010), хемометрики — Гоуэном, Хокинсом, а также Дефернисом и Кимсли (Gowen et al., 2010; Hawkins, 2004; Defernez and Kemsley, 1997), метеорологии — Си и Тангом (Hsieh and Tang, 1998), финансов — Двайером (Dwyer, 2005), брачных исследований — Хейманом и Слипом (Heyman and Slep, 2001) и т. д. Выполненные исследования показали, что переобучение проблематично для любой предиктивной модели независимо от области исследований. В этой главе мы постараемся объяснить и продемонстрировать ключевые принципы, на основе которых могут формироваться достоверно функционирующие предиктивные модели. Здесь же будут описаны стратегии, позволяющие с уверенностью утверждать, что построенная модель будет прогнозировать новые выборки с аналогичной степенью точности для того набора данных, на основе которого она была сформирована. Без этой уверенности любые прогнозы будут бесполезны. Результат построения модели во многом предопределяется исходными данными. Исходные данные могут быть недостаточными для решения поставленной задачи, обладать низким качеством и/или не иметь непосредственного отношения к моделируемым данным. И хотя существуют способы построения предиктивных моделей для малых наборов данных, которые также будут описаны в этой главе, будем исходить из того, что качество имеющихся в нашем распоряжении данных достаточно высокое, а выборка достаточно представительна для всей выборочной совокупности данных.
88 Глава 4. Переобучение и настройка модели С учетом сказанного имеющиеся в нашем распоряжении исходные данные следует использовать для поиска наилучшей предиктивной модели. Почти у всех методов предиктивного моделирования имеются параметры настройки, позволяющие видоизменять модель на базе структурирования данных. Следовательно, исходные данные должны использоваться и для нахождения параметров модели, обеспечивающих наибольшую эффективность прогнозирования (этот процесс называется настройкой модели). Традиционно эта задача решалась разделением данных на тренировочный и тестовый наборы. Тренировочный набор используется для построения и настройки модели, тестовый — для оценки ее предиктивной эффективности. Современные методы построения моделей допускают разделение данных на несколько тренировочных и тестовых наборов, поскольку такое разделение часто приводит к отысканию наиболее эффективных параметров настройки и обеспечивает более точное понимание предиктивной эффективности модели. Рассмотрим концепцию переобучения на наглядном примере. Чтобы избежать переобучения, прибегнем к обобщенному методу построения модели, включающему этапы настройки и оценки модели с конечной целью нахождения воспроизводимой структуры в данных. В этом методе существующие данные разделяются на разные наборы для целей настройки параметров модели и оценки ее эффективности. Выбор варианта разделения данных зависит от характеристик существующих данных, таких как размер и структура. В разделе 4.4 определяются и объясняются наиболее универсальные методы разделения данных, исследуются достоинства и недостатки каждого метода. Глава завершается разделом «Вычисления» с кодом реализации общей стратегии построения модели. 4.1. Проблема переобучения В настоящее время существует множество методов, анализирующих структуру набора данных настолько хорошо, что при применении модели к данным, на основе которых она построена, модель достоверно прогнозирует буквально каждую точку данных. Кроме общих закономерностей, модель выявляет характеристики искажений, присущих каждой точке данных. Такие модели обеспечивают переобучение, что оборачивается низкой точностью прогнозирования каждой следующей новой точки данных. Для наглядности рассмотрим пример классификации с двумя переменными-предикторами (то есть с двумя независимыми переменными) (рис. 4.1). Эти данные содержат 208 точек, распределенных между двумя классами: «Класс 1» (111 точек) и «Класс 2» (97 точек). Между классами существует значительное перекрытие, что характерно для большинства прикладных задач моделирования. Одна из целей, достигаемых посредством такого набора, — разработка модели для классификации новых точек данных. В рассматриваемом примере модели или пра-
4.1. Проблема переобучения 89 вила классификации могут быть представлены граничными линиями. На рис. 4.2 изображены примеры граничных линий для двух разных моделей классификации. Класс 1 Класс 2 0,0 0,0 0,2 0,4 0,6 Предиктор А Рис. 4.1. Пример классификационных данных, используемых в настоящей главе Класс 1 Класс 2 * 0,2 0,4 0,6 0,8 0,8 £ ф 0,4 о. С 0,2 0,2 0,4 0,6 0,8 Предиктор А Рис. 4.2. Пример тренировочного набора с двумя классами и двумя предикторами. На диаграммах изображены две разные модели классификации и соответствующие граничные линии
90 Глава 4. Переобучение и настройка модели Эти линии охватывают область, в которой каждая модель прогнозирует данные как относящиеся к классу 2 (квадраты). В левой части («Модель 1») изображена сложная граница, стремящаяся охватить каждую возможную точку данных, из-за чего этот шаблон вряд ли удастся обобщить для новых данных. В правой части изображено альтернативное обучение модели; здесь граница получается достаточно гладкой и не перегружается попытками правильно классифицировать каждую точку данных в тренировочном наборе. Чтобы оценить, насколько хорошо модель классифицирует данные, можно воспользоваться тренировочным набором. В этом случае оцениваемая частота ошибок для модели в левой части будет заниженной. Оценка пригодности модели для целей повторного прогнозирования по тренировочному набору позволяет установитьмни- мую эффективность модели. В двух измерениях нетрудно наглядно представить, что модель обеспечивает переобучение. Но поиск решения большинства задач моделирования осуществляется в условиях полиразмерности. В подобных ситуациях важно располагать инструментами, позволяющими достоверно установить степень переобучения модели по тренировочным данным. 4.2. Настройка модели Для многих моделей характерно наличие важных параметров, непосредственное вычисление которых на основе имеющихся исходных данных не представляется возможным. Например, в модели классификации KNN новая точка данных прогнозируется на основании KNN точек данных в тренировочном наборе. Пример функционирования модели с пятью ближайшими соседями для прогнозирования двух новых точек данных представлен на рис. 4.3 (искомые точки — кружок и закрашенный треугольник). Одна точка данных (•) практически сочетает в себе оба класса; следующие три указывают, что точка должна быть отнесена к первому классу. У второй точки (±) все пять соседей указывают на второй класс. Возникает вопрос — сколько именно соседей следует использовать? Выбор недостаточного количества может привести к переобучению отдельных точек тренировочного набора, тогда как модель с избыточным количеством соседей может не обеспечить требуемое быстродействие. Рассматриваемые параметры модели принято называть параметрами настройки, имея в виду, что для вычисления наиболее подходящего значения не существует соответствующих формул. Некоторые модели, рассмотренные в этой главе, имеют, по крайней мере, один параметр настройки. Увеличение количества параметров ведет к усложнению модели, а неудачный выбор значений — к переобучению. В этой связи вновь обратимся к рис. 4.2: метод опорных векторов (см. раздел 13.4) использован для генерирования границ классов в каждой из двух частей. Один из параметров настройки в представленной модели задает штраф за неверную классификацию точек данных в тре-
4.2. Настройка модели 91 Класс 1 Класс 2 0,6 СП О. Ф О. с 0,2 0,0 0,0 0,2 0,4 0,6 Предиктор А Рис. 4.3. Модель классификации с к ближайшими соседями. Две новые точки, изображенные в виде черного треугольника и черного кружка, спрогнозированы на основании тренировочного набора нировочном наборе, обычно обозначаемый как «стоимость» (cost). При заданной высокой стоимости модель стремится к тому, чтобы правильно пометить каждую точку (как на левой панели), но при более низких значениях этого показателя качество работы модели ухудшается. Граница класса в левой части сформирована вручную — присваиванием параметру стоимости пикового значения. В правой части стоимость была определена методом перекрестной проверки (см. раздел 4.4). Существуют разные подходы к определению оптимальных параметров. Общий подход, который может быть применен практически для любой модели, заключается в определении набора значений-кандидатов, генерировании надежных оценок полезности модели с разными кандидатами и выборе оптимальных настроек (рис. 4.4). После определения набора возможных значений параметра необходимо получить достоверные оценки эффективности модели. Данные об оценке эффективности на точках из контрольной выборки объединяются в профиль эффективности, используемый для определения итоговых параметров настройки. Затем строится — с использованием выбранных параметров настройки — итоговая модель со всеми тренировочными данными. Если использовать пример с KNN для демонстрации процедуры на рис. 4.4, то в состав значений-кандидатов могут войти все нечетные значения k от 1 до 9 (нечетные значения используются в ситуации с двумя классами для предотвращения «ничьих»).
92 Глава 4. Переобучение и настройка модели Рис. 4.4. Блок-схема процесса настройки параметров. В качестве набора параметров настройки для к ближайших соседей может использоваться набор нечетных чисел от 1 до 9. Для каждого из этих значений производится многократная повторная выборка для оценки эффективности модели при каждом значении Следующий шаг — повторная выборка из тренировочных данных и многократная оценка каждого значения параметра настройки. Полученные результаты обрабатываются для нахождения оптимального значения k. Рассматриваемая процедура использует набор моделей-кандидатов, определяемый параметрами настройки. Другие методы, такие как генетические алгоритмы Митчелла (Mitchell, 1998) или симплексный метод поиска Олесона—Нельсона (Olsson and Nelson, 1975), также могут применяться для поиска оптимальных параметров настройки. Эти процедуры последовательно определяют наиболее подходящие значения параметров настройки и выполняются до тех пор, пока не будут достигнуты их оптимальные значения. Обычно подобные методы оценивают большое
4.3. Разделение данных 93 количество моделей-кандидатов, в том числе с выходом за заранее определенные наборы параметров настройки в тех случаях, когда эффективность модели может быть вычислена. Отметим, что у Коэна (Cohen et al., 2005) описано сравнение функций поиска для настройки модели метода опорных векторов. Труднее получить достоверные оценки эффективности для моделей-кандидатов. Как уже упоминалось, мнимая частота ошибок может порождать чрезмерно оптимистичные оценки эффективности модели, в связи с чем представляется предпочтительным проверять модель на данных, которые не использовались для тренировки. Однако для получения оптимальной точности показателей эффективности размер тестового набора должен быть достаточно большим. Альтернативный способ оценки модели для одного тестового набора основан на повторной выборке тренировочного набора. Для этого используется несколько измененных версий тренировочного набора, позволяющих сформировать несколько моделей и объективно оценить их эффективность посредством применения статистических методов. В разделе 4.4 продемонстрированы некоторые методы повторной выборки. Способы выбора итоговых параметров по результатам повторной выборки обсуждаются в разделе 4.6. 4.3. Разделение данных Теперь, когда мы в общих чертах обрисовали процедуру поиска оптимальных параметров настройки, можно переходить к рассмотрению сути разделения данных. Перечислим ключевые этапы построения модели: О предварительная обработка данных предикторов; О оценка параметров модели; О выбор предикторов для модели; О оценка эффективности модели; О точная настройка правил прогнозирования классов (кривые ошибок и т. д.). Располагая сведениями о заданном фиксированном объеме данных, разработчик модели должен решить, как наиболее продуктивно использовать для оценки эффективности модели точки данных и произвести мотивированный отбор последних. Для обеспечения объективной оценки эффективности модели целесообразно использовать точки, которые не задействовались для ее построения или регулировки. При наличии достаточно большого объема данных можно заранее зарезервировать набор точек данных для оценки эффективности итоговой модели. Поясним, что под тренировочным набором данных понимается выборка для формирования модели, а под тестовым или контрольным набором данных — выборка для оценки эффективности модели.
94 Глава 4. Переобучение и настройка модели При недостатке данных от тестового набора целесообразно отказаться, с тем чтобы использовать их только для построения модели. К слову, некоторые исследователи, включая Молинаро, Мартина и Хиршберга, Хокинса (Molinaro, 2005; Martin and Hirschberg, 1996; Hawkins et al., 2003), рассматривают решение о проверке, основанной исключительно на тестовом наборе, как неудачное. В частности, у Хокинса (Hawkins et al., 2003) находим следующий вывод: «Контрольные выборки приемлемого размера [...] уступают перекрестной проверке в отношении надежности для оценки аппроксимации модели, и их применение трудно оправдать». Методы повторной выборки (например, перекрестная проверка) могут использоваться для оценки эффективности модели на основе тренировочного набора (подробнее см. раздел 4.4). Эти методы могут работать и некорректно, как в примере у Эмброуза и Маклахлана (Ambroise and McLachlan, 2002); тем не менее эти методы позволяют оценить эффективность модели объективнее, нежели методы, основанные на использовании единичного тестового набора, поскольку предполагают использование альтернативных вариантов данных. При принятии решения в пользу метода с использованием тестового набора можно воспользоваться различными методами разделения данных. Например, если модель предназначена для прогнозирования результата лечения, то ее можно создать на основе данных некоторых пациентов (например, с одинаковой клинической базой или стадией заболевания), а протестировать — уже на другой выборке. В химическом моделировании, сопровождающем поиск новых лекарств, постоянно исследуется новое «химическое пространство». Нас, по понятным причинам, больше интересует точность прогнозов в актуальном химическом пространстве, чем в пространстве, которое анализировалось несколько лет назад. То же самое можно сказать и о фильтрации спама: для модели важнее информация о новых методах рассылки спама, чем об уже известных. Однако в большинстве случаев желательно, чтобы тренировочный и тестовый наборы данных были настолько однородными, насколько это возможно. Для создания таких наборов могут использоваться методы случайной выборки. Элементарный способ разделения данных на тренировочный и тестовый наборы основан на простой случайной выборке. Атрибуты данных при этом не контролируются. Если один класс имеет непропорционально низкую частоту по сравнению с другими, то сохраняется вероятность того, что распределение результатов между тренировочным и тестовым наборами будет существенно различаться. Чтобы учитывать результат при разделении данных, расслоенная случайная выборка применяется в подгруппах (например, в классах). При этом существует высокая вероятность того, что распределения результатов будут совпадать. Если результат является числом, то можно воспользоваться аналогичной стратегией: числовые значения делятся на сходные группы (например, низкие, средние и высокие), а их рандомизация выполняется в соответствующих группах.
4.3. Разделение данных 95 Разделение данных может производиться и на основании значений предикторов. В частности, Уиллетт (Willett, 1999) и Кларк (Clark, 1997) предлагают выполнять разделение на основании максимального расхождения. Распределение между двумя выборками может осуществляться разными способами. Проще всего использовать разницу между значениями предикторов двух выборок. Незначительная разница указывает на близость взаимного расположения точек, и наоборот. Чтобы использовать расхождение как механизм разделения данных, предположим, что тестовый набор инициализируется одной точкой данных. Вычислим расхождения между исходной точкой и нераспределенными точками. Затем нераспределенная точка с наибольшим расхождением добавляется в тестовый набор. Для включения новых точек данных в тестовый набор необходим метод определения расхождения между группами точек (то есть двумя точками из тестового набора и нераспределенными точками). Другой способ основан на использовании среднего или минимального расхождения. Например, чтобы измерить расхождение между двумя точками в тестовом наборе и одной нераспределенной точкой, можно вычислить два расхождения и затем усреднить их. Для добавления в тестовый набор выбирается точка с максимальным средним расхождением относительно существующего набора. Этот процесс выполняется до тех пор, пока не будет достигнут заданный размер тестового набора (рис. 4.5). Класс 1 Класс 2 Класс 1 Класс 2 со CL £ S EI Ф О. с 0,6 00 Q. О 0,6 0,4 £ 5 о 0,4 С 0,2 0,2 0,0 0,0 0,0 0,2 0,4 0,6 Предиктор А 0,0 0,2 0,4 0,6 Предиктор А Рис. 4.5. Пример формирования тестового набора методом максимального расхождения. После выбора исходной точки данных в класс добавляются еще 14 точек Выбор посредством вычисления расхождения проводился отдельно в каждом классе. Сначала в каждом классе было выбрано по одной точке для запуска процесса (на диаграмме эти точки обозначены символами ■ и •.). Далее вычислено расхождение
96 Глава 4. Переобучение и настройка модели исходной точки с нераспределенными точками внутри класса, а точка с наибольшим расхождением добавлена в тестовый набор. Для первого класса точка с наибольшим расхождением находится в юго-западном углу исходного примера. Затем расхождения были обобщены по принципу минимума (вместо усреднения). На этот раз для первого класса выбранная точка находилась в северо-восточном углу пространства предикторов. По ходу формирования сначала добавлялись периферийные точки. Затем происходило постепенное продвижение к центру. Отметим, подытоживая параграф, что у Мартина (Martin et al., 2012) сравниваются различные методы разбиения данных, включая случайную выборку, выборку методом расхождения и другие методы. 4.4. Методы повторной выборки В общем случае методы повторной выборки для оценки эффективности модели работают так: подмножество точек данных используется для обучения модели, остальные точки — для оценки ее эффективности. Процесс повторяется несколько раз, его результаты накапливаются и обобщаются. Различия в методах обычно обусловлены способом выбора этих множеств. Основные варианты повторной выборки будут рассмотрены в следующих разделах. К-кратная перекрестная проверка При выполнении А-кратной перекрестной проверки точки данных случайным образом разбиваются на k множеств приблизительно одинакового размера. Обучение модели производится по всем точкам, кроме первого подмножества. Зарезервированные точки данных прогнозируются по полученной модели, а результат используется для оценки значений эффективности. Первое подмножество возвращается в тренировочный набор, после чего процедура повторяется с резервированием второго подмножества, и т. д. В конце производится обобщение k полученных оценок эффективности (обычно с использованием математического ожидания и среднеквадратичной погрешности). На основе полученной информации анализируется зависимость между параметрами настройки и эффективностью модели. Процесс перекрестной проверки для k = 3 представлен на рис. 4.6. В модифицированной версии этого метода по Кохави (Kohavi, 1995) k подмножеств выбираются так, чтобы они были сбалансированы в отношении результата. Расслоенная случайная выборка (см. раздел 4.3) осуществляет балансировку с учетом результата. Другая разновидность — перекрестная проверка с исключением (LOOCV, Leave-One- Out Cross-Validation) — представляет собой особый случай, в котором значение k равно количеству точек данных. Поскольку каждый раз резервируется только одна
4.4. Методы повторной выборки 97 Исходные данные Построение модели Прогнозирование Группа перекрестной проверки 1 Группа перекрестной проверки 2 Группа перекрестной проверки 3 Рис. 4.6. Процедура трехкратной перекрестной проверки. Двенадцать точек данных тренировочного набора изображены в виде геометрических фигур и распределены потрем группам. Группы последовательно исключаются из рассмотрения в процессе обучения модели. Для каждого набора исключенных точек вычисляется метрика эффективности — например, частота ошибок или R2. Среднее значение этих трех метрик определяет межвыборочную оценку эффективности модели. На практике количество точек в исключенной части может меняться, но размеры этих подмножеств остаются приблизительно равными точка данных, итоговая эффективность вычисляется на основании k отдельных прогнозов. Повторная ^-кратная перекрестная проверка повторяет процедуру, представленную на рис. 4.6, несколько раз. Например, если десятикратная перекрестная проверка повторяется пять раз, то эффективность модели будет оцениваться на основании 50 разных наборов. Значение k обычно выбирается равным 5 или 10, но это не является формальным правилом. С увеличением k разность в размере между тренировочным набором и подмножествами повторной выборки сокращается. В свою очередь, с уменьшением разности сокращается погрешность рассматриваемого метода (разность между оцениваемыми и истинными значениями эффективности), то есть для k = 10 смещение будет меньше, чем для k = 5). Другим важным аспектом методов повторной выборки является неопределенность (дисперсия или искажение данных). Несмещенный метод может выявить теоретическую эффективность модели, но с учетом влияния на результат дисперсии. Это означает, что при следующем выполнении повторной выборки будет получено иное значение (хотя, повторив процедуру достаточное количество раз, можно получить более или менее объективную оценку эффективности). К-кратная перекрестная проверка обычно обладает высокой дисперсией по сравнению с другими методами, что снижает ее привлекательность в контексте целей исследования. При использовании больших тренировочных наборов потенциальные проблемы с дисперсией становятся пренебрежимо малыми. Большие значения k заметно повышают вычислительную нагрузку. Показательный пример — перекрестная проверка с исключением, при выполнении которой количество адаптаций равно количеству точек данных, а каждая адаптация ис-
98 Глава 4. Переобучение и настройка модели пользует подмножество, размер которого почти не отличается от размера тренировочного набора. Молинаро (Molinaro, 2005) обнаружил, что перекрестная проверка с исключением и десятикратная перекрестная проверка дают сходные результаты; следовательно, значение k = 10 оказывается более привлекательным в контексте вычислительной эффективности. Кроме того, с малыми значениями k (допустим, 2 или 3) процедура имеет высокое смещение, но обладает чрезвычайно высокой вычислительной эффективностью. С другой стороны, смещение, обусловленное малыми значениями k, приблизительно равно смещению, полученному в результате выборки с возвратом (см. ниже), но обладает гораздо большей дисперсией. Исследования того же Молинаро, а также Кима (Molinaro, 2005; Kim, 2009) подтвердили возможность выполнения повторной ^-кратной перекрестной проверки для реального повышения точности оценки при минимальных значениях дисперсии. Обобщенная перекрестная проверка Для моделей линейной регрессии существует формула аппроксимации частоты ошибок для перекрестной проверки с исключением. Статистика обобщенной перекрестной проверки (GCV, Generalized Cross-Validation), согласно Голубу (Golub et al., 1979), не требует итеративного переобучения модели по разным подмножествам данных. Формула для г-го обучающего набора выглядит так: GCV= — п Vi ~Vi Y где yt — i-й результат в тренировочном наборе, у{ — прогноз этого результата моделью, a df — число степеней свободы модели. Показатель степеней свободы учитывает, сколько параметров оценивает модель, а следовательно, и сложность моделей линейной регрессии. На основании уравнения две модели с одинаковыми суммами среднеквадратичной ошибки (числитель) будут иметь разные значения GCV, если модели различаются по сложности. Повторное разделение тренировочного/тестового набора Повторное разделение тренировочного/тестового набора также называется «пере- крестной проверкой с исключением групп» и «перекрестной проверкой методом Монте-Карло». Этот метод позволяет создать несколько вариантов разделения данных на моделирующий и предиктивный набор (рис. 4.7). Часть данных, попадающая в каждый набор, и количество их повторений задаются специалистом. Как упоминалось, дисперсия методов повторной выборки умень-
4.4. Методы повторной выборки 99 Исходные данные Построение модели Прогнозирование Группа перекрестной проверки 1 Группа перекрестной проверки 2 Группа перекрестной проверки 3 Рис. 4.7. Процедура В повторных разбиений тренировочного/тестового набора. Двенадцать точек данных тренировочного набора изображены в виде геометрических фигур и распределены по В подмножествам, образующим 2/3 исходного тренировочного набора. Одно из отличий этой процедуры от k-кратной перекрестной проверки заключается в том, что точки данных могут содержаться в нескольких зарезервированных подмножествах. Кроме того, количество повторений обычно больше k-кратной перекрестной проверки шается по мере того, как объем данных в подмножестве приближается к объему моделирующего набора. Вполне удовлетворительным является показатель в диапазоне от 75 до 80 %. Более высокие показатели достижимы при большом количестве повторений. Увеличение количества подмножеств способствует сокращению дисперсии оценок эффективности. Например, для получения общей оценки эффективности модели 25 повторений будет достаточно, если представляется приемлемой некоторая нестабильность итоговых значений. Для более или менее гарантированного получения стабильных оценок эффективности рекомендуется большее количество повторений — от 50 до 200. Это же значение является функцией для пропорции точек данных, случайным образом выделяемых в предиктивный набор: чем выше процент, тем больше повторений понадобится для сокращения дисперсии в оценках эффективности. Бутстрэп Выборка с возвратом, или бутстрэп (bootstrap), — случайная выборка данных, при которой точка данных, выбранная для подмножества, «возвращается» в исходный набор и остается доступной для выбора в будущем, как это показано, например, у Эфрона и Тибширани (Efron and Tibshirani, 1986). Бутстрэп имеет такой же размер, как и исходный набор данных. В результате некоторые точки данных будут встречаться в выборке с возвратом несколько раз, тогда как другие выбираться вообще не будут. Точки, которые не были выбраны, обычно называются не вошедшими в набор (out-of-bag). Для заданной итерации повторного бутстрэпа модель строится
100 Глава 4. Переобучение и настройка модели на основе выбранных точек данных и используется для прогнозирования точек, не вошедших в набор (рис. 4.8). Исходные данные Построение модели Прогнозирован ие Группа перекрестной проверки 1 Группа перекрестной проверки 2 Группа перекрестной проверки 3 Рис. 4.8. Процедура повторной выборки с возвратом. Двенадцать точек данных тренировочного набора изображены в виде геометрических фигур и распределены по В подмножествам. Размер каждого подмножества равен размеру оригинала, и одна точка данных может встречаться многократно. Точки, не выбранные в процессе выборки, используются для оценки эффективности модели В общем случае частота ошибок выборки обладает несколько меньшей неопределенностью, чем ^-кратная перекрестная проверка по Эфрону (Efron, 1983). В среднем 63,2 % точек данных представлены как минимум однократно, так что дисперсия этого метода сходна с дисперсией ^-кратной перекрестной проверки при k ~ 2. Если размер тренировочного набора мал, то дисперсия может существенно возрасти, и наоборот. Для устранения дисперсии был разработан ряд модификаций простой процедуры выборки с возвратом. Метод 632 (Efron, 1983) решает проблему дисперсии посредством оценки эффективности, являющейся комбинацией простой оценки выборки с возвратом и оценки повторного прогнозирования тренировочного набора (то есть кажущейся частоты ошибок). Например, если классификация модели характеризовалась частотой ошибок, то метод 632 использует следующую формулу: (0,632 х простая оценка выборки с возвратом) + + (0,368 х кажущаяся частота ошибок). Измененная процедура выборки с возвратом сокращает дисперсию при сохранении рисков нестабильности для малых размеров выборки. Она может привести и к завышенным результатам, если модели присуще переобучение данных, потому что мнимая частота ошибок при этом будет близка к нулю. Заметим, что позднее у Эфрона и Тибширани (Efron and Tibshirani, 1997) рассмотрен и другой метод корректировки оценки выборки с возвратом — так называемый метод 632+.
4.6. Выбор итоговых параметров настройки 101 4.5. Практикум: оценка кредитоспособности Одно из очевидных применений предиктивных моделей — оценка кредитоспособности, когда на основе определенных данных модель прогнозирует вероятность возврата кредита заемщиком. Этот прогноз может использоваться для оценки риска банка-заимодавца. Используемый в Германии набор данных — популярный инструмент для проверки алгоритмов машинного обучения. Он содержит 1000 точек данных, которым присвоены метки «хороший кредит» и «плохой кредит». В наборе данных 70 % кредитов были оценены как «хорошие». Требование о базовой оценке точности модели в 70 % (достигаемой простым прогнозированием всех точек данных как «хороших») обсуждается в разделе 11.2. С учетом изложенного собирались данные, относящиеся к кредитной истории потенциального заемщика, о наличии у него работы, о состоянии его счета и т. д. Некоторые предикторы были числовыми — например, сумма кредита. Однако большинство предикторов были категорийными по своей природе — например, цель кредита, пол или семейное положение. Категорийные предикторы были преобразованы в «фиктивные переменные», относящиеся к одной категории. Например, информация о проживании была разбита на категории «арендованное жилье», «жилье в собственности» или «служебное жилье». Этот предиктор был преобразован в три ответа «да/нет» для каждой категории. Например, один предиктор будет иметь значение 1, если заемщик снимает жилье, и 0 — в противном случае (о фиктивных переменных см. раздел 3.6). Всего для моделирования кредитного статуса заемщика применен 41 предиктор. Эти данные приводятся для демонстрации настройки моделей с применением повторной выборки (см. рис. 4.4) на основе расслоенной случайной выборки 800 клиентов, которая использовалась для тренировки моделей. Остальные точки данных использовались как тестовый набор для проверки эффективности итоговой модели. Результаты обработки тестового набора будут рассмотрены более подробно в разделе 11.2. 4.6. Выбор итоговых параметров настройки После оценки эффективности модели по наборам параметров настройки можно перейти к выбору итоговых настроек, следуя одному из общепринятых подходов. Простейший вариант — выбор настроек, связанных с наиболее высокими значениями оценки эффективности модели. Так, в примере с оценкой кредитоспособности
102 Глава 4. Переобучение и настройка модели нелинейная модель опорных векторов1 оценена на значениях стоимости в диапазоне от 2 2 до 27. Для каждой модели оценка выполнена на основе пяти повторений десятикратной перекрестной проверки. На рис. 4.9 и в табл. 4.1 представлен профиль точности для разных значений-кандидатов параметра стоимости. Кажущаяся С перекрестной проверкой 1,00 0,95 5 0,90 о о X о 0,85 | 0,80 О 0,75 0,70 2Л-2 2А0 2А2 2Л4 2*6 Стоимость Рис. 4.9. Профиль эффективности метода опорных векторов с радиальной базисной функцией в примере оценки кредитоспособности для разных значений параметра стоимости. Вертикальные линии обозначают ± две стандартные погрешности Для каждой модели перекрестная проверка сгенерировала 50 разных оценок точности; заполненные точки на рис. 4.9 представляют средние значения этих оценок. Вертикальные «скобки» отражают среднее значение плюс-минус две стандартные погрешности. Профиль отражает возрастание точности до достижения значения стоимости, равной 1. Модели со значениями стоимости от 1 до 16 относительно постоянны, после чего точность снижается (вероятно, из-за переобучения). Оптимальное значение параметра стоимости равно 8, с соответствующей степенью точности 75 %. Мнимая частота точности, определяемая повторным прогнозированием для данных тренировочного набора, указывает на постепенное улучшение модели с ростом значения стоимости, хотя в более сложных моделях наблюдается переобучение тренировочного набора. 1 Эта модель использует ядро радиальных базисных функций (раздел 13.4). Хотя здесь эта тема не рассматривается, мы использовали аналитический подход, рассмотренный ниже, для определения параметра ядра, и скорректировали это значение для всех методов повторной выборки.
4.6. Выбор итоговых параметров настройки 103 Таблица 4.1. Результаты многократной перекрестной проверки для модели опорных векторов Точность (%) Стоимость Мат. ожидание Стандартная погрешность Допуск (%) 0,25 70,0 0,0 -6,67 0,50 71,3 0,2 -4,90 1,00 74,0 0,5 -1,33 2,00 74,5 0,7 -0,63 4,00 74,1 0,7 -1,20 8,00 75,0 0,7 0,00 16,00 74,9 0,8 -0,13 32,00 72,5 0,7 -3,40 64,00 72,0 0,8 -4,07 128,00 72,0 0,8 -4,07 Метод «одной стандартной погрешности» выбирает простейшую модель с точностью не менее 74,3 (75-0,7) %, что соответствует значению стоимости 2. Информация о лучшем решении выделена полужирным шрифтом. В общем случае желательно отдавать предпочтение простым моделям перед сложными. Выбор параметров настройки на основании оптимальных значений может привести к чрезмерному усложнению модели. Стоит исследовать и другие схемы выбора менее сложных моделей. Они могут привести к более простым моделям с приемлемой эффективностью (относительно числовых оптимальных настроек). Метод «одной стандартной погрешности» для выбора более простых моделей находит оптимальное значение и его соответствующую стандартную погрешность, после чего ищет простейшую модель, эффективность которой лежит в пределах одной стандартной погрешности от наилучшего значения. Эта процедура, следуя Брейману (Breiman et al., 1984), происходит от классификационных и регрессионных деревьев (см. разделы 8.1 и 14.1). На рис. 4.10 стандартная погрешность значений точности при значении стоимости 8 составляет около 0,7 %. Рассматриваемый метод позволяет определить простейшие параметры настройки с точностью не менее 74,3 (75 - 0,7) %, используя два заданных значения стоимости. Возможен и выбор модели в пределах заданного допуска от числового лучшего значения. Снижение показателя эффективности может быть представлено как
104 Глава 4. Переобучение и настройка модели (X - 0)/0, где X — значение эффективности, а О — числовое оптимальное значение. Например, на рис. 4.9 лучшее значение точности в пределах профиля достигало 75 %. Если четырехпроцентное снижение точности приемлемо как цена упрощения модели, то, соответственно, приемлемы значения точности в 71,2 % и выше. Для профиля, представленного на рис. 4.9, этот метод приведет к выбору значения стоимости 1. 2Л-2 2л0 2Л2 2Л4 2Л6 0,80 0,75 0,70 >Х о Q. О Ю -Q СО >х о X 0.80 о. о н CD О С 0,75 о л ь о 0,70 X 7 О 1- 0,80- 0,75- 0,70- 2л-2 2л0 2Л2 2Л4 2Л6 Стоимость Рис. 4.10. Профиль эффективности нелинейной машины опорных векторов для разных значений параметра стоимости в примере оценки кредитоспособности с использованием разных процедур повторной выборки. Вертикальные линии обозначают ± две стандартные погрешности
4.7. Рекомендации по разделению данных 105 Те же данные были обработаны и посредством других методов повторной выборки: повторная десятикратная перекрестная проверка, перекрестная проверка с исключением, выборка с возвратом (с поправкой 632 и без) и повторное разделение тре- нировочного/тестового набора (с 20-процентным резервированием). Последние два метода использовали для оценки эффективности 50 повторных выборок (рис. 4.10). На диаграмме отражена стандартная закономерность, присущая методам перекрестной проверки: пик точности достигается при значениях стоимости от 4 до 16, оставаясь в пределах интервала сравнительно постоянным. Эффективность быстро растет со значением стоимости, а после достижения пика — плавно снижается вследствие переобучения. Методы перекрестной проверки оценивают точность в диапазоне от 74,5 до 76,6 %. Простая выборка с возвратом оценивает точность на уровне 74,2 %, тогда как «метод 632» — на уровне 82,3 %. Следует учитывать, что интервал стандартной погрешности простой десятикратной перекрестной проверки — больше, чем у других методов, поскольку стандартная погрешность является функцией количества используемых повторных выборок (100 против 50, используемых выборкой с возвратом или с повторным разделением). Время вычислений существенно различалось. Десятикратная перекрестная проверка выполнена за 0,82 минуты. Многократная перекрестная проверка, выборка с возвратом и повторное разбиение тренировочного/тестового набора работают с одинаковым количеством моделей и, в среднем, занимают в пять раз больше времени (до 4 минут). Перекрестная проверка с исключением, у которой количество моделей равно количеству точек данных в тренировочном наборе, длилась 70 минут, что указывает на предпочтительность применения этого варианта только при очень небольшом размере набора данных. 4.7. Рекомендации по разделению данных Как упоминалось, против использования единственного независимого тестового набора существует ряд серьезных возражений, а именно: О тестовый набор обеспечивает однократную оценку модели, а его возможности по описанию дисперсии в результатах ограниченны; О пропорционально большие тестовые наборы делят данные способом, увеличивающим смещение в оценках эффективности; О при малых размерах выборки модели может понадобиться каждая возможная точка данных для адекватного определения значений модели; О дисперсия тестового набора может быть достаточно большой до момента, когда разные тестовые наборы могут создавать совершенно разные результаты; О методы повторной выборки могут давать внятные прогнозы того, как модель поведет себя на будущих выборках.
106 Глава 4. Переобучение и настройка модели Ни один метод повторной выборки не является однозначно лучшим. Соответственно, при выборе метода следует учитывать несколько факторов. При небольших размерах выборки рекомендуется применять повторную десятикратную перекрестную проверку. В этом случае смещение и дисперсия приемлемы, а вычислительные затраты относительно невелики при заданном размере выборки. Для выбора между моделями предпочтительнее использовать одну из процедур выборки с возвратом, потому что они характеризуются очень низкой дисперсией. Для больших наборов различия между методами повторной выборки становятся менее выраженными, а на первый план выходит фактор вычислительной эффективности. Здесь приемлемую дисперсию, низкое смещение и относительно малое время вычисления возможно обеспечить посредством простой десятикратной перекрестной проверки. Варма и Саймон (Varma and Simon, 2006), Булестье и Стробл (Boulesteix and Strobl, 2009) замечают, что при оценке эффективности модели в ходе настройки параметров может наблюдаться потенциальное смещение. Предположим, итоговая модель выбирается в соответствии с параметром настройки, связанным с наименьшим процентом ошибок. Возникает возможность завышенной оценки процента ошибок как случайной величины, выбираемой из потенциально большого набора параметров настройки. В исследованиях центральное место занимали ситуации с малым количеством точек данных и большим количеством предикторов, в которых обозначенная проблема усугубляется. Впрочем, для относительно больших тренировочных наборов это смещение несущественно. Оценки эффективности, полученные методом повторной выборки на базе тестового набора, рассматриваются далее (с учетом незначительности влияния на результаты оптимизационного смещения). 4.8. Выбор между моделями После того как для каждой модели определены параметры настройки, предстоит сделать выбор между несколькими моделями. Этот выбор в основном зависит от характеристик данных и вопросов, на которые нужно ответить по ходу выбора. Тем не менее предсказать, какая модель лучше всего подходит для заданной цели, непросто. Возможна следующая схема окончательного выбора типа модели. 1. Начните с нескольких моделей, обладающих наименьшей интерпретируемостью и наибольшей гибкостью, например усиленных деревьев решений или опорных векторов. Эти модели с высокой вероятностью приведут к эмпирически оптимальным (то есть наиболее точным) результатам. 2. Исследуйте более простые модели, обладающие наибольшей прозрачностью, например многомерные адаптивные регрессионные сплайны (MARS), частные наименьшие квадраты, обобщенные аддитивные модели и наивные байесовские модели.
4.8. Выбор между моделями 107 3. Рассмотрите возможность использования простейшей модели, обеспечивающей эффективность, достаточно близкую к эффективности более сложных методов. Посредством представленной схемы разработчик может обнаружить «потолок эффективности» для набора данных до выбора в пользу конкретной модели. Не исключено, что сразу несколько моделей окажутся равными по эффективности и для окончательного выбора потребуется оценить их индивидуальные преимущества: вычислительную сложность, простоту прогнозирования, интерпретируемость. Например, нелинейный метод опорных векторов или модель случайного леса могут обладать более высокой точностью, но сложность и громоздкость уравнения прогнозирования могут помешать внедрению формулы прогнозирования в реально функционирующую систему. При сопоставимых показателях точности целесообразно отдать предпочтение модели, функционирующей на основе формулы, внедрение которой требует меньших временных затрат. Рассмотрим классификационную модель оценки кредитоспособности на базе метода опорных векторов с использованием повторной выборки (см. раздел 4.6). При использовании повторной десятикратной перекрестной проверки точность модели оценена в 75 %, тогда как у большинства остальных методов повторной выборки точность составляла от 66 до 82 %. Логистическая регрессия (см. раздел 12.2) — более простой метод оценки граничных линий, чем нелинейная модель метода опорных векторов. У нее нет параметров настройки, а формула прогнозирования проста и легко реализуема во многих программных продуктах. При использовании той же схемы перекрестной проверки оцениваемая точность модели составляла 74,9 %, тогда как у большинства остальных методов повторной выборки точность составляла от 66 до 82 %. Уточним, что для оценки каждой модели использовались одни и те же повторные выборки (всего — 50). На рис. 4.11 представлена диаграмма, отображающая распределение оценок точности при повторной выборке. Очевидно, что использование более простой модели для этих данных не приводит к потере эффективности. В работах Хоторна (Hothorn et al., 2005) и Эгстера (Eugster et al., 2008) описаны статистические методы сравнения методологий на основании результатов повторной выборки. Поскольку точность измерялась с использованием наборов данных с идентичными повторными выборками, то при определении статистической значимости различий можно было воспользоваться статистическими методами для парных сравнений. Парная ^-проверка может использоваться для оценки гипотезы о том, что модели обладают эквивалентными точностями (или средними значениями) или что средняя разность точности для наборов данных повторной выборки равна нулю. Для этих двух моделей средняя разность точности модели составила 0,1 %, при этом логистическая регрессия позволила получить лучшие результаты. 95-процентным доверительным интервалом для этой разности был интервал от -1,2 до 1 %. Следовательно, нет оснований утверждать, что одна из сопоставляемых
108 Глава 4. Переобучение и настройка модели Модель опорных векторов (SVM) Модель логистической регрессии 0,65 0,70 0,75 0,80 0,85 Точность Рис. 4.11. Сравнение оценок точности перекрестной проверки от модели опорных векторов и модели логистической регрессии для данных оценки кредитоспособности (раздел 4.5) моделей обладает значительно лучшей точностью. Значения точности повторной выборки (рис. 4.11) лежат в диапазоне от 61,3 до 85 %, и с учетом разброса в результатах повышением точности на 0,1 % можно пренебречь. Заметим, что если речь идет о модели, характеризующейся несколькими показателями, то существует вероятность того, что сравнения между моделями приведут к разным выводам. Например, если модель создается для прогнозирования двух классов, то для определения эффективности моделей могут использоваться чувствительность и специфичность (см. главу 11). Если набор данных включает больше событий, чем несобытий, то чувствительность может быть определена с большей точностью, чем специфичность. При повышении точности повышается и вероятность того, что модели удастся различить именно в контексте их чувствительности, а не их специфичности. 4.9. Вычисления Для демонстрации методов моделирования используется язык R. Напомним вновь, что краткий обзор R и базовые принципы его использования приведены в приложении Б. Читателям, не имеющим опыта работы с R, стоит прежде всего ознакомиться с указанными материалами, а затем уже продолжить чтение этой книги. В этом разделе упоминаются функции из пакетов AppliedPredictiveModeling, caret, Design, е1071, ipred и MASS. Синтаксис продемонстрирован на простом примере с двумя классами (см. рис. 4.2 и 4.3) и данными из практикума по оценке кредитоспособности.
4.9. Вычисления 109 Разделение данных Данные с двумя классами (см. рис. 4.1) содержатся в пакете AppliedPredictiveModeling и загружаются командами: > Library(AppLiedPredictiveModeLing) > data(twoCLassData) Предикторы данных примера хранятся в кадре данных predictors. Для предикторов предусмотрено два столбца, 208 точек данных представлены строками. Классы результатов содержатся в факторном векторе classes. > str(predictors) ’data.frame’: 208 obs. of 2 variables: $ PredictorA: num 0.158 0.655 0.706 0.199 0.395 ... $ PredictorB: num 0.1609 0.4918 0.6333 0.0881 0.4152 ... > str(cLasses) Factor w/ 2 levels ’’Classi", ”Class2": 2222222222 ... Базовая функция R sample может создавать простые случайные разделения данных. Чтобы создать расслоенное случайное разделение данных (с учетом классов), можно воспользоваться функцией createDataPartition из пакета caret. При вызове функции задается процент данных, выделяемых в тренировочный набор. > # Инициализация генератора случайных чисел для воспроизведения результатов > set.seed(l) > # По умолчанию числа возвращаются в виде списка. С параметром > # List - FALSE генерируется матрица номеров строк. > # Эти данные выделяются в тренировочный набор. > trainingRows <- createDataPartition(сLasses, + р = .80, + List= FALSE) > head(trainingRows) Resamplel [1,] 99 [2,] 100 [3,] 101 [4,] 102 [5,] 103 [6,] 104 > # Выделить подмножества данных в объекты для тренировки. > trainPredictors <- predictors[trainingRows, ] > trainCLasses <- cLasses[trainingRows] > # Сделать то же самое для тестового набора с отрицательными числами. > testPredictors <- predictors[-trainingRows, ] > testCLasses <- cLasses[-trainingRows] > str(trainPredictors)
110 Глава 4. Переобучение и настройка модели ’data.frame': 167 obs. of 2 variables: $ PredictorA: num 0.226 0.262 0.52 0.577 0.426 ... $ PredictorB: num 0.291 0.225 0.547 0.553 0.321 ... > str(testPredictors) 'data.frame': 41 obs. of 2 variables: $ PredictorA: num 0.0658 0.1056 0.2909 0.4129 0.0472 ... $ PredictorB: num 0.1786 0.0801 0.3021 0.2869 0.0414 ... Для генерирования тестового набора с использованием принципа максимального расхождения для последовательной выборки данных можно воспользоваться функцией maxdissim из пакета caret. Повторная выборка Пакет caret содержит различные функции для разделения данных. Например, для повторного разделения тренировочного/тестового набора можно еще раз воспользоваться функцией createDataPartition с дополнительным аргументом times для генерирования множественных вариантов разделения. > set.seed(l) > # Для примера будет сгенерирована информация, необходимая для трех > # версий тренировочного набора, полученных при повторной выборке. > repeatedSpLits <- createDataPartitionftrainCLasses, p = .80, times = 3) > str(repeatedSpLits) List of 3 $ Resamplel: int [1:135] 12345679 11 12 ... $ Resample2: int [1:135] 4 6 7 8 9 10 11 12 13 14 ... $ Resample3: int [1:135] 2 3 4 6 7 8 9 10 11 12 ... В пакете caret имеются, кроме того, функции createResamples (для выборки с возвратом), createFolds (для ^-кратной перекрестной проверки) и createMultiFolds (для повторной перекрестной проверки). Чтобы создать индикаторы для десятикратной перекрестной проверки, выполните следующее: > set.seed(l) > cvSpLits <- createFoLds(trainCLasses, k = 10, + returnTrain = TRUE) > str(cvSpLits) List of 10 $ Fold01: int [1:151] 1 2 345678911... $ Fold02: int [1:150] 1 2 3456891012.. $ Fold03: int [1:150] 1 2 34678101113. $ Fold04: int [1:151] 1 2 345678910... $ Fold05: int [1:150] 1 2 3457891011.. $ Fold06: int [1:150] 2 4 56789101112.
4.9. Вычисления 111 $ Fold07: int [1:150] 1 2 345678910.. $ Fold08: int [1:151] 1 2 345678910.. $ Fold09: int [1:150] 1 3 45679101112 $ Foldl0: int [1:150] 1 2 3567891011. > # Получение первого набора номеров строк из списка. > foLdl <- cvSpLits[[l]] Чтобы получить первые 90% данных (первая свертка): > cvPredictorsl <- trainPredictors[foLdl,] > cvCLassesl <- trainCLasses[fotdl] > nrow(trainPredictors) [1] 167 > nrow(cvPredictorsl) [1] 151 На практике функции, рассмотренные в следующем разделе, могут использоваться для автоматического создания наборов данных с повторной выборкой, для обучения модели и для оценки ее эффективности. Базовый процесс построения модели в R Итак, получены тренировочный и тестовый наборы данных, что позволяет применить модель классификации с пятью ближайшими соседями (рис. 4.3) к тренировочным данным и использовать ее для прогнозирования тестового набора. R предлагает несколько функций для построения таких моделей: функция knn из пакета MASS, функция ipredknn из пакета ipred, функция кппЗ из пакета caret. Функция кппЗ может генерировать прогнозы классов, а также пропорции соседей в каждом классе. В R существуют две основные схемы задания моделей: интерфейс формул и «матричный» интерфейс. В первом случае предикторы перечисляются явно. Базовая формула R состоит из двух частей: в левой части указывается результат, а ее правая часть описывает, как используются предикторы. Обе части разделяются символом тильды (~). Например, следующая формула прогнозирует окончательную цену дома по трем количественным характеристикам: > modelFunction(price ~ numBedrooms + numBaths + acres, + data = housingData) Формула y~. означает, что в качестве предиктора должны использоваться все столбцы набора данных (за исключением у). В интерфейсе формул предусмотрено много удобных обозначений. Например, такие преобразования, как log(acres), могут задаваться во встроенном формате. К сожалению, информация в составе формул хранится в R недостаточно эффективно. Использование этого интерфейса с наборами данных, содержащими большое количество предикторов, может
112 Глава 4. Переобучение и настройка модели привести к излишнему замедлению вычислений. Матричный интерфейс задает предикторы для модели в формате матрицы или кадра данных (все предикторы в объекте используются в модели). Результат обычно передается модели в виде векторного объекта. Например: > modelFunction(x = housePredictors, у = price) Отметим, что не все функции R поддерживают оба интерфейса. Оценить модель 5 ближайших соседей для кппЗ можно следующим образом: > trainPredictors <- as.matrix(trainPredictors) > knnFit <- knn3(x = trainPredictors, у = trainclasses, к = 5) > knnFit 5-nearest neighbor classification model Call: knn3.matrix(x = trainPredictors, у = trainclasses, к = 5) Training set class distribution: Classi Class2 89 78 Теперь объект кппЗ готов к прогнозированию. Для добавления новых точек данных в классы используем метод predict с объектом модели. Стандартная схема выглядит так: > testPredictions <- predict(knnFit, newdata = testPredictors, + type = "class”) > head(testPredictions) [1] Class2 Class2 Classi Classi Class2 Class2 Levels: Classi Class2 > str(testPredictions) Factor w/ 2 levels "Classi","Class2": 2211222222 ... Значение аргумента type меняется в зависимости от моделирующей функции. Определение параметров настройки Для выбора параметров настройки с использованием повторной выборки прово- дится вариативная оценка значений-кандидатов (с использованием нескольких выборок). Для анализа связи между эффективностью и значениями параметров обычно строится профиль: в R имеется несколько подходящих функций и пакетов. Пакет е1071 содержит функцию tune, позволяющую оценить четыре типа моделей по набору параметров. Функция errorest из пакета ipred может выполнять повторную выборку в отдельных моделях. Функция train в пакете caret содержит
4.9. Вычисления 113 подмодели для 144 моделей, поддерживает разные методы повторной выборки, значения эффективности и алгоритмы для выбора лучшей модели из профиля. Функция позволяет выполнять параллельную обработку моделей с повторной выборкой (на нескольких компьютерах или процессорах). Остановимся подробнее на функции train. В разделе 4.6 продемонстрирована настройка параметров для машины опорных векторов с использованием данных оценки кредитоспособности. Значение параметра стоимости оценивается с применением повторной выборки. Как показано в дальнейших главах, модель SVM характеризуется типом ядерной функции, используемой моделью. Например, линейная ядерная функция задает линейную связь между предикторами и результатом. Для данных оценки кредитоспособности в качестве ядерной функции использовалась радиальная базисная функция (RBF, Radial Basis Function). С этой ядерной функцией связывается дополнительный параметр настройки о, влияющий на гладкость принятия решений. Обычно при использовании повторной выборки оцениваются несколько комбинаций обоих параметров настройки. Тем не менее в работе Капуто (Caputo et al., 2002) описана аналитическая формула, которая может использоваться для получения разумных оценок а. Функция train из пакета caret использует этот метод для оценки ядерного параметра, оставляя для настройки только одно значение стоимости. Чтобы настроить модель SVM с использованием тренировочного набора данных оценки кредитоспособности, можно воспользоваться функцией train. Предикторы тренировочного набора и результаты содержатся в кадре данных R с именем GermanCreditT rain. > library(caret) > data(GermanCredit) Каталог chapters пакета AppliedPredictiveModeling содержит код создания тренировочного и тестового наборов. Эти наборы содержатся в кадрах данных GermanCreditTrain и GermanCreditTest соответственно. Для моделирования результата будут использоваться все предикторы. Для этого воспользуемся интерфейсом с формулой Class ~. Классы хранятся в столбце кадра данных с именем class. Простейший вызов функции будет выглядеть так: > set.seed(1056) > svmFit <- train(Class ~ > data = GermanCreditTrain, > # Аргумент "method" обозначает тип модели. > # Для получения списка доступных моделей см. ?train. > method = "svmRadial") Требуется адаптировать вычисления, переопределяя некоторые значения по умолчанию. Выполним предварительную обработку данных предикторов — центриро-
114 Глава 4. Переобучение и настройка модели вание и масштабирование их значений. Для этого можно использовать аргумент preProc: > set.seed(1056) > svmFit <- train(Class ~ > data = GermanCreditTrain, > method = "svmRadial", > preProc = c("center", "scale”)) Для этой функции пользователь может задать и точные значения стоимости. Кроме того, функция содержит алгоритмы для определения оптимальных значений многих моделей. Посредством параметра tuneLength = 10 анализируются значения стоимости 2 2, 2 2... 27: > set.seed(1056) > svmFit <- train(Class ~ > data = GermanCreditTrain, > method = "svmRadial", > preProc = c("center", "scale"), > tuneLength = 10) По умолчанию для вычисления метрик эффективности используется базовая выборка с возвратом. Повторная десятикратная перекрестная проверка может быть задана функцией traincontrol. В этом случае итоговый синтаксис выглядит так: sures. Repeated 10-fold cross-validation can be specified with the traincontrol function. The final syntax is then > set.seed(1056) > svmFit <- train(Class ~ > data = GermanCreditTrain, > method = "svmRadial", > preProc = c("center", "scale"), > tuneLength = 10, > trControl = trainControl(method = "repeatedcv", > > > svmFit repeats = 5, classProbs = TRUE)) 800 samples 41 predictors 2 classes: 'Bad', 'Good' Pre-processing: centered, scaled Resampling: Cross-Validation (10-fold, repeated 5 times) Summary of sample sizes: 720, 720, 720, 720, 720, 720, ...
4.9. Вычисления 115 Resampling results across tuning parameters: с 0.25 Accuracy Карра Accuracy SD Kappa SD 0.7 0 0 0 0.5 0.724 0.141 0.0218 0.0752 1 0.75 0.326 0.0385 0.106 2 0.75 0.363 0.0404 0.0984 4 0.754 0.39 0.0359 0.0857 8 0.738 0.361 0.0404 0.0887 16 0.738 0.361 0.0458 0.1 32 0.732 0.35 0.043 0.0928 64 0.732 0.352 0.0453 0.0961 128 0.731 0.349 0.0451 0.0936 Tuning parameter 'sigma* was held constant < at a value of 0.0202 Accuracy was used to select the optimal model using the largest value. The final values used for the model wereC=4and sigma = 0.0202. В исходном анализе использовалось другое значение инициализации генератора случайных чисел и набор значений стоимости, поэтому результаты отчасти не совпадают с приведенными в разделе 4.6. Итоговая модель, использовавшая метод «выбора лучшего варианта», соответствовала всем 800 точкам данных тренировочного набора со значением о, равным 0,0202, и значением стоимости, равным 4. Для построения наглядного представления профиля эффективности можно воспользоваться методом plot. 2a_2 2A0 2Л2 2Л4 Стоимость 2Л6 Рис. 4.12. Наглядное представление профиля средней эффективности модели классификации SVM, построенное методом plot для класса train
116 Глава 4. Переобучение и настройка модели На рис. 4.12 показан пример визуализации, созданной для синтаксиса: > # A Line pLot of the average performance > pLot(svmFit, scaLes = List(x = List(Log =2))) Для прогнозирования новых точек данных с моделью вызывается метод predict: > predictedCLasses <- predict(svmFit, GermanCreditTest) > str(predictedCLasses) Factor w/ 2 levels "Bad"/’Good”: 1122122211... > # Use the "type" option to get cLass probabiLities > predictedProbs <- predict(svmFit, newdata = GermanCreditTest, + type = "prob") > head(predictedProbs) Bad Good 1 0.5351870 0.4648130 2 0.5084049 0.4915951 3 0.3377344 0.6622656 4 0.1092243 0.8907757 5 0.6024404 0.3975596 6 0.1339467 0.8660533 Есть и другие пакеты R, позволяющие оценить эффективность посредством повторной выборки. Функция validate из пакета Design и функция errorest из пакета ipred позволяют оценить эффективность модели с одним набором кандидатов для параметров настройки. Функция tune из пакета е1071 позволяет определять значения параметров с использованием повторной выборки. Сравнение моделей В разделе 4.6 модель SVM сравнивалась с моделью логистической регрессии. Хотя базовая логистическая регрессия не имеет параметров настройки, для характеристики эффективности модели допустимо воспользоваться повторной выборкой. Здесь вновь используется функция train, но с аргументом ”glm" (сокращение от «generalized linear model», то есть «обобщенная линейная модель»). При этом сохранена спецификация повторной выборки. Учитывая, что генератор случайных чисел инициализируется до моделирования, повторные выборки в точности совпадают с теми, которые используются в модели SVM. > set.seed(1056) > LogisticReg <- train(CLass ~ + data - GermanCreditTrain, + method = "gLm", + trControL = trainControL(method = "repeatedcv", + repeats =5))
4.9. Вычисления 117 > LogisticReg 800 samples 41 predictors 2 classes: ’Bad’, ’Good’ No pre-processing Resampling: Cross-Validation (10-fold, repeated 5 times) Summary of sample sizes: 720, 720, 720, 720, 720, 720, ... Resampling results Accuracy Kappa Accuracy SD Kappa SD 0.749 0.365 0.0516 0.122 Для сравнения моделей на основании статистик перекрестной выборки воспользуемся функцией resamples с моделями, использующими общее множество наборов данных с повторной выборкой. Поскольку генератор случайных чисел был инициализирован до отработки модели SVM и логической модели, для каждого набора данных представлены парные значения точности. Сначала на базе моделей создается объект resamples: > resamp <- re samp Les(List(SVM = svmFit, Logistic = LogisticReg)) > summary(resamp) Call: summary.resamples(object = resamp) Models: SVM, Logistic Number of resamples: 50 Accuracy Min. 1st Qu. Median Mean 3rd Qu. Max. NA's SVM 0.6500 0.7375 0.7500 0.754 0.7625 0.85 0 Logistic 0.6125 0.7250 0.7562 0.749 0.7844 0.85 0 Kappa Min. 1st Qu. Median Mean 3rd Qu. Max. NA's SVM 0.18920 0.3519 0.3902 0.3897 0.4252 0.5946 0 Logistic 0.07534 0.2831 0.3750 0.3648 0.4504 0.6250 0 Как видим, показатели распределения эффективности сходны. Столбец NA представляет возможные сбои моделей (обычно из-за вычислительных проблем) с повторной выборкой. Класс resamples содержит несколько методов визуализации парных значений (список типов диаграмм см. ?xyplot. resamples). Для оценки возможных различий между моделями используется метод dif f: > modeLDifferences <- diff(resamp) > summary(modeLDifferences) Call: summary.diff.resamples(object = modelDifferences)
118 Глава 4. Переобучение и настройка модели p-value adjustment: bonferroni Upper diagonal: estimates of the difference Lower diagonal: p-value for H0: difference = 0 Accuracy SVM Logistic SVM 0.005 Logistic 0.5921 Kappa SVM Logistic SVM 0.02498 Logistic 0.2687 P-значения для сравнений модели велики (0,592 для точности и 0,269 для каппа- статистики). Вывод — модели не проявляют различий в эффективности. Упражнения 4.1. Обратитесь к набору данных музыкальных жанров (раздел 1.4), где предикторы должны использоваться для классификации фрагментов по жанрам. А. Какие методы разделения данных вы бы использовали? Объясните свой выбор. Б. Используя инструменты, описанные в этой главе, приведите код реализации своего решения. 4.2. Рассмотрите набор данных проницаемости (раздел 1.4), где предикторы должны использоваться для моделирования проницаемости химических веществ. А. Какие методы разделения данных вы бы использовали? Объясните свой выбор. Б. Используя инструменты, описанные в этой главе, приведите код реализации своего решения. 4.3. Метод частных наименьших квадратов (раздел 6.3) использовался для моделирования результативности химического производства (раздел 1.4). Данные находятся в пакете AppliedPredictiveModeling, для их загрузки можно воспользоваться командами: > Library(АррLiedPredictiveModeLing) > data(ChemicaLManufacturingProcess) Цель анализа — нахождение количества компонентов PLS, обеспечивающих оптимальное значение R2 (раздел 5.1). Модели PLS с количеством компонентов от 1 до 10 были оценены с пятью повторениями посредством десятикратной перекрестной проверки (табл. 4.2).
Упражнения 119 Таблица 4.2. Результаты оценки модели PLS Повторная выборка R2 Компонента Мат. ожидание Стандартная погрешность 1 0,444 0,0272 2 0,500 0,0298 3 0,533 0,0302 4 0,545 0,0308 5 0,542 0,0322 6 0,537 0,0327 7 0,534 0,0333 8 0,534 0,0330 9 0,520 0,0326 10 0,507 0,0324 A. Какое количество компонентов PLS обеспечивает самую простую модель при использовании метода одной стандартной погрешности? Б. Вычислите значение допуска для этого примера. Каким будет оптимальное количество компонентов PLS при потерях в R2 не более 10 %? B. Были опробованы несколько других моделей (см. часть II) различной сложности (см. рис. 4.13). Какую модель(-и) вы бы выбрали для оптимизации R2 и почему? Г. При выборе оптимальной модели(-ей) должно, кроме прочего, учитываться время прогнозирования и сложность модели (раздел 4.8). Какую модель(-и) вы бы выбрали с учетом времени прогнозирования каждой модели, ее сложности и оценок R2 и почему? 4.4. В работе Бродняка—Вонины (Brodnjak—Vonina et al., 2005) представлена методология определения типа масла в пробах для лабораторий продовольственных исследований с применением газового хроматографа (инструмента, выделяющего отдельные химические составляющие в образце) для измерения уровней семи жирных кислот в маслах. Результаты измерений используются для прогнозирования типа масла в пробах продуктов питания. Для создания модели использовались 96 образцов1 семи типов масел. Вы найдете эти данные в пакете caret командой data (oil). Типы масел содержатся в факторной переменной с именем oilType: тыквенное (А), подсолнечное (В), По утверждению авторов, в их распоряжении было 95 образцов известных масел. Однако мы насчитали 96 образцов в их таблице 1 (с. 33-35 оригинальной статьи).
120 Глава 4. Переобучение и настройка модели арахисовое (С), оливковое (D), соевое (Е), рапсовое (F) и кукурузное (G.) В R это выглядит так: > data(oiL) > str(oiLType) Factor w/ 7 levels "A", "В", ”CV'D",..: 1111111111 ... > tabLe(oiLType) oilType А В C D E F G 37 26 3 7 11 10 2 A. Используйте функцию sample из базового R для создания полностью случайной выборки проб 60 масел. Насколько близко частоты случайной выборки соответствуют частотам исходных выборок? Повторите эту процедуру несколько раз, чтобы понять разброс в процессе выборки. Б. Используйте функцию createDataPartition из пакета caret для создания расслоенной случайной выборки. Как она выглядит на фоне полностью случайной выборки? B. Какие варианты определения эффективности модели доступны при столь малом размере выборки? Следует ли использовать тестовый набор? Г. Для понимания неопределенности тестового набора можно воспользоваться доверительным интервалом. Чтобы получить доверительный интервал для общей точности, воспользуйтесь функцией R binom.test. Для вычисления интервала требуется ввести количество точек данных и число правильно классифицированных точек. Например, зарезервирован тестовый набор из 20 проб масла, а 76 проб использованы для тренировки модели. Для этого размера тестового набора и модели, имеющей точность 80 % (16 правильных классификаций из 20), доверительный интервал будет вычисляться следующим образом: > binom^testfiej 20) Exact binomial test data: 16 and 20 number of successes = 16, number of trials = 20, p-value = 0.01182 alternative hypothesis: true probability of success is not equal to 0.5 95 percent confidence interval: 0.563386 0.942666 sample estimates: probability of success 0.8 В данном случае ширина 95 %-го доверительного интервала составляет 37,9 %. Поэкспериментируйте с разными размерами выборки и степенями точности, чтобы понять суть компромиссов между неопределенностью результатов, эффективностью модели и размером тестового набора.
Часть II РЕГРЕССИОННЫЕ МОДЕЛИ
Измерение эффективности регрессионных моделей Оценка эффективности моделей, прогнозирующих числовой результат, обычно определяется с использованием определенных значений точности. Существует множество способов измерения точности, у каждого из которых есть свои нюансы. Для лучшего понимания плюсов и минусов конкретной модели не следует полагаться только на один показатель, характеризующий ее эффективность. Так, важная роль в определении пригодности модели для решения той или иной задачи отводится графикам. Соответствующие методы и будут рассмотрены в этой главе. 5.1. Количественные показатели эффективности Если результат представляет собой число, то для оценки предиктивных возможностей модели вполне применим такой показатель, как среднеквадратичная погрешность (RMSE, Root Mean Squared Error), представляющая функцию остатков модели (разностей между наблюдаемыми значениями и предсказаниями модели). Для вычисления значения MSE (Mean Squared Error) остатки возводятся в квадрат, после чего суммируются и делятся на количество выборок. Чтобы получить среднеквадратичную погрешность, из MSE извлекается квадратный корень. Полученное значение обычно интерпретируется либо как среднее удаление остатков от нуля, либо как средняя разница между фактическими и прогнозируемыми значениями. Другой часто применяемый показатель — коэффициент детерминации, обычно записываемый в виде Л2. Это значение может интерпретироваться как часть информации данных, объясняемая моделью. Так, значение 7?2, равное 0,75, указывает, что модель может объяснить три четверти дисперсии результатов. Существует ряд формул для вычисления этого показателя, например, из числа предложенных Квэлсетом (KvMseth, 1985), хотя простейшая версия находит коэффициент корре-
5.1. Количественные показатели эффективности 123 ляции между наблюдаемыми и прогнозируемыми значениями (который обычно обозначается R) и возводит его в квадрат. Хотя эта статистика легко интерпретируется, следует помнить, что R2 является показателем корреляции, а не точности. На рис. 5.1 представлен пример, в котором метрика R2 между наблюдаемыми и прогнозируемыми значениями достаточно высока (51 %), но модель склонна завышать прогнозы для низких значений и занижать их для высоких. Этот феномен типичен для некоторых древовидных регрессионных моделей (см. главу 8). В зависимости от контекста это систематическое смещение в прогнозах может быть приемлемым, если в остальном модель работает удовлетворительно. -10 -5 0 Наблюдаемое значение Рис. 5.1. Диаграмма наблюдаемых и прогнозируемых результатов, где значение R2 является умеренным (51 %), но прогнозы не обладают однородной точностью. Пунктирная контрольная линия показывает, где наблюдаемые и прогнозируемые значения были бы равны Важно понимать, что R2 зависит от разброса результатов. Следует также помнить, что знаменатель вычисляется с использованием дисперсии результата. Например, результат тестового набора имеет дисперсию 4,2. Если среднеквадратичная погрешность предиктивной модели равна единице, то значение R2 составит приблизительно 76 %. Если имеется другой тестовый набор с точно такой же среднеквадратичной погрешностью, но с менее разнообразными результатами, то оценка ухудшится: например, при значении дисперсии тестового набора, равном трем, R2 составит 67 %.
124 Глава 5. Измерение эффективности регрессионных моделей С практической точки зрения такая зависимость от дисперсии заметно влияет на то, как следует рассматривать модель. Например, формируется модель для прогнозирования стоимости продажи домов с использованием таких предикторов, как характеристики дома (площадь, количество спален, количество туалетов), а также его размера и местонахождения. Если диапазон цен в тестовом наборе был широким (скажем, от 60 000 до $2 000 000), то и дисперсия цены продажи будет значительной. Так, для модели с 7?2, равным 90 %, среднеквадратичная погрешность составит десятки тысяч долларов, что неприемлемо для людей, продающих дома по цене, близкой к нижней границе стоимостного диапазона. В некоторых случаях модель создается для ранжирования новых точек данных. Так, фармацевтам сначала приходится анализировать большое количество веществ (см. один из примеров раздела 1.4), после чего продолжать исследования только тех, что, согласно прогнозам, считаются наиболее биологически активными. Здесь основное внимание уделяется способности модели к ранжированию, а не ее предиктивной точности. В такой ситуации определение ранговой корреляции между наблюдаемыми и прогнозируемыми значениями может быть более подходящим оценочным показателем. Ранговая корреляция использует ранги наблюдаемых результатов (вместо их фактических значений) и оценивает, насколько они близки к рангам прогнозов модели. Для вычисления этого значения получаются ранги наблюдаемых и прогнозируемых результатов, между которыми вычисляется коэффициент корреляции. Этот показатель известен как ранговая корреляция Спирмена (Spearman’s rank correlation). 5.2. Обратное отношение между смещением и дисперсией Значение MSE можно разложить на несколько составляющих. Формально значение MSE модели равно где г/. — результат, а г/. — прогноз результата этой точки данных. Если предположить, что точки данных статистически независимы, а остатки имеют теоретическое среднее значение 0 и постоянную дисперсию о2, то E[MSE] = ст2 + (Смещение модели)2 + Дисперсия модели, (5.1) где Е — ожидаемое значение. Первая часть (о2) обычно называется «неснижаемым шумом» и не может быть устранена посредством моделирования. Второе слагаемое равно квадрату смещения
5.2. Обратное отношение между смещением и дисперсией 125 модели. Оно показывает, насколько близко функциональная форма модели может отражать фактическую зависимость между предикторами и результатом. Последнее слагаемое равно дисперсии модели. На рис. 5.2 изображены особые случаи моделей с высоким смещением или высокой дисперсией. 1,5 1,0 н 0,5 ш 5 5. о-0 со ф -0,5 -1,0 -1,5 4 6 8 10 Предиктор Рис. 5.2. Два варианта аппроксимации синусоиды. Горизонтальная линия прогнозирует данные по простому среднему значению первой и второй половины данных. Кривая вычисляется методом трехточечного скользящего среднего Данные представляют смоделированную синусоиду. Аппроксимация модели, отмеченная горизонтальной чертой, делит данные пополам и прогнозирует каждую половину простым средним значением. Модель обладает низкой дисперсией, поскольку не подвержена существенным изменениям при генерировании другого набора точек данных тем же способом. Тем не менее она неэффективна для моделирования данных из-за своей упрощенности, и, как следствие, обладает высоким смещением. Кривая представляет трехточечное скользящее среднее. Если она обладает достаточной гибкостью для моделирования синусоиды (то есть низкого смещения), то даже незначительные колебания данных приведут к значительному изменению обучения модели. По этой причине модель обладает высокой дисперсией. Как правило, более сложные модели могут иметь очень высокую дисперсию, что приводит к переобучению. С другой стороны, простые модели склонны не к переобучению, а к недообучению, не обеспечивая достаточной гибкости для моделирования. Предикторы с высокой корреляцией также могут приводить к проблемам коллинеарности, что чревато усилением дисперсии модели. Далее будут рассматриваться модели, которые могут повышать смещение для значительного сокращения дисперсии с целью преодоления проблемы коллинеарности, или разрешения так называемой дилеммы дисперсии. Это называется дилеммой смещения-дисперсии (variance-bias trade-off).
126 Глава 5. Измерение эффективности регрессионных моделей 5.3. Вычисления Ниже упоминаются функции из пакета caret. Для вычисления эффективности модели наблюдаемые и прогнозируемые результаты должны храниться в векторах. Для применения регрессии векторы должны быть числовыми. Например, два вектора создаются вручную для демонстрации методологии (на практике вектор прогнозов будет создаваться функцией модели) следующим образом: > # Функция ’с' используется для объединения чисел в вектор. > observed <- с(0.22, 0.83, -0.12, 0.89, -0.23, -1.30, -0.15, -1.4, + 0.62, 0.99, -0.18, 0.32, 0.34, -0.30, 0.04, -0.87, + 0.55, -1.30, -1.15, 0.20) > predicted <- с(0.24, 0.78, -0.66, 0.53, 0.70, -0.75, -0.41, -0.43, + 0.49, 0.79, -1.19, 0.06, 0.75, -0.07, 0.43, -0.42, + -0.25, -0.64, -1.26, -0.07) > residuaLVaiues <- observed - predicted > summary(residuaLVaiues) Min. 1st Qu. Median Mean 3rd Qu. Max. -0.9700 -0.4200 0.0800 -0.0310 0.2625 1.0100 Для оценки качества модели важно наглядное представление результатов. Сначала диаграмма наблюдаемых и прогнозируемых значений помогает понять, насколько хорошо модель аппроксимирует данные. Диаграмма остатков и прогнозируемых значений помогает выявить систематические закономерности в прогнозах модели (см. рис. 5.1). о о ю о’' £ (О о V Q. I с ю о ■ о -1,5 -1,0 -0,5 0,0 0,5 1,0 Наблюдаемые значения -1,0 -0,5 0,0 0,5 Прогнозируемые значения Рис. 5.3. Слева: наблюдаемые и прогнозируемые значения. Справа: остатки и прогнозируемые значения
5.3. Вычисления 127 Для построения диаграмм (рис. 5.3) использовались команды: > # Наблюдаемые и прогнозируемые значения. > # Желательно отображать значения на общей шкале масштаба. > axisRange <- extendrange(c(observed, predicted)) > plot(observed, predicted, + ylim = axisRange, + xlim = axisRange) > # Добавляем ориентировочную линию под углом 45 градусов. > abline(0, 1, col = ’’darkgrey", lty = 2) > # Прогнозируемые значения и остатки. > plot(predicted, residualvalues, ylab = "residual") > abline(h = 0, col = "darkgrey", lty = 2) Пакет caret содержит функции для вычисления среднеквадратичной погрешности и значения R2: > R2(predicted, observed) [1] 0.5170123 > RMSE( predicted, observed) [1] 0.5234883 Существуют разные формулы для R2; соответствующий обзор приведен у Квалсета (KvSlseth, 1985). По умолчанию функция R2 использует квадрат коэффициента корреляции. В базовый пакет R входит функция для вычисления корреляции, включая ранговую корреляцию Спирмена. > # Простая корреляция > cor(predicted, observed) [1] 0.7190357 > # Ранговая корреляция > cor(predicted, observed, method = "spearman") [1] 0.7554552
Модели с признаками линейной регрессии В этой главе рассматриваются некоторые модели, обладающие признаками линейной регрессии, то есть модели, которые могут быть выражены в следующем общем виде: Vi = b0 + + Ьра + - + bPxiP + ер (6.1) где г/, представляет числовую реакцию на z-ю точку данных, bQ — оценку пересечения с осью, Ь} — оценку коэффициента дляу-го предиктора, х~ — значениеу-го предиктора для z-й точки, е. — случайную ошибку. Подобные модели линейны по своим параметрам. Кроме обычной линейной регрессии, к моделям этого же типа относятся модели частных наименьших квадратов (PLS) и так называемые штрафные модели: гребневая регрессия, лассо и эластичная сеть. Каждая из этих моделей стремится найти оценки параметров, минимизирующие сумму квадратов погрешностей или функцию суммы квадратов погрешностей. Ранее, в разделе 5.2, показано, что значение MSE может быть разделено на составляющие: неустранимое искажение, смещение и дисперсию модели. Методы, представленные в этой главе, позволяют отыскивать оценки параметров, лежащие в диапазоне обратного отношения между смещением и дисперсией. На одном полюсе этого диапазона находится обычная линейная регрессия, выявляющая оценки параметров с минимальным смещением, а на противоположном — гребневая регрессия, лассо и эластичная сеть, выявляющие оценки с минимальной дисперсией (о влиянии обратного отношения на предиктивную способность моделей см. далее). Отличительная черта моделей, имеющих вид (6.1), — высокая интерпретируемость. Например, если оцененный коэффициент предиктора равен 2,5, то увеличение значения этого предиктора на 1 в среднем повысит реакцию на 2,5. Кроме того, оценки коэффициентов способствуют дальнейшей интерпретации связей между предикторами. Другая отличительная черта — в том, что эти модели позволяют вычислять стандартные погрешности их коэффициентов (при условии некоторых допущений относительно распределения остатков модели). Стандартные погрешности могут
6.1. Практикум 129 использоваться для оценок статистической значимости каждого предиктора в составе модели. Это логическое представление может обеспечить лучшее понимание модели — при условии распределения ее остатков в пределах допустимого. Линейно-регрессивные модели характеризуются высокой интерпретируемостью, но их применение оправданно, когда связь между предикторами и реакцией лежит в гиперплоскости. Например, если данные имеют только один предиктор, то использование модели уместно при условии, что между предиктором и реакцией усматривается прямая зависимость. При большем количестве предикторов связь должна проходить достаточно близко к гиперплоскости. Если же связь между предикторами и реакцией нелинейна (например, квадратичная, кубическая и т. д.), то модели линейной регрессии могут быть дополнены новыми предикторами, являющимися функциями исходных предикторов. Стратегии применения дополнительных исходных предикторов подробнее рассматриваются ниже. Так или иначе, линейно-регрессивные модели не способны адекватно отразить нелинейные связи между предикторами и реакциями. Для этого более пригодны методы, описанные в главах 7 и 8. 6.1. Практикум: моделирование количественного соотношения «структура—активность» Химические вещества, в том числе лекарства, могут обозначаться химическими формулами. Например, на рис. 6.1 изображена молекула аспирина, содержащая девять атомов углерода, восемь атомов водорода и четыре атома кислорода. Рис. 6.1. Изображение молекулы аспирина, состоящей из атомов углерода (черные шарики), водорода (белые шарики) и кислорода (серые шарики). Химическая формула этой модели имеет вид o=C(OclccccclC(=0)0)C; из нее могут быть выведены молекулярные дескрипторы, например молекулярная масса 180,2 г/моль
130 Глава 6. Модели с признаками линейной регрессии Конфигурация позволяет определить некоторые количественные значения — молекулярную массу, электрический заряд или площадь поверхности. Подобные значения именуются химическими дескрипторами, причем из химической формулы может быть выведено значительное число дескрипторов. Одни из них тривиальны (например, число атомов углерода), другие понятны только посвященным (например, сумма коэффициентов последнего собственного вектора из матрицы Бариша (Barysz), взвешенной по объему Ван-дер-Ваальса). Некоторые характеристики молекул невозможно определить аналитически по их химической структуре. Например, один из признаков вещества, имеющий неоспоримую ценность для практической медицины, — способность к подавлению выработки конкретного белка (то, что принято называть биологической активностью вещества). Связь между химической структурой и активностью может быть достаточно сложной и, как правило, выявляется эмпирически, посредством экспериментов. Один из способов основан на создании экспериментальных биологических проб, например белка. В биологическую пробу вводится набор химических веществ, после чего измеряется их активность (ее рост или снижение). На основании информации об активности генерируются данные, используемые далее как тренировочный набор для предиктивного моделирования активности веществ, которые, возможно, еще даже не существуют. Этот процесс называется моделированием количественного соотношения «структура—активность», или (ЛОДЯ-моделированием (Quantitative Structure—Activity Relationship). Отметим, что у Лича и Гилле (Leach and Gillet, 2003) дано обстоятельное введение в QSAR-моделирование и молекулярные дескрипторы. Активность — важное качество, но для определения у вещества «сходства с лекарством», следуя Липински (Lipinski et al., 1997), необходимо оценить и другие его характеристики, включая такие физические качества, как растворимость или липофильность (то есть «сродство к жирам»), токсичность и т. д. Растворимость вещества чрезвычайно важна, если предполагается, что создаваемый препарат должен вводиться орально или посредством инъекций. Рассмотрим некоторые методы регрессионного моделирования, прогнозируя растворимость на основании структур химических веществ. В работах Тетко (Tetko et al., 2001) и Хуусконена (Huuskonen, 2000) анализируется набор веществ с соответствующими экспериментальными значениями растворимости на основании сложных наборов дескрипторов. Для этого использовались модели линейной регрессии и нейросетей для оценки связей между химической структурой и растворимостью. В рассматриваемом примере используются 1267 веществ и набор дескрипторов, относящихся к одной из трех категорий: О 208 бинарных признаков, обозначающих наличие или отсутствие конкретной химической субструктуры; О 16 счетных дескрипторов (например, отражающих количество химических связей или атомов брома);
6.1. Практикум 131 О 4 непрерывных дескриптора (например, молекулярная масса или площадь поверхности). Дескрипторы преимущественно не коррелированы, однако многие пары демонстрируют сильную положительную корреляцию: так, у 47 пар корреляция превышает 0,90. В некоторых случаях наличие корреляций между дескрипторами ожидаемо. Например, в данных растворимости площадь поверхности вещества вычисляется для областей, связанных с атомами азота или кислорода. Один дескриптор измеряет площадь поверхности, связанную с двумя конкретными элементами, другой использует, помимо названных элементов, еще два. С учетом полученных результатов следует ожидать, что два предиктора площади поверхности будут коррелированы, при этом для 87 % веществ дескрипторы идентичны. Небольшое различие между предикторами площади поверхности может содержать важную информацию для прогнозирования, но разработчик должен понимать, что избыточность в модели может иметь и отрицательные последствия. Еще одно важное качество предикторов растворимости — значительное смещение вправо у счетных дескрипторов, что также может повлиять на некоторые модели (см. главу 3). Результаты измерялись по шкале log10 в диапазоне от -11,6 до 1,6 со средним логарифмическим значением растворимости -2,7. На рис. 6.2 показана связь между значениями растворимости, полученными экспериментальным путем, и двумя типами дескрипторов из примера. а б 0 0 О) о л Б 2 -5 X 5 1 ’5 2 Б S Б £ £ -10 200 400 600 -10 Молекулярная масса структура отсутствует структура присутствует Рис 6.2. Связь между растворимостью и двумя дескрипторами. Слева: с ростом молекулярной массы молекулы растворимость обычно снижается. Связь обычно имеет приближенно логарифмически-линейную природу, за исключением нескольких компонент с низкой растворимостью и большим весом и растворимостью в диапазоне от 0 до -5. Справа: для конкретного дескриптора бинарного признака при отсутствии в молекулах интересующей субструктуры наблюдается чуть более высокая растворимость
132 Глава 6. Модели с признаками линейной регрессии Данные разделены методом случайной выборки на тренировочный набор (п = 951) и тестовый набор (п = 316). Тренировочный набор использован для настройки и оценки моделей, а также для определения исходных оценок эффективности с применением повторной десятикратной перекрестной проверки, тестовый набор — для окончательного описания моделей. Для лучшего понимания характеристик данных тренировочный набор целесообразно исследовать до начала моделирования. Вспомним, что 208 предикторов обладают бинарными признаками. Поскольку эти переменные принимают только два значения, их предварительная обработка ничего существенного не даст. Далее можно оценить подверженность непрерывных предикторов смещению. Среднее значение смещения — 1,6 (с минимумом 0,7 и максимумом 3,8), что указывает на склонность предикторов к смещению вправо. Для корректировки смещения ко всем предикторам применено преобразование Бокса—Кокса (то есть параметр преобразования по оценке не был близок к какому-либо из непрерывных предикторов). Но если мы используем преобразованные предикторы, то какова вероятность того, что связь между предикторами и результатом линейна? На рис. 6.3 показаны графики разброса предикторов относительно результата с линией регрессии из гибкой и сглаженной модели (по Кливленду — модель LOESS1 (Cleveland, 1979)). Сглаженные линии регрессии указывают на наличие линейных связей между предикторами и результатом (например, молекулярной массой) и нелинейными связями (например, количеством точек начала или хлоринами). С учетом этого обстоятельства следует рассмотреть возможность дополнения набора предикторов квадратичными слагаемыми для некоторых переменных. Существуют ли значимые корреляции между предикторами? В поисках ответа применим анализ главных компонент (РСА) к полному набору преобразованных предикторов, определив процент дисперсии, объясненный каждой компонентой. На рис. 6.4 представлен график, который называется графиком каменистой осыпи, отображающий покомпонентный профиль дисперсии. Обратим внимание на то, что ни один компонент не объясняет более 13 % дисперсии. Профиль показывает, что структура данных содержится в гораздо меньшем количестве измерений исходного пространства, что обычно связано с большим числом коллинеарностей между предикторами. На рис. 6.5 показана структура корреляций между преобразованными непрерывными предикторами с отображением множества сильных положительных корреляций (обозначены большими темно-синими кругами). Как упоминалось, это может затруднить формирование некоторых моделей (например, линейной регрессии), в связи с чем и требуется предварительная обработка. 1 LOESS — метод локальных полиномиальных регрессий (от англ. Local regressions). — При- меч. ред.
6.1. Практикум 133 Рис. 6.3. Диаграммы разброса преобразованных непрерывных предикторов в наборе данных растворимости. Красная линия обозначает сглаживающую функцию диаграммы
134 Глава 6. Модели с признаками линейной регрессии Накапливаемый процент дисперсии ю 5 0 0 50 100 150 200 Компоненты Рис. 6.4. График каменистой осыпи для анализа РСА предикторов растворимости 0,8 0,6 0,4 0,2 о -0,2 -0,4 -0,6 -0,8 -1 Рис. 6.5. Корреляции между преобразованными непрерывными предикторами растворимости
6.2. Линейная регрессия 135 6.2. Линейная регрессия Целью линейной регрессии по методу наименьших квадратов является нахождение плоскости, минимизирующей сумму квадратов погрешностей (SSE) между наблюдаемой и прогнозируемой реакцией: 55Я = £(г/!.-р;)2, 1=1 где г/, — результат, а у. — прогноз результата для этой точки данных. Математически оптимальная плоскость описывается формулой (Х'ХУХ'у, (6.2) где X — матрица предикторов, а г/ — вектор реакции. Формула (6.2) встречается в работах по статистике под обозначением р; это — вектор, содержащий оценки параметров коэффициентов для каждого предиктора. Выражение (6.2) легко вычисляется, а его коэффициенты можно интерпретировать напрямую. Весьма вероятно, что оценки параметров, минимизирующие SSE, являются оценками с наименьшим смещением всех возможных оценок параметров по Грейбиллу (Graybill, 1976). Следовательно, эти оценки минимизируют составляющие смещения в обратном отношении между смещением и дисперсией. Интерпретируемость коэффициентов превращает эту модель в весьма привлекательный инструмент моделирования. Но характеристики, обеспечивающие ее интерпретируемость, одновременно повышают уязвимость модели для неустранимых дефектов. Обратите внимание: в формулу (6.2) встроена составляющая (X7 X) 1, пропорциональная ковариационной матрице предикторов. Уникальная матрица, обратная исходной, существует, если, во-первых, ни один предиктор не может быть определен комбинацией других предикторов и, во-вторых, количество точек данных превышает количество предикторов. Если данные не удовлетворяют хотя бы одному из этих критериев, то уникальный набор коэффициентов регрессии не существует. Тем не менее для данных, нарушающих первое из вышеназванных условий, можно получить уникальный набор спрогнозированных значений — посредством замены (X7 X) 1 условной обратной матрицей (Graybill, 1976) либо удалением коллинеарных предикторов. По умолчанию, если при аппроксимации линейной модели в R между предикторами существует коллинеарность, то, согласно Фарауэю, «...R аппроксимирует наибольшую идентифицируемую модель, удаляя переменные в порядке, обратном порядку их следования в формуле модели» (Faraway, 2005). Следовательно, линейная регрессия применима для прогнозирования и в тех случаях, когда данным присуща коллинеарность. Но поскольку коэффициенты регрессии для определения этих прогнозов не уникальны, их осмысленная интерпретация едва ли возможна.
136 Глава 6. Модели с признаками линейной регрессии Если второе из вышеназванных условий выполняется для набора данных, то можно попытаться построить регрессионную модель. Применение методов предварительной обработки (см. раздел 3.3) целесообразно для удаления попарно коррелированных предикторов, что приведет к сокращению их общего количества. Однако на этом этапе предварительной обработки коллинеарность неустранима полностью, поскольку один или несколько предикторов могут быть функциями двух (и более) других предикторов. Для диагностирования мультиколлинеарности в контексте линейной регрессии можно применить предложенный Майерсом фактор, увеличивающий дисперсию (Myers, 1994). Вычисления, выполняемые для каждого предиктора, представляют функцию корреляции между выбранным и всеми остальными предикторами. Если и после предварительной обработки данных количество предикторов превышает количество наблюдений, то для сокращения размерности пространства предикторов выполняется предварительная обработка РСА (см. раздел 3.3) и сокращение размерности одновременно с регрессией средствами PLS или применяются методы, снижающие оценки параметров (гребневая регрессия, лассо или эластичная сеть). Другой недостаток множественной линейной регрессии — линейность решения по всем параметрам. Это означает, что полученное решение локализуется в пределах уплощенного, однородного участка гиперплоскости. Если бы данные имели криволинейную или нелинейную структуру, то регрессия бы не смогла выявить эти характеристики. Чтобы понять, является ли связь между предикторами и реакцией нелинейной, применим анализ базовых диагностических диаграмм (см. рис. 5.3). Криволинейность на графике прогнозов и остатков — главный признак того, что исследуемая связь нелинейна. Квадратичные, кубические зависимости или взаимодействия между предикторами могут быть отражены в регрессии посредством добавления квадратичных либо кубических составляющих или взаимодействий между исходными предикторами. Но чем больше количество исходных предикторов, тем менее оправданно учитывать все или некоторые из этих составляющих. В результате может оказаться, что матрица данных содержит больше предикторов, чем наблюдений, из-за чего матрицу не удастся инвертировать. Если между предиктором и реакцией существуют легко выявляемые нелинейные связи, то в матрицу дескрипторов могут быть добавлены соответствующие дополнительные предикторы. Если же идентифицировать эти связи невозможно или связи между предикторами и реакцией отличаются неординарно высокой нелинейностью, то отыскание требуемой структуры возможно посредством более сложных методов — например, из числа описанных в главе 7. Третья существенная проблема множественной линейной регрессии — в том, что она склонна уделять слишком много внимания наблюдениям, выпадающим из общей тенденции, характерной для большинства данных. Напомним, что линей-
6.2. Линейная регрессия 137 ная регрессия стремится найти оценки параметров, минимизирующие SSE; таким образом, наблюдения, лежащие далеко от основного потока данных, будут иметь экспоненциально большие остатки. Чтобы минимизировать SSE, линейная регрессия скорректирует оценки параметров так, чтобы они лучше соответствовали этим аномальным наблюдениям. Наблюдения, вызывающие значимые изменения оценок параметров, называются влиятельными. Для преодоления вышеописанных проблем разработана теория устойчивой регрессии. Один из стандартных методов заключается в использовании вместо SSE альтернативного значения, менее чувствительного к большим выбросам, — например, через поиск оценок параметров, минимизирующих сумму абсолютных погрешностей (рис. 6.6). о -4 -2 0 2 4 Остатки Рис. 6.6. Связь между остатками модели и ее вкладом в целевую функцию для нескольких методов. Для метода Губера был использован порог 2 Функция Губера использует квадраты остатков, когда они малы, а простую разность между наблюдаемыми и прогнозируемыми значениями — если остатки превышают заданный порог. Такой метод может эффективно минимизировать влияние наблюдений, заметно отклоняющихся от общей тенденции в данных.
138 Глава 6. Модели с признаками линейной регрессии У множественной линейной регрессии нет параметров настройки. Впрочем, это не препятствует применению формальных методов проверки модели, особенно при использовании этой модели для прогнозирования. Так, методы тренировки и проверки, описанные в главе 4, могут быть пригодны для понимания предиктивной способности модели применительно к данным, с которыми она еще не взаимодействовала. Вышеизложенное следует учесть при использовании методов повторной выборки (таких, как выборка с возвратом или перекрестная проверка). Например, для набора данных из 100 точек данных и 75 предикторов найти уникальный набор коэффициентов регрессии посредством повторной выборки, использующей 2/3 данных для тренировки, не удастся, потому что количество предикторов в тренировочном наборе будет превышать количество точек данных. Следовательно, при применении множественной линейной регрессии необходимо учитывать особенности ее работы как с исходным набором данных, так и с подмножествами данных, созданными в ходе тренировки и оценки модели. Для демонстрации проблемы коррелированных предикторов была выполнена аппроксимация линейных моделей с комбинациями дескрипторов, имеющих отношение к количеству неводородных атомов и количеству неводородных связей. В тренировочном наборе эти предикторы обладают высокой корреляцией (0,994). На рис. 6.3 показана их связь с результатом — практически полная идентичность. Сначала выполнена аппроксимация двух разных регрессионных моделей с отдельными составляющими, а затем — третьей модели с обеими составляющими. Перед моделированием было выполнено центрирование и масштабирование предикторов. В табл. 6.1 приведены коэффициенты регрессии, а в круглых скобках — их стандартные погрешности. Таблица 6.1. Коэффициенты регрессии двух предикторов с высокой корреляцией для четырех моделей Модель NumNonHAtoms NumNonHBonds Только NumNonH Atoms -1,2 (0,1) Только NumNonH Bonds -1,2 (0,1) Оба -0,3 (0,5) -0,9 (0,5) Все предикторы 8,2 (1,4) -9,1 (1,6) Для отдельных моделей коэффициенты регрессии практически идентичны, как изображенные стандартные погрешности. Тем не менее при аппроксимации модели с обеими составляющими результаты оказались разными; наклон, обусловленный количеством неводородных атомов, значительно уменьшается. Значения погреш-
6.2. Линейная регрессия 139 ности, в зависимости от модели, могут различаться в пять раз, что подтверждает нестабильность линейной регрессии, обусловленную связями между предикторами и оказывающую влияние на прогнозы модели. В табл. 6.1 также приведены коэффициенты, учитывающие включение в модель всех дескрипторов. Обилие коллинеарных предикторов (см. рис. 6.5) приводит к усилению эффекта коллинеарности, из-за чего их значения сильно искажаются, а погрешность в 14-16 раз превышает стандартные погрешности отдельных моделей. На практике проблему высокой корреляции предикторов можно решить исключением одного из предикторов-«нарушителей». Но при большем количестве предикторов, усилении их взаимовлияния задача усложняется, из-за чего удаление предикторов может оказаться невозможным. В этой связи имеет смысл обратиться к моделям, нивелирующим влияние коллинеарности. Линейная регрессия для данных растворимости Вспомним, что в разделе 6.1 при разделении данных растворимости на тренировочный и тестовый наборы для устранения смещения к непрерывным предикторам применено преобразование Бокса—Кокса. Следующий шаг процесса построения модели для линейной регрессии — выявление предикторов, обладающих высокой взаимной корреляцией, с последующим удалением части из них (во избежание превышения заданных уровней абсолютной взаимной корреляции). В рассматриваемом ранее примере (см. раздел 3.3) решено удалить 38 предикторов, у которых взаимные корреляции превышают 0,9, с последующим обучением линейной модели по тренировочным данным1. В линейной модели применена повторная выборка с использованием десятикратной перекрестной проверки; оценка среднеквадратичной погрешности (RMSE) составила 0,71, а соответствующее значение R1 — 0,88. Затем предикторы были удалены и из тестовых данных, после чего модель проверена по тестовому набору. Значение R1 между наблюдаемыми и прогнозируемыми значениями составило 0,87 (базовые диаграммы регрессии см. на рис. 6.7). В прогнозе не выявлено смещение; распределение между прогнозируемыми значениями и остатками подобно случайному разбросу со значением, близким к нулю. 1 На практике для достижения значительного влияния на коллинеарность, возможно, придется использовать более низкий порог. В имеющихся данных это также приведет к удалению важных переменных. Также следует проанализировать, как составляющие входят в модель. Например, могут присутствовать взаимодействия между предикторами, которые играют важную роль, а также нелинейные преобразования предикторов, способные улучшить модель. Эти операции более подробно рассматриваются в главе 19.
140 Глава 6. Модели с признаками линейной регрессии 3 2 1 -ю -8 -6 -4 -2 о Прогнозируемые значения О -1 -2 -3 -10 -8 -6 -4 -2 0 Прогнозируемые значения Рис. 6.7. Слева: наблюдаемые и прогнозируемые значения для тестового набора данных растворимости. Справа: остатки и прогнозируемые значения. Остатки разбросаны вокруг нуля в отношении прогнозируемых значений 6.3. Частные наименьшие квадраты Как показывает пример с данными растворимости, для многих наборов данных предикторы могут быть коррелированными и содержать сходную предиктивную информацию. Если корреляция между предикторами высока, то обычный метод наименьших квадратов для множественной линейной регрессии вследствие высокого разброса окажется нестабильным. Для других наборов данных количество предикторов может превышать количество наблюдений. В этом случае обычный метод наименьших квадратов не сможет найти уникальный набор коэффициентов регрессии, минимизирующий SSE. Варианты стандартных решений задачи регрессии в таких условиях предусматривают предварительную обработку предикторов либо посредством удаления предикторов с высокой корреляцией, либо посредством проведения РСА для предикторов (см. раздел 3.3). Удаление предикторов с высокой корреляцией гарантирует, что парные корреляции между предикторами лежат ниже заранее заданного порога. Перечисленное не гарантирует, что линейные комбинации предикторов не коррелированы с другими предикторами, из-за чего обычное решение наименьших квадратов все равно будет нестабильным. Не гарантирует стабильности решения наименьших квадратов и удаление парных предикторов с высокой корреляцией. Возможен еще один вариант: использование РСА для предварительной обработки, гарантирующей, что полученные предикторы или их комбинации не будут коррелированы. У РСА есть и оборотная сторона — новые предикторы являются линейными комбинациями исходных предикторов, что может затруднить понимание практической значимости новых предикторов.
6.3. Частные наименьшие квадраты 141 Предварительная обработка предикторов средствами РСА до применения регрессии у Мэсси называется регрессией главных компонент (PCR) (Massy, 1965); этот метод широко применялся в контексте проблем с изначально высокой корреляцией предикторов или задач, в которых количество предикторов превышало количество наблюдений. Хотя этот двухшаговый метод регрессии (сокращение размерности с последующей регрессией) успешно использовался для разработки предиктивных моделей в подобных условиях, он может привести и к неудаче. При сокращении размерности средствами РСА не обязательно создаются новые предикторы, объясняющие ответ. Рассмотрим данные с двумя предикторами и одной реакцией (рис. 6.8). 0,2 сч 0 X > 0,0 -1 -0.2 -2 -0,4 -1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 -2 -1 0 1 2 Х1 РСА1 Рис. 6.8. Пример регрессии главных компонент для простого набора данных с двумя предикторами и одной реакцией. Слева: диаграмма разброса двух предикторов показывает направление первой главной компоненты. Справа: первое направление РСА не содержит предиктивной информации для реакции Два предиктора коррелированы, а РСА обобщает эту связь, используя направление максимальной дисперсии. Однако, судя по правой части изображения, первое направление РСА не содержит существенной предиктивной информации. Как показывает этот пример, при выборе компонентов РСА не учитывает аспекты ответа, а лишь следует в направлении дисперсии, присутствующей в пространстве предикторов. Если эта дисперсия связана с дисперсией реакции, то PCR, скорее всего, сможет идентифицировать предиктивные связи. Если нет, то, вероятно, у PCR возникнут сложности с выявлением предиктивных связей там, где они могут существовать. Поскольку эта проблема изначально присуща PCR, мы рекомендуем применять PLS в тех случаях, когда между предикторами существует корреляция и требуется получить решение наподобие линейной регрессии.
142 Глава 6. Модели с признаками линейной регрессии Метод PLS происходит от нелинейного итеративного метода частных наименьших квадратов (NIPALS) Уолда (Wold, 1966, 1982), приводящего к линейному виду модели, нелинейные по своим параметрам. В работе Уолда (Wold et al., 1983) метод NIPALS адаптирован для условий регрессии с коррелированными предикторами и получил название «метода частных наименьших квадратов», или PLS (Partial Least Squares). Алгоритм NIPALS итеративным методом выявляет скрытые связи между предикторами, имеющими высокую корреляцию с ответом. Для одномерной реакции каждая итерация алгоритма оценивает связь между предикторами (X) и реакцией (у), обобщая ее в числовом виде вектора весов (да), именуемым также направлением. Далее данные предикторов ортогонально проецируются на направление для генерирования рейтингов (0, используемых для генерирования нагрузок (р), оценивающих корреляцию вектора рейтингов с исходными предикторами. После каждой итерации предикторы и реакции «сокращаются» вычитанием текущей оценки предиктора и структуры реакции соответственно. Новый сокращенный предиктор и усеченная информация реакции используются для генерирования следующего набора весов, рейтингов и нагрузок. Эти величины последовательно сохраняются в матрицах W, Т и Р соответственно, а затем используются для прогнозирования новых точек данных и вычисления важности предикторов. Схема связей PLS между предикторами и реакцией — на рис. 6.9; обсуждение алгоритма приведено у Гелади и Ковальски (Geladi and Kowalski, 1986). Рис. 6.9. Структура модели PLS. PLS находит компоненты, одновременно обобщающие дисперсию предикторов при сохранении оптимальной корреляции с результатом
6.3. Частные наименьшие квадраты 143 Чтобы лучше понять функцию алгоритма, Стоун и Брукс (Stone and Brooks, 1990) связали ее с хорошо известными статистическими концепциями ковариации и регрессии. В частности, Стоун и Брукс доказали, что метод PLS, как и РСА, находит линейные комбинации предикторов. Эти линейные комбинации обычно называются компонентами, или латентными переменными. Если линейные комбинации РСА выбираются для максимального обобщения вариативности пространства предикторов, то линейные комбинации предикторов в PLS выбираются для максимального обобщения ковариации с реакцией. Это означает, что метод PLS находит компоненты, максимально обобщающие дисперсию предикторов, одновременно требуя максимальной корреляции этих компонент с реакцией. Таким образом, PLS достигает компромисса между целями сокращения размерности пространства предикторов и предиктивной связи с реакцией. Другими словами, PLS может рассматриваться как контролируемая процедура сокращения размерности, тогда как PCR является процедурой неконтролируемой. Чтобы лучше понять суть метода PLS и его взаимосвязь с PCR, еще раз обратимся к данным, представленным на рис. 6.8. Теперь нас интересует первая компонента PLS, сопоставляемая на левой диаграмме разброса (рис. 6.10) с первым направлением РСА. -2 0,4 0,2 0,0 "0,2 -0,4 -1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 -0,4 -0,2 0,0 0,2 0,4 Х1 PLS1 Рис. 6.10. Пример регрессии методом частных наименьших квадратов для простого набора данных с двумя предикторами и одной реакцией. Слева: первое направление PLS практически ортогонально первому направлению РСА. Справа'. в отличие от РСА, направление PLS содержит высокий уровень предиктивной информации для результата В данном случае оба направления практически ортогональны, то есть оптимальное направление сокращения размерности не связано с максимальной дисперсией в пространстве предикторов. Вместо этого PLS идентифицирует оптимальное со-
144 Глава 6. Модели с признаками линейной регрессии кращение размерности пространства предикторов в контексте регрессии с реакцией. Этот пример призван подчеркнуть столь важный недостаток PCR. На практике PCR строит модели, сравнимые по предиктивной способности с PLS. Количество компонент, сохраненных при перекрестной проверке с использованием PCR, всегда одинаково. До применения PLS с предикторами следует выполнить центрирование и масштабирование, особенно если предикторы измеряются по осям с разным масштабом. PLS ищет направления с максимальной дисперсией, одновременно учитывая корреляцию с результатом. Даже с учетом ограничения последней он будет более ориентирован на предикторы с большой дисперсией. Следовательно, предикторы должны пройти соответствующую предварительную обработку до применения PLS. После этого можно приступать к моделированию ответа. У PLS есть только один параметр настройки: количество сохраняемых компонент. Для определения их оптимального количества могут использоваться методы повторной выборки (см. раздел 4.4). Применение методов PCR и PLSR для прогнозирования данных растворимости Чтобы продемонстрировать процесс построения модели с использованием PLS, вернемся к данным растворимости (см. раздел 6.1). Многие из 228 предикторов (см. рис. 6.4) обладают высокой корреляцией, а общая информация из пространства предикторов содержится в меньшем количестве измерений. Эти условия вполне подходят для применения PLS. Перекрестная проверка служит для определения оптимального числа сохраняемых компонент PLS, минимизирующих среднеквадратичную погрешность. Одновременно применен метод PCR с использованием тех же наборов перекрестной проверки, что позволяет сравнить его эффективность с PLS. На рис. 6.11 показаны результаты: PLS находит минимальную среднеквадратичную погрешность (0,682) с 10 компонентами, a PCR находит минимальную среднеквадратичную погрешность (0,731) с 35 компонентами. Таким образом, управляемое сокращение размерности находит минимальную среднеквадратичную погрешность с существенно меньшим числом компонент, чем неуправляемое сокращение. Использование правила одной стандартной погрешности (см. раздел 4.6) позволяет сократить количество необходимых компонент PLS до 8. На рис. 6.12 сравниваются связи каждой из первых двух компонент PCR и компонент PLS с реакцией.
6.3. Частные наименьшие квадраты 145 л 2.0 § и о 10 20 30 Количество компонент Рис- 6.11. Среднеквадратичная погрешность с перекрестной проверкой для PLS и PCR. Минимум достигается при 10 компонентах PLS и 35 компонентах PCR Поскольку среднеквадратичная погрешность для каждой из первых двух компонент PLS ниже, чем у первых двух компонент PCR, неудивительно, что между компонентами существует корреляция, а реакция для PLS выше, чему у PCR. Результат прогнозирования тестового набора с использованием оптимальных моделей PCR и PLS представлен на рис. 6.13. Оба метода обладают хорошей предиктивной способностью, а остатки случайным образом распределены вокруг нуля. Несмотря на близость предиктивных способностей, метод PLS находит более простую модель с существенно меньшим числом компонент, чем у PCR. Коэффициенты регрессии PLS для данных растворимости представлены в табл. 6.2; их величины сходны со значениями модели линейной регрессии, включающей только эти два предиктора. Латентные переменные из PLS строятся с использованием линейных комбинаций исходных предикторов, что усложняет оценку вклада каждого предиктора в модель. В работе Уолда (Wold et al., 1993) представлен эвристический подход к оценке важности переменных при использовании алгоритма NIPALS, а сами вычисления обозначены определением важности переменных в проекции (VIP). В наиболее простом случае связь между предикторами и реакцией может быть адекватно обобщена однокомпонентной моделью PLS. В этом случае важность j-го предиктора пропорциональна значению нормализованного вектора весов w, соответствующего у-му предиктору. Если связь между предикторами и реакцией требует более одной компоненты, то вычисление важности переменной усложняется. В этом случае
146 Глава 6. Модели с признаками линейной регрессии числитель важности у-го предиктора представляет собой взвешенную сумму нормализованных весов, соответствующиху-му предикторуу-й нормализованный вес £-го компонента wkj масштабируется по величине дисперсии реакции, объясняемой k-й компонентой. Знаменателем важности переменной является общая величина дисперсии результата, объясняемой всеми k компонентами. Следовательно, чем больше нормализованный вес и величина дисперсии реакции, объясняемой компонентой, тем большую важность имеет предиктор в модели PLS. Показатели важности переменных частных наименьших квадратов для данных растворимости представлены на рис. 6.14. -10 0 10 0 -5 £ -10 о о S S CL § о со CL о -5 -10 -10 0 10 Количество компонент Рис. 6.12. Сравнение связей между первыми двумя компонентами PCR и PLS с реакцией растворимости. Поскольку сокращение размерности, обеспечиваемое PLS, контролируется реакцией, этот метод быстрее продвигается к нижележащей связи между предикторами и реакцией
6.3. Частные наименьшие квадраты 147 к О х X П 3 -4 2 2 1 н [В О о О -1 -2 X -10 -10 -8 -6 -4 -2 О Прогнозируемые значения -10 -8 -6 -4 -2 О Прогнозируемые значения -10 -8 -6 -4 -2 0 Прогнозируемые значения 3 2 1 н g О о О -1 -2 -3 -10 -8 -6 -4 -2 0 Прогнозируемые значения Рис. 6.13. Слева: наблюдаемые и прогнозируемые значения для тестового набора данных растворимости для методов PCR {сверху) и PLS {внизу). Справа: остатки и прогнозируемые значения для PCR и PLS. Остатки случайным образом разбросаны вокруг нуля относительно прогнозируемых значений. Оба метода обладают сходной предиктивной способностью, но PLS использует гораздо меньшее количество компонент Чем больше значение VIР, тем более важную роль играет предиктор в установлении связи структуры скрытых предикторов с реакцией, при этом сумма квадратов значений VIP равна общему количеству предикторов. Условимся, что значения VIP, превышающие единицу, содержат предиктивную информацию для реакции. Уолд (Wold, 1995) также полагает, что предикторы с малыми коэффициентами регрессии PLS и малыми значениями VIP в силу их небольшой значимости допустимо исключить из модели.
148 Глава б. Модели с признаками линейной регрессии MolWelght NumCarbon NumNonHAtoms NumNonHBonds FP076 FP089 NumMultBonds NumBonds NumRIngs FP044 NumAtoms FP172 NumAromaticBonds FP112 FP014 FP065 FP013 HydrophilicFactor FP092 NumChlorine NumHalogen FP168 FP079 FP070 FP164 2,0 2,5 Важность Рис. 6.14. Показатели важности переменных метода частных наименьших квадратов для данных растворимости Алгоритмические разновидности PLS Алгоритм NIPALS достаточно эффективен для наборов данных от малого до умеренного размера (у Эллина, например, < 2,500 точек данных и < 30 предикторов (Alin, 2009)). Однако при увеличении количества точек данных (п) и предикторов (Р) алгоритм становится малоэффективным, что обусловлено способом выполнения матричных операций с предикторами и реакцией: матрицы как предикторов, так и реакций должны быть сокращены (то есть из каждой матрицы должна быть вычтена информация, что приводит к созданию новых версий каждой матрицы) для каждой латентной переменной. Это означает, что для каждой итерации алгоритма должны храниться разные версии матрицы предикторов и ответа. Следовательно, при каждой итерации необходимо пересчитать, обработать и сохранить матрицу п х Р и вектор п х 1. С ростом п и F возрастают и требования к памяти, а операции с этими матрицами должны выполняться в итеративном процессе. У Линдгрена (Lindgren et al., 1993) показано, что конструкции NIPALS могут быть получены посредством работы с «ядерной» матрицей размером Р* Р, ковариационной матрицей предикторов (также имеющей размер Р х Р), ковариационной матрицей предикторов и реакции (размер Р х 1), что стало достижением в вычислительном отношении. Изменение улучшило скорость работы алгоритма, особенно в случаях, когда количество наблюдений значительно пре-
6.3. Частные наименьшие квадраты 149 вышает количество предикторов. Примерно в то же время, когда был разработан «ядерный» метод, де Йонг (de Jong, 1993) усовершенствовал алгоритм NIPALS, для чего задача рассматривалась как поиск в пространстве предикторов латентных ортогональных переменных, максимизирующих ковариацию с реакцией. Так появился алгоритм, ориентированный на сокращение матрицы ковариации между предикторами и реакцией (в отличие от сокращения обеих матриц предикторов и реакции). Де Йонг (de Jong, 1993) назвал новый метод SIMPLS, как представляющий модификацию алгоритма PLS. Поскольку метод SIMPLS сокращает матрицу ковариации, на каждой итерации требуется сохранять только сокращенную матрицу ковариации размером Р * 1, и это значительное усовершенствование по сравнению с NIPALS. Хотя метод SIMPLS решает проблему оптимизации иным способом, для единичной реакции латентные переменные SIMPLS идентичны латентным переменным NIPALS (о возможностях моделирования многовариантной реакции см. ниже). Вычислительные модификации алгоритма NIPALS посредством корректировки ядерного метода предложены и другими исследователями (de Jong and Тег Braak, 1994; Dayal and MacGregor, 1997). В последней работе представлены две эффективные (особенно при п » Р) модификации, по аналогии с SIMPLS требующие только сокращения матрицы ковариации между предикторами и реакцией на каждом шаге итеративного процесса. В первой модификации внутренних механизмов алгоритма в вычислениях использовалась полная исходная матрица предикторов, во второй — полная матрица ковариации предикторов. Эйлин приводит подробное сравнение вычислительной эффективности NIPALS с эффективностью других алгоритмических модификаций, используя переменное количество точек данных (500-10 000), предикторов (10-30), реакций (1-15) и количество выводимых латентных переменных (3-10). При этом второй ядерный алгоритм Дайала и Макгрегора оказался эффективнее с вычислительной точки зрения, обеспечивая лучшую производительность при п > 2500 и Р > 30. В исключительных случаях, когда второй алгоритм все же не обеспечивал лучшей вычислительной эффективности, ее обеспечивал первый алгоритм. Другие подходы к реализации PLS обладают очевидными вычислительными преимуществами перед исходным алгоритмом. Тем не менее с ростом количества предикторов их эффективность снижается. Для ситуаций с Р > п в работе Раннара (RMnnar et al., 1994) на основании матрицы предикторов и реакции строилось ядро размером п х п с последующим анализом PLS, в котором, помимо ядра, задействованы внешние векторные произведения предикторов и внешние произведения реакций (размером п х и). Отметим, что этот алгоритм обладает большей вычислительной эффективностью, если количество предикторов превышает количество точек данных. Компоненты PLS (см. рис. 6.9) обобщают данные посредством линейных субструктур (гиперплоскостей) исходного пространства предикторов, связанных
150 Глава 6. Модели с признаками линейной регрессии с реакцией. Но для многих задач структура в пространстве предикторов, обладающая оптимальной связью с реакцией, может оказаться как криволинейной, так и нелинейной. Предпринимались попытки преодолеть этот недостаток PLS для выявления связей пространства предикторов с соответствующим откликом. Лучшие варианты представлены Берглундом и Уолдом (Berglund and Wold, 1997) и группой Берглунда (Berglund et al., 2001). Согласно выводам Берглунда и Уолда (Berglund and Wold, 1997), наряду с исходными предикторами могут применяться квадратичные и даже кубические предикторы. Затем к дополненному набору данных применяется PLS, при этом в добавлении перекрестных произведений нет необходимости, что ведет к существенному снижению числа новых предикторов. Позднее у Берглунда (Berglund et al., 2001) был использован описанный ранее Михаилидисом и де Лиувом метод GIFI (Michailidis and de Leeuw, 1998), согласно которому для каждого предиктора, предположительно имеющего нелинейную связь с реакцией, выполняется разделение данных на две группы и более. Точки отсечения выбираются пользователем и базируются на имеющейся информации или на характеристиках данных. Исходные предикторы, распределенные по группам, исключаются из набора данных, включающего распределенные версии предикторов. Затем к новому набору предикторов применяется метод PLS. Оба метода успешно находили нелинейные связи между предикторами и реакцией. Однако построение наборов данных для ввода в PLS может потребовать значительных усилий, особенно при большом количестве предикторов. Как показано ниже, другие методы предиктивного моделирования позволяют выявлять нелинейность структур между предикторами и реакцией без необходимости изменения пространства предикторов. Следовательно, если между предикторами и реакцией существует более сложная связь, то целесообразно применить один из этих методов, отказавшись от попыток повысить эффективность PLS усовершенствованиями, подобными описанным выше. 6.4. Штрафные модели В общем случае коэффициенты, созданные обычной регрессией наименьших квадратов, не смещены. Относящаяся к классу несмещенных линейных методов штрафная модель обладает наименьшей дисперсией. Однако если учесть, что значение MSE является комбинацией дисперсии и смещения (см. раздел 5.2), представляется весьма вероятным нахождение модели с меньшим значением MSE, если допустить некоторое смещение оценок параметров. Ограниченность смещения может более значительно снизить дисперсию и, следовательно, уменьшить значение MSE, чем при использовании коэффициентов регрессии, полученных методом обычных наименьших квадратов. Одно из следствий значительных корреляций между дисперсиями предикторов — существенное возрастание дисперсии. Преодоление коллинеарности посредством смещенных моделей может привести
6.4. Штрафные модели 151 к созданию регрессионных моделей с конкурентоспособными значениями общего показателя MSE. Один из методов создания смещенных регрессионных моделей заключается в добавлении штрафа к сумме квадратичных погрешностей. Вспомним, что исходная регрессия методом наименьших квадратов находит оценки параметров, минимизирующие сумму квадратичных погрешностей (SSE): = £(//,.-р,.)2. i=l При чрезмерном обучении модели или при возникновении проблем с коллинеарностью (см. табл. 6.1) оценки параметров линейной регрессии могут оказаться завышенными. Следовательно, нужно иметь возможность контролировать величину этих оценок для сокращения SSE. Управление оценками параметров (регуляризация) может осуществляться прибавлением штрафа к SSE при завышенных оценках. Гребневая регрессия по Хёрлу (Hoerl, 1970) добавляет штраф к сумме параметров квадратичной регрессии: ^=Z(.^-.V,)2+xfp2. i=1 j=\ L2 означает, что к оценкам параметров применяется штраф второго порядка (то есть квадрат). Эффект штрафа заключается в том, что оценкам параметров разрешается принимать большие значения только при пропорциональном сокращении SSE. Фактически этот метод сжимает оценки к нулю, если штраф X становится большим (отсюда второе название рассматриваемого метода — метод сжатия). Включение в модель штрафа допускает компромисс между дисперсией и смещением модели. Жертвуя некоторым смещением, представляется возможным сократить дисперсию, с тем чтобы общее значение MSE стало меньше, чем у несмещенных моделей. Например, на рис. 6.15 показаны графики коэффициентов регрессии для данных растворимости при разных значениях X. Каждая линия соответствует определенному параметру модели; перед проведением анализа предикторы прошли центрирование и масштабирование. При отсутствии штрафов многие параметры имеют приемлемые значения (как, например, выделенный оранжевым цветом предиктор количества множественных связей). Однако некоторые оценки параметров выглядят явно завышенными — например, количество неводородных атомов (зеленая линия) и количество неводородных связей (фиолетовая линия, см. табл. 6.1). Подобные значения типичны для ситуаций, характеризующихся наличием коллинеарности. С увеличением штрафа оценки параметров смещаются к нулю с разной скоростью. К тому моменту, когда штраф принимает значение X = 0,002, эти два предиктора заметно улучшаются, хотя другие значения коэффициента все еще представляются завышенными.
152 Глава 6. Модели с признаками линейной регрессии 0,000 0,002 0,004 0,006 0,008 0,010 Штраф Рис. 6.15. Графики коэффициентов гребневой регрессии Значение штрафа оптимизировано с использованием перекрестной проверки. На рис. 6.16 показано, как среднеквадратичная погрешность изменяется с X. 0,720 -D h °’715 О g 0,710 (О к | ™ 0,705 3 g 0,700 “ о- © ® 0,695 ф Q 0,690 0,00 0,02 0,04 0,06 0,08 Штраф 0,10 Рис. 6.16. Профили перекрестной проверки для модели гребневой регрессии
6.4. Штрафные модели 153 При отсутствии штрафа значение погрешности возрастает, при увеличении — уменьшается с 0,72 до 0,69. При превышении штрафом значения 0,036 смещение становится слишком большим, а в модели начинает проявляться недостаточность обучения, что приводит к возрастанию MSE. Хотя гребневая регрессия направляет оценки параметров к нулю, модель не сокращает значения до абсолютного минимума при любых значениях штрафа. И хотя некоторые оценки параметров становятся пренебрежимо малыми, модель не осуществляет выбора признаков. Популярной альтернативой гребневой регрессии является модель наименьшего абсолютного сжатия и оператора выбора, или модель «лассо» (lasso, сокращение от «least absolute shrinkage and selection operator» по Тибширани) (Tibshirani, 1996). Эта модель использует аналогичный штраф для гребневой регрессии: *'=1 у=1 Изменение может показаться незначительным, но практические его следствия примечательны. При сохраняющемся стремлении коэффициентов регрессии к нулю введение штрафов для абсолютных значений обнуляет некоторые параметры при определенных значениях X. В результате формируются модели, которые одновременно применяют регуляризацию и для улучшения прогноза, и для выбора признаков. О сравнении двух типов штрафов в работе Фридмана (2010) читаем следующее: «Известно, что гребневая регрессия сжимает коэффициенты коррелированных предикторов по направлению друг к другу, что позволяет им пользоваться взаимным потенциалом. В случае к идентичных предикторов они получают идентичные коэффициенты с l/k-й той величины, которая была бы назначена любому предиктору, если бы он уравнивался отдельно. <...> С другой стороны, метод лассо отчасти безразличен к чрезмерно коррелированным предикторам; он склонен выбрать один и проигнорировать остальные». На рис. 6.17 изображены графики коэффициентов лассо для разных значений штрафа. По оси х откладывается относительная доля полного решения (то есть обычного метода наименьших квадратов без штрафа). Меньшие значения по оси х показывают, что используется большой штраф. При большом значении штрафа многим коэффициентам регрессии присваивается нулевое значение. С сокращением штрафа появляется много ненулевых коэффициентов. При анализе количества не водородных связей (фиолетовая линия) коэффициент изначально равен нулю, затем немного увеличивается, после чего снова стремится к нулю. Для значения
154 Глава 6. Модели с признаками линейной регрессии 10 >х 3 X X S а § о. 2 и -10 о 0,0 0,2 0,4 0,6 0,8 1,0 Относительная доля полного решения Рис. 6.17. График коэффициентов модели лассо для данных растворимости. По оси х измеряется относительная доля решения методом полных квадратов. С возрастанием этой относительной доли штраф лассо (к) уменьшается около 0,4 этот предиктор вводится обратно в модель с ненулевым коэффициентом, который постоянно возрастает (скорее всего, из-за коллинеарности). В табл. 6.2 приведены коэффициенты регрессии для обычных наименьших квадратов, PLS, гребневой регрессии и модели лассо. Штраф гребневой регрессии, использованной в этой таблице, равен 0,036, штраф лассо — 0,15. Модель гребневой регрессии значительно сжимает коэффициенты предикторов неводородных атомов и неводородных связей по направлению к нулю по сравнению с моделью обычных наименьших квадратов, тогда как модель лассо сжимает предиктор неводородных атомов до его устранения из модели. Модель лассо обладает наименьшей погрешностью перекрестной проверки 0,67 — немного лучше, чем у модели PLS (0,68) и гребневой регрессии (0,69). Модель лассо была распространена и на иные методы, включая линейный дискриминантный анализ (Clemmensen et al., 2011; Witten and Tibshirani, 2011) и PLS (Chun and Kele§, 2010) и РСА (Jolliffe et al., 2003; Zou et al., 2004). Отметим также работу Эфрона (Efron et al., 2004), описывающую регрессию наименьшего угла (LARS, Least Angle Regression), которая представляет широкую инфраструктуру,
6.4. Штрафные модели 155 Таблица 6.2. Коэффициенты регрессии двух предикторов с высокой корреляцией для PLS, гребневой регрессии, эластичной сети и других моделей Модель NumNonHAtoms NumNonHBonds Только NumNonHAtoms -1,2 (0,1) Только NumNonH Bonds -1,2 (0,1) Обе -0,3 (0,5) -0,9 (0,5) Все предикторы 8,2 (1,4) -9,1 (1,6) PLS, все предикторы -0,4 -0,8 Гребневая регрессия, все предикторы -0,3 -0,3 Лассо/эластичная сеть 0,0 -0,8 охватывающую модель лассо и другие похожие модели. Модель LARS может использоваться для обучения моделей лассо, и прежде всего в задачах высокой размерности. В работах Фридмана (Friedman et al., 2010) и Хестерберга (Hesterberg et al., 2008) приводится обзор соответствующих методов. Обобщением модели лассо является, по мнению Зу и Хэсти, эластичная сеть (Zou and Hastie, 2005). Эта модель объединяет два типа штрафов: sse^ i=1 J=1 M Штраф гребневой регрессии, используемый в табл. 6.2, равен 0,036, штраф модели лассо — 0,15. Модель PLS использует 10 компонентов. Преимущество этой модели — в способности обеспечить эффективную регуляризацию через штраф гребневой регрессии с качеством выбора признаков штрафа модели лассо. Зу и Хэсти (Zou and Hastie, 2005) полагают, что эта модель будет более эффективно справляться с группами высококоррелированных предикторов. Оба штрафа требуют настройки для достижения оптимальной эффективности. Модель была настроена для данных растворимости с использованием повторной выборки. На рис. 6.18 показаны профили эффективности для трех значений гребневого штрафа и 20 значений штрафа лассо. У нулевой модели лассо (с Xt= 0) наблюдается исходное падение погрешности с последующим ее увеличением до отметки 0,2 и выше. Две модели с ненулевыми значениями штрафа гребневой регрессии имеют минимальные ошибки. В итоге оптимальная эффективность обеспечена моделью лассо с относительной долей 0,15, что соответствует 130 предикторам из возможных 228.
156 Глава 6. Модели с признаками линейной регрессии Снижение весов 0,2 0,4 0,6 0,8 1,0 Относительная доля полного решения Рис. 6.18. Профили перекрестной проверки для модели эластичной сети 6.5. Вычисления В этом разделе используются пакеты R: elasticnet, caret, lars, MASS, pls и stats. Данные растворимости можно взять из пакета R AppliedPredictiveModeling. Предикторы тренировочного и тестового наборов содержатся в кадрах данных solTrainX и solTestX соответственно. Для загрузки данных в R выполните следующие команды: > library(AppliedPredictiveModeling) > data(solubility) > ## Объекты данных начинаются с "sol": > Is(pattern = "AsolT") [1] "solTestX" "solTestXtrans" "solTestY" "solTrainX" [5] "solTrainXtrans" "solTrainY" Каждый столбец данных соответствует предиктору (то есть химическому дескриптору), а строки — химическим веществам. Данные содержат 228 столбцов. Случайная выборка имен столбцов выглядит так: > set.seed(2) > sample(names(solTrainX), 8) [1] "FP043" "FP160" "FP130" "FP038" "NumBonds" [6] "NumNonHAtoms" "FP029" "FP185"
6.5. Вычисления 157 Столбцы «FP» соответствуют бинарным предикторам 0/1, которые отражают наличие или отсутствие конкретной химической структуры. Альтернативные версии этих данных, преобразованные по Боксу—Коксу, содержатся в кадрах данных solTrainXtrans и solTestXtrans. Эти модифицированные версии использованы при анализе в этой и предыдущей главах. Значения растворимости для каждого вещества содержатся в числовых векторах solTrainY и solTestY. Обычная линейная регрессия Основная функция для создания моделей линейной регрессии с использованием простого метода наименьших квадратов — 1т — дает формулу и кадр данных. Следовательно, предикторы тренировочного набора и результаты должны находиться в одном кадре данных. Для этого можно создать новый кадр данных: > trainingData <- solTrainXtrans > ## Добавление реакции для данных растворимости > trainingData$Solubility <- solTrainY Для аппроксимации линейной модели со всеми предикторами, входящими в модель как простые независимые линейные составляющие, воспользуемся сокращенной записью Solubility ~: > LmFitALLPredictors <- Lm(SoLubiLity ~ data = trainingData) Составляющая пересечения автоматически добавляется в модель. Метод summary выводит сводную статистику модели, оценки параметров, их стандартные погрешности и p-значения для проверки того, что каждый коэффициент отличен от нуля: > summary(LmFitALLPredictors) Call: lm(formula = Solubility ~ data = trainingData) Residuals: Min IQ Median 3Q Max -1.75620 -0.28304 0.01165 0.30030 1.54887 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2.431e+00 2.162e+00 1.124 0.261303 FP001 3.594e-01 3.185e-01 1.128 0.259635 FP002 1.456e-01 2.637e-01 0.552 0.580960 FP003 -3.969e-02 1.314e-01 -0.302 0.762617 FP004 -3.049e-01 1.371e-01 -2.223 0.026520 * FP005 2.837e+00 9.598e-01 2.956 0.003223 **
158 Глава 6. Модели с признаками линейной регрессии FP006 -6.886e-02 2.041e-01 -0.337 0.735917 FP007 4.044e-02 1.152e-01 0.351 0.725643 FP008 1.121e-01 1.636e-01 0.685 0.493331 FP009 -8.242e-01 8.395e-01 -0.982 0.326536 MolWeight -1.232e+00 2.296e-01 -5.365 1.09e-07 **♦ NumAtoms -1.478e+01 3.473e+00 -4.257 2.35e-05 *** NumNonHAtoms 1.795e+01 3.166e+00 5.670 2.07e-08 **♦ NumBonds 9.843e+00 2.681e+00 3.671 0.000260 **♦ NumNonHBonds -1.030e+01 1.793e+00 -5.746 1.35e-08 NumMultBonds 2.107e-01 1.754e-01 1.201 0.229990 NumRotBonds -5.213e-01 1.334e-01 -3.908 0.000102 *** NumDblBonds -7.492e-01 3.163e-01 -2.369 0.018111 * NumAromaticBonds - - 2.364e+00 6.232e-01 -3.794 0.000161 *** NumHydrogen 8.347e-01 1.880e-01 4.439 1.04e-05 *** NumCarbon 1.730e-02 3.763e-01 0.046 0.963335 NumNitrogen 6.125e+00 3.045e+00 2.011 0.044645 * NumOxygen 2.389e+00 4.523e-01 5.283 1.69e-07 NumSulfer -8.508e+00 3.619e+00 -2.351 0.018994 * NumChlorine -7.449e+00 1.989e+00 -3.744 0.000195 NumHalogen 1.408e+00 2.109e+00 0.668 0.504615 NumRings 1.276e+00 6.716e-01 1.901 0.057731 . HydrophilicFactor 1.099e-02 1.137e-01 0.097 0.922998 SurfaceAreal 8.825e-02 6.058e-02 1.457 0.145643 SurfaceArea2 9.555e-02 5.615e-02 1.702 0.089208 • Signif. codes: 0 ' ***' 0.001 '*♦’ 0.01 ’ ♦’ 0.05 0.1 ’ ’ 1 Residual standard error: 0.5524 on 722 degrees of freedom Multiple R-squared: 0.9446, Adjusted R-squared: 0.9271 F-statistic: 54.03 on 228 and 722 DF, p-value: < 2.2e-16 Модель содержит 229 предикторов, из-за чего полный вывод получается очень длинным, поэтому результаты были сокращены. Линейные модели в R более подробно рассматриваются у Фарауэя (2005). Простые оценки среднеквадратичной погрешности и R2 равны 0,55 и 0,945 соответственно. Скорее всего, эти оценки являются завышенными, поскольку получены повторным прогнозированием данных тренировочного набора. Для вычисления значений растворимости модели для новых точек данных используется метод predict: > LmPredl <- predict(LmFitALLPredictorSj soLTestXtrans) > head(LmPredl) 20 21 23 25 28 31 0.99370933 0.06834627 -0.69877632 0.84796356 -0.16578324 1.40815083
6.5. Вычисления 159 Наблюдаемые и прогнозируемые значения можно объединить в кадр данных, а затем воспользоваться функцией defaultsummary из пакета caret для оценки эффективности тестового набора: > LmVaLuesl <- data.frame(obs = soLTestY, pred = LmPredl) > defauLtSummary(LmVaLuesl) RMSE Rsquared 0.7455802 0.8722236 На основании тестового набора можно сделать вывод, что сводные данные, произведенные функцией summary для 1т, были завышенными. Для получения более устойчивой регрессионной модели можно воспользоваться функцией rim (Robust Line Model) из пакета MASS, которая по умолчанию применяет метод Хубера. По аналогии с функцией 1т функция rim вызывается следующим образом: > rLmFitALLPredictors <- rLm(SoLubiLity ~ ., data = trainingData) Функция train генерирует оценку эффективности с повторной выборкой. Поскольку размер тренировочного набора достаточно велик, десятикратная перекрестная проверка должна обеспечить приемлемую оценку эффективности модели. Функция traincontrol задает тип повторной выборки: > Ctrl <- trainControL(method = "cv", number = 10) Функция train получает формулу модели (о способах задания моделей см. раздел 4.9) или использует матричный интерфейс: > set.seed(100) > LmFitl <- train(x = soLTrainXtrans, у - soLTrainY, + method = "Lm", trControL = ctrL) Генератор случайных чисел инициализируется перед моделированием, чтобы результаты можно было воспроизвести. Результаты выглядят так: > LmFitl 951 samples 228 predictors No pre-processing Resampling: Cross-Validation (10-fold) Summary of sample sizes: 856, 857, 855, 856, 856, 855, ... Resampling results RMSE Rsquared RMSE SD Rsquared SD 0.721 0.877 0.07 0.0247
160 Глава 6. Модели с признаками линейной регрессии Для моделей, построенных для объяснения, важно проверять, например, распределение остатков. Для предиктивных моделей некоторые рассмотренные диагностические методы могут пролить свет на те области, в которых модель посредственно справляется с прогнозированием. Например, можно построить сравнительную диаграмму остатков и прогнозируемых значений для модели. Если диаграмма выглядит как случайное облако точек, то весьма вероятно, что в модели учтены главные составляющие или значительные выбросы. Важно и сравнение прогнозируемых значений с наблюдаемыми для оценки того, насколько прогнозы близки к фактическим значениям. Для этого используются два метода (применены данные из тренировочного набора): > xypLot(soLTrainY ~ predict (LmFitl),, + ## Отображение точек (type = ’р') и фоновой сетки (’д') + type = с("р", "д"), + xLab = "Predicted", yLab = "Observed") > xypLot(resid(LmFitl) ~ predict(LmFitl), + type = c("p", "g"), + xLab = "Predicted", yLab = "ResiduaLs") Результаты показаны на рис. 6.19. Функция resid генерирует остатки модели для тренировочного набора; функция predict без дополнительного аргумента данных возвращает спрогнозированные значения для тренировочного набора. На диагностических графиках модели не 1 5 го 6 О О -10 -5 О Прогнозируемые значения -10 -5 0 Прогнозируемые значения Рис. 6.19. Диагностические диаграммы для линейной модели с использованием тренировочного набора. Слева: наблюдаемые и прогнозируемые значения. На этой диаграмме можно обнаружить выбросы или те области, в которых модель не откалибрована. Справа: остатки и прогнозируемые значения. Если модель была хорошо выбрана, на диаграмме должно отображаться случайное облако точек без явных выбросов и закономерностей (например, «воронки»)
6.5. Вычисления 161 отмечено явных тревожных признаков. Для построения уменьшенной модели без предикторов с предельно высокими корреляциями подходят методы из раздела 3.3, позволяющие сократить количество предикторов, с тем чтобы в модели не оставалось абсолютных парных корреляций выше 0,9: > corThresh <- .9 > tooHigh <- findCorreLation(cor(soLTrainXtrans), corThresh) > corrPred <- names(soLTrainXtrans)[tooHigh] > trainXfiLtered <- soLTrainXtrans[, -tooHigh] > testXfiLtered <- soLTestXtrans[, -tooHigh] > set,seed(100) > LmFiLtered <- trainftestXfiLtered, soLTrainY, method = "Lm", + trControL = ctrL) > LmFiLtered 951 samples 228 predictors No pre-processing Resampling: Cross-Validation (10-fold) Summary of sample sizes: 856, 857, 855, 856, 856, 855, ... Resampling results RMSE Rsquared RMSE SD Rsquared SD 0.721 0.877 0.07 0.0247 Устойчивая линейная регрессия также может выполняться функцией train (в сочетании с функцией rim). Подчеркнем, что функция rim не допускает использования вырожденной матрицы ковариации (в отличие от функции 1т). Во избежание вырожденности предикторов выполним их предварительную РСА-обработку. Посредством отфильтрованного набора предикторов определим следующую эффективность модели устойчивой регрессии: > set.seed(100) > rLmPCA <- train(soLTrainXtrans, soLTrainY, + method = "rLm", * preProcess = "pea", + trControL = ctrL) > rLmPCA 951 samples 228 predictors Pre-processing: principal component signal extraction, scaled, centered Resampling: Cross-Validation (10-fold) Summary of sample sizes: 856, 857, 855, 856, 856, 855, ... Resampling results RMSE Rsquared RMSE SD Rsquared SD 0.782 0.854 0.0372 0.0169
162 Глава 6. Модели с признаками линейной регрессии Частные наименьшие квадраты Пакет pls, по Мевику и Беренсу (Mevik and Wehrens, 2007), содержит функции для PLS и PCR. Доступен как SIMPLS, первый алгоритм Дайала и Макгрегора, так и алгоритм, разработанный Раннаром (Rannar et al., 1994). По умолчанию пакет pls использует первый ядерный алгоритм Дайала и Макгрегора, тогда как другие алгоритмы могут задаваться аргументом method со значениями "oscorespls", "simpls" или "widekernelpls”. Функция plsr, как и функция 1т, требует передачи формулы модели: > pisFit <- pLsr(SoLubiLity ~ data = trainingData) Количество компонент фиксируется аргументом ncomp (при присвоении последнему значения по умолчанию будет вычислено максимальное количество компонент). Прогнозы для новых точек данных могут вычисляться функцией predict (при задании конкретных значений количества компонент или для нескольких их значений одновременно). Пример: > predict(pLsFit, soLTestXtrans[l:5, ], ncomp - 1:2) , , 1 comps Solubility 20 -1.789335 21 -1.427551 23 -2.268798 25 -2.269782 28 -1.867960 , j 2 comps Solubility 20 0.2520469 21 0.3555028 23 -1.8795338 25 -0.6848584 28 -1.5531552 Функция plsr поддерживает параметры для ^-кратной перекрестной проверки или перекрестной проверки с исключением (аргумент validation) или алгоритма PLS — например, SIMPLS (аргумент method). Существуют вспомогательные функции для извлечения компонент PLS (в функции loadings), рейтингов PLS (scores) и других величин. Функция plot позволяет визуально оценить различные аспекты модели. Функция train также может использоваться со значениями method="pls", такими как "oscorespls", "simpls" или "widekernelpls". Пример:
6.5. Вычисления 163 > set.seed(100) > pLsTune <- train(soLTrainXtrans, soLTrainY, + method = "pLs", + ## The defauLt tuning grid evaLuates + ## components 1... tuneLength * tuneLength = 20, + trControL = ctrL, + preProc = c( "center", "scaLe")) Этот код воспроизводит модель PLS (см. рис. 6.11). Штрафные регрессионные модели Модели гребневой регрессии могут создаваться функцией lm. ridge (пакет MASS) или функцией enet (пакет elasticnet). При вызове функции enet аргумент lambda определяет штраф гребневой регрессии: > ridgeModeL <- enetfx = as.matrix(soLTrainXtrans), у = soLTrainY, * Lambda = 0.001) Вспомним, что в модели эластичной сети назначаются штрафы как для гребневой регрессии, так и для лассо, а объект R ridgeModel фиксирует только значение гребневого штрафа. Штраф лассо может эффективно вычисляться для многих значений. Функция predict для объектов enet генерирует прогнозы для одного или нескольких значений штрафа лассо при помощи аргументов s и mode. Для гребневой регрессии необходим только один штраф лассо, равный нулю, а значит, нужно полное решение, для получения которого методом гребневой регрессии определим s=l с mode = "fraction". Последний параметр указывает, каким образом определяется величина штрафа; в данном случае значение 1 соответствует относительной доле 1, то есть полному решению: > ridgePred <- predict(ridgeModeL, пемх = as.matrix(soLTestXtrans), + s = 1, mode = "fraction", + type = "fit") > head(ridgePred$fit) 20 21 23 25 28 31 0.96795590 0.06918538 -0.54365077 0.96072014 -0.03594693 1.59284535 Для настройки штрафа можно воспользоваться вызовом train иначе: > ## Определение набора значений-кандидатов. > ridgeGrid <- data.frame(.Lambda = seq(0, .1, Length = 15)) > set.seed(100) > ridgeRegFit <- train(soLTrainXtrans, soLTrainY,
164 Глава б. Модели с признаками линейной регрессии + + + ■#> method = "ridge", ## Обучение модели no разным значениям штрафа tuneOrid = ridgeOrid, trControL - Ctrl, ## Приведение предикторов к единой шкале preProc = с("center", "scale")) > ridgeRegFit 951 samples 228 predictors Pre-processing: centered, scaled Resampling: Cross-Validation (10-fold) Summary of sample sizes: 856, 857, 855, 856, 856, 855, ... Resampling results across tuning parameters: lambda RMSE Rsquared RMSE SD Rsquared 0 0.721 0.877 0.0699 0.0245 0.00714 0.705 0.882 0.045 0.0199 0.0143 0.696 0.885 0.0405 0.0187 0.0214 0.693 0.886 0.0378 0.018 0.0286 0.691 0.887 0.0359 0.0175 0.0357 0.69 0.887 0.0346 0.0171 0.0429 0.691 0.888 0.0336 0.0168 0.05 0.692 0.888 0.0329 0.0166 0.0571 0.693 0.887 0.0323 0.0164 0.0643 0.695 0.887 0.032 0.0162 0.0714 0.698 0.887 0.0319 0.016 0.0786 0.7 0.887 0.0318 0.0159 0.0857 0.703 0.886 0.0318 0.0158 0.0929 0.706 0.886 0.032 0.0157 0.1 0.709 0.885 0.0321 0.0156 RMSE was used to select the optimal model using the smallest value. The final value used for the model was lambda = 0.0357. Модель лассо может оцениваться при помощи нескольких функций со сходным синтаксисом. Пакет lars содержит одноименную функцию lars, в пакете elasticnet присутствует функция enet, а в пакете glmnet — одноименная функция glmnet. Пример использования функции enet: > enetModel <- enet(x = as.matrix(solTrainXtrans), у = solTrainY, + lambda = 0.01, normalize = TRUE) Данные предикторов должны храниться в объекте матрицы, поэтому кадр данных solTrainXtrans должен быть преобразован для функции enet. До моделирования необходимо выполнить центрирование и масштабирование предикторов (в том
6.5. Вычисления 165 числе автоматически — посредством аргумента normalize). Параметр lambda управляет штрафом гребневой регрессии. При присвоении ему нулевого значения параметр выполняет обучение модели лассо. Штраф лассо не обязательно задавать до момента прогнозирования: > enetPred <- predict(enetModeL, newx = as .matrix(soLTestXtrans), + s = .1, mode = "fraction", + type = "fit") > ## Возвращается список из нескольких элементов: > names(enetPred) [1] "s" ’’fraction” "mode" "fit" > ## Предиктивные значения для компоненты 'fit': > head(enetPredffit) 20 21 23 25 28 31 -0.60186178 -0.42226814 -1.20465564 -1.23652963 -1.25023517 -0.05587631 Чтобы определить, какие предикторы используются в модели, метод predict используется с аргументом type = "coefficients”: > enetCoef<- predict(enetModeL, newx = as.matrix(soLTestXtrans), + s = .1, mode = "fraction", + type = "coefficients") > taiL(enetCoeffcoefficients) NumChlorine 0.00000000 SurfaceAreal NumHalogen 0.00000000 SurfaceArea2 NumRings HydrophilicFactor 0.00000000 0.12678967 0.09035596 0.00000000 Использование сразу нескольких значений s в функции predict позволяет сгенерировать одновременно прогнозы для двух и более моделей. Для обучения модели лассо или ее альтернативной версии могут использоваться пакеты biglars (для больших наборов данных), FLLat (для объединенной модели лассо), grplasso (для групповой модели лассо), penalized, relaxo (для ослабленной модели лассо) и др. Для настройки модели эластичной сети с использованием train следует задать аргумент method="enet ”. В следующем примере модель настраивается для специализированного набора штрафов: > enetGrid <- expand,grid(.Lambda = c(0, 0.01, .1), + .fraction = seq(.05, 1, Length = 20)) > set.seed(100) > enetTune <- train(soLTrainXtrans, soLTrainY, + method = "enet", + tuneGrid = enetGrid, + trControL = ctrL, + preProc = c("center", "scaLe"))
166 Глава 6. Модели с признаками линейной регрессии Диаграмма, представленная на рис. 6.18, может быть создана на основе этого объекта посредством plot(enetTune). Упражнения 6.1. Технология инфракрасной (IR) спектроскопии используется для определения химического состава вещества. Согласно теории инфракрасной спектроскопии, уникальные молекулярные структуры поглощают инфракрасные частоты по-разному. На практике спектрометр излучает на образец материала пучок инфракрасных частот, а устройство измеряет поглощательную способность образца для каждой отдельной частоты. На основании измерений строится профиль спектра, который затем используется для определения химического состава образца материала. Прибор Tecator Infratec Food and Feed Analyzer использовался для анализа 215 образцов мяса по 100 частотам (рис. 6.20). 5,0 4,5 Рис. 6.20. Десять спектров данных Tecator. Цвета кривых отражают величины поглощения: желтый — низкое поглощение, красный — высокое поглощение Кроме инфракрасного профиля, для каждого образца определялось процентное содержимое воды, жира и белка. Если удастся установить предиктивную связь между инфракрасным спектром и содержанием жира, то специалисты по продуктам питания смогут прогнозировать содержание жира в образце на основании данных инфракрасной спектроскопии, не прибегая к инструментам аналитической химии.
Упражнения 167 Такой подход обещает известную экономию, поскольку аналитическая химия является более дорогостоящим и длительным процессом. Запустите R и введите следующие команды для загрузки данных: > Library(caret) > data(tecator) > # Для получения дополнительной информации см. ?tecator Матрица absorp содержит 100 значений для 215 образцов, а матрица endpoints — данные о содержании воды, жира и белков (столбцы 1-3 соответственно). A. В этом примере предикторами являются результаты измерений для конкретных частот, следующих в систематическом порядке (850-1,050 нм), что обусловливает высокую степень корреляции предикторов. Данные располагаются в пространстве, размерность которого меньше общего количества предикторов (100). Используйте РСА для определения фактической размерности этих данных. Чему равна фактическая размерность? Б. Разделите данные на тренировочный и тестовый набор, проведите предварительную обработку данных и постройте модели каждого вида, описанные в этой главе. Какими будут оптимальные значения параметров настройки для моделей, которым присущи эти параметры? B. Какая модель обладает наилучшей предиктивной способностью? Можно ли сказать, что какая-либо модель значительно лучше или хуже других? Г. Объясните, какую модель вы предпочтете для прогнозирования содержания жира в образце. 6.2. Разработка модели для прогнозирования проницаемости (см. раздел 1.4) позволит фармацевтическим компаниям сэкономить значительные средства, одновременно ускоряя идентификацию молекул, обладающих достаточной проницаемостью для использования в качестве лекарства. Запустите R и введите следующие команды для загрузки данных: > Library(АррLiedPredictiveModeLing) > data(permeabiLity) Матрица fingerprints содержит 1107 бинарных молекулярных предикторов для 165 веществ, матрица permeability — данные реакции, то есть проницаемости. А. Бинарные предикторы обозначают присутствие или отсутствие субструктур молекулы; часто они оказываются разреженными, то есть каждая субструктура присутствует в относительно малом количестве молекул. Отфильтруйте предикторы с низкими частотами при помощи функции nearZeroVar из пакета caret. Сколько предикторов остается для моделирования?
168 Глава 6. Модели с признаками линейной регрессии Б. Разделите данные на тренировочный и тестовый набор, проведите предварительную обработку данных и настройте модель PLS. Какое количество латентных переменных будет оптимальным, чему равна соответствующая оценка R2 при повторной выборке? В. Спрогнозируйте реакцию для тестового набора. Чему равна оценка R2 для тестового набора? Г. Попробуйте построить другие модели, описанные в этой главе. Обладает ли какая-либо модель лучшей предиктивной эффективностью? Д. Порекомендуете ли вы какую-либо из своих моделей для замены лабораторного эксперимента по измерению проницаемости? 6.3. Процесс производства химикатов для фармацевтического продукта рассматривался в разделе 1.4. В этой задаче требуется понять связь между биологическими метриками сырья (предикторами) и реакцией (выходом продукта). Биологические предикторы невозможно изменить, но они могут использоваться для оценки качества сырья перед обработкой. С другой стороны, предикторы производственного процесса могут быть изменены в процессе производства. Улучшение выхода продукта на 1 % увеличивает прибыль приблизительно на 100 000 долларов США на пакет. Запустите R и введите следующие команды для загрузки данных: > Library(AppLiedPredictiveModeLing) > data(chemicaLManufacturingProcess) Матрица processPredictors содержит 57 предикторов (12 из них описывают входной биологический материал, остальные 45 — предикторы процесса) для 176 производственных серий, yield содержит выход (в процентах) для каждой серии. A. Небольшой процент ячеек в наборе предикторов содержит отсутствующие значения. Используйте функцию подстановки для заполнения отсутствующих значений (см. в этой связи раздел 3.8). Б. Разделите данные на тренировочный и тестовый наборы, проведите предварительную обработку данных и настройте выбранную вами модель из этой главы посредством PLS. Каким будет оптимальное значение эффективности? B. Спрогнозируйте реакцию для тестового набора. Чему равно значение эффективности? Сравните ее с показателем эффективности тренировочного набора с повторной выборкой. Г. Какие предикторы наиболее важны для оцениваемой модели? Какие предикторы доминируют в списке: биологические или предикторы процесса? Д. Исследуйте связи между каждым важнейшим предиктором и реакцией. Как эта информация может применяться для улучшения выхода продукта в будущих отработках производственного процесса?
Нелинейные регрессионные модели В главе 6 рассматривались регрессионные модели, являющиеся линейными по своей природе. Многие из них могут адаптироваться для нелинейных тенденций в данных посредством ручного добавления составляющих модели (например, квадратичных), что требует знаний о сути нелинейности данных. Заметим, что существует множество нелинейных регрессионных моделей, применение которых, впрочем, возможно и без учета конкретной формы нелинейности. В этой главе рассматриваются некоторые из таких моделей: нейросети, многомерные адаптивные регрессионные сплайны (MARS), метод опорных векторов (SVM) и метод k ближайших соседей (KNN). Древовидные модели, рассматриваемые в главе 8, также нелинейны. 7.1. Нейросети Нейросети, согласно заключениям Бишопа, Рипли и Титтерингтона (Bishop, 1995; Ripley, 1996; Titterington, 2010), представляют собой мощные методы нелинейной регрессии, в основу которых положены теории мозговой активности. Как и в случае с частными наименьшими квадратами, результат моделируется промежуточным набором ненаблюдаемых или скрытых переменных, представляющих собой линейные комбинации исходных предикторов, но, в отличие от моделей PLS, не оценивающихся в иерархическом контексте (рис. 7.1). Как упоминалось, каждая скрытая переменная является линейной комбинацией, обычно преобразуемой нелинейной функцией g( •), например логистической (сигмоидальной): р ht(*) = g(|3w + £ х,Р jk), где
170 Глава 7. Нелинейные регрессионные модели Рис. 7.1. Диаграмма нейросети с одним скрытым уровнем. Скрытые переменные являются линейными комбинациями предикторов, которые были преобразованы сигмоидальной функцией. Результат моделируется линейной комбинацией скрытых переменных Yo +Yihi(x) + ^h2(x) +Vi3(x) Коэффициенты р аналогичны коэффициентам регрессии; коэффициент описывает воздействие j-ro предиктора на k-ю скрытую переменную. Модель нейросети обычно включает несколько скрытых переменных для моделирования результата. Следует учесть, что, в отличие от линейных комбинаций в PLS, не существует ограничений, которые бы помогали определять эти линейные комбинации. В этой
7.1. Нейросети 171 связи маловероятно, чтобы коэффициенты каждой переменной представляли некий осмысленный фрагмент информации. После определения количества скрытых переменных каждая из них должна быть связана с результатом, например, следующим образом: /(x) = Yo + ZyA- Для нейросетей такого типа и Р предикторов оцениваются всего Н(Р + 1) + Н + 1, причем эта величина быстро возрастает с ростом Р. Вспомним в этой связи, что данные растворимости содержали 228 предикторов. Модель нейросети с тремя скрытыми переменными будет оценивать 691 параметр, тогда как у модели с пятью скрытыми переменными их число составит 1151. Если интерпретировать эту модель как нелинейную регрессионную, то при этом параметры обычно оптимизируются для минимизации суммы квадратов остатков. Обычно параметры инициализируются случайными значениями, после чего для решения уравнений используются специализированные алгоритмы. Представленный у Румелхарта (Rumelhart et al., 1986) алгоритм обратного распространения — высокоэффективная методология, работающая с производными для нахождения оптимальных параметров. Тем не менее решение уравнения не гарантирует, что полученный набор параметров будет однозначно лучше любого другого набора. Кроме того, нейросети склонны к чрезмерному обучению связей между предикторами и реакцией из-за большого количества коэффициентов регрессии. Для решения этой проблемы существует несколько методов. Во-первых, это описанный у Уанга и Венкатеша (Wang and Venkatesh, 1984) метод ранней остановки, основанный на заблаговременном прекращении работы итеративных алгоритмов по отысканию решения регрессионных уравнений. Процедура оптимизации прерывается, как только значение оценки параметров или частоты ошибок выходит за пределы допустимой стабильности. У этой процедуры есть очевидные минусы. Во-первых, как объективно оценить погрешность модели? Кажущаяся частота ошибок может оказаться завышенной (см. раздел 4.1). Определенные затруднения могут быть обусловлены и последующим разделением тренировочного набора. Кроме того, поскольку значениям измеренной частоты ошибок тоже присуща некоторая неопределенность, как убедиться в том, что она на самом деле возрастает? Другой подход к преодолению чрезмерного обучения основан на снижении весов — штрафном методе регуляризации модели, сходном с гребневой регрессией (см. главу 6). Для больших коэффициентов регрессии добавляется штраф, с тем чтобы любое большое значение оказывало значительное влияние на погрешности модели. Формально это должно привести к минимизации альтернативной версии суммы квадратов погрешностей:
172 Глава 7. Нелинейные регрессионные модели i=l *=1 >0 k=0 для заданного значения X. С ростом значения регуляризации аппроксимированная модель становится более плавной и с меньшей вероятностью вызовет чрезмерное обучение тренировочного набора. Этот параметр, наряду с количеством скрытых переменных, является параметром настройки модели. Допустимые значения X лежат в диапазоне от 0 до 1. Поскольку коэффициенты регрессии суммируются, они должны измеряться по одной и той же шкале; следовательно, перед моделированием предикторы должны пройти центрирование и масштабирование. Описываемая структура модели соответствует простейшей архитектуре нейросети: одноуровневой сети прямого распространения. Существует и много других разновидностей, включая модели с несколькими уровнями скрытых переменных (то есть уровень скрытых переменных, моделирующий другие скрытые переменные). В других вариантах архитектуры модели также присутствуют циклы, проходящие в обоих направлениях между уровнями. Для дальнейшей оптимизации моделей допускается удаление отдельных связей между объектами, в том числе посредством методов Байеса. Так, байесовская инфраструктура, описанная у Нила (Neal, 1996), автоматически интегрирует регуляризацию и выбор признаков. Этот метод считается высокоэффективным, хотя его реализация требует обстоятельного учета вычислительных аспектов оптимизируемой модели. Очень близка к нейросетям модель самоорганизующихся карт Кохонена (Kohonen, 1995), используемая и как неконтролируемый исследовательский метод, и как контролируемый метод для выполнения прогнозирования по Мельссену (Meissen et al., 2006). С учетом проблем, связанных с оценкой большого количества параметров, аппроксимированная модель позволяет найти оценки параметров, являющиеся локально оптимальными. Заметим, что разные локально оптимальные решения могут приводить к формированию моделей, которые, сильно отличаясь друг от друга по формальным признакам, обладают при этом почти эквивалентной эффективностью. Подобная нестабильность модели иногда может затруднять ее применение. Альтернатива — создание нескольких моделей с разными начальными значениями и последующее усреднение результатов моделей для получения более стабильного прогноза, о чем упоминают, в частности, Перрон и Купер, Рипли, Тьюмер и Гош (Perrone and Cooper, 1993; Ripley, 1995; Turner and Ghosh, 1996). Усреднение моделей часто приводит к значительному положительному эффекту для нейросетей. Вместе с тем на такие модели не исключено отрицательное влияние высокой корреляции между предикторными переменными, использующими градиенты для оптимизации параметров модели.
7.1. Нейросети 173 Существуют два способа решения этой проблемы. Первый основан на предварительной фильтрации и удалении предикторов, связанных с высокими корреляциями, второй — на предшествующем моделированию выделении признаков для устранения корреляций (например, посредством анализа главных компонент). Оба способа требуют оптимизации меньшего количества составляющих модели, а это означает ускорение вычислений. Для данных растворимости (см. ранее) использовались нейросети с усреднением моделей. Были вычислены три разных значения снижения весов (X = 0,00, 0,01, 0,10) наряду с одним скрытым уровнем с размерами от 1 до 13 скрытых переменных. Итоговые прогнозы представляли результаты усреднения пяти разных нейросетей, созданных с разными исходными значениями параметров. Профили среднеквадратичной погрешности с п