Материалы ИЦ «ГЕВИССТА»

Материалы ИЦ «ГЕВИССТА» 

DS/ML/AI

238subscribers

83posts

Содержание поста-книги "Сборник статей по ML в 2-х частях (1007-стр. pdf + 266-стр. pdf, 57 статей, 25 Jupyter-тетрадок)"

ЧАСТЬ I
I. Минимально достаточный набор средств библиотеки pandas       21
Pandas – мощная, но сложная в использовании библиотека                21
Что значит «минимально достаточный набор средств библиотеки
pandas»?          22
Конкретные примеры в библиотеке pandas         23
Главный принцип минимальной достаточности              24
Отбор отдельного столбца данных             24
Никогда не используйте устаревший индексатор ix    28
Отбор с помощью at и iat    28
Дублирование методов        29
Сравнение методов .isna() и .isnull(), сравнение методов .notna() и .notnull()          30
Арифметические операторы, операторы сравнения и соответствующие им методы       31
Вычисление z-значения для каждой школы      32
Встроенные функции Python против одноименных методов библиотеки pandas                  35
Стандартизация агрегирующих операций с помощью метода .groupby() 39
Работа с MultiIndex  42
Сходство между методом .groupby(), методом .pivot_table() и функцией crosstab()             43
Сравнение методов .pivot() и .pivot_table()           49
Сходство методов .melt() и .stack()              51
Сходство между методами .pivot() и .unstack() 54
Резюме по вышеприведенным примерам            55
Дзен Python   56
Берем лучшее из API               56
Заключение  59
II. Отбор подмножеств данных в pandas                 60
Часть 4. Как НЕ нужно отбирать подмножества данных            60
Учимся, что не нужно делать           60
Получение правильного ответа с помощью неправильного кода     60
Индексирование по цепочке с использованием списков       61
Присваивание нового значения списку с помощью индексирования
по цепочке             62
Ничего не произошло???   62
Временный объект был единственным измененным объектом          62
Но разве Python не изменяет «одинаковые» объекты?                63
Оба изменились!?! 63
Докажем, что они являются одинаковыми с помощью функции id 63
Итак, почему наше присваивание с помощью индексирования по
цепочке не удалось?            64
Поверхностная и глубокая копия (для опытных)               64
Присвоим внутреннему списку значение             65
Присваивание с помощью индексирования по цепочке в один этап           65
Использование модуля copy для создания глубокой копии  66
Индексирование по цепочке в библиотеке pandas      66
Выявление индексирования по цепочке                69
Делаем программный код в примерах идиоматическим          69
Почему индексирование по цепочке – это плохо?         71
Присваивание завершилось неудачей!                  72
Как правильно выполнять операцию присваивания?                 73
Пример срабатывания предупреждения SettingWithCopy, когда
присваивание выполнено     74
Что случилось на этот раз?                75
Почему выдается предупреждение, когда наша операция
завершена успешно?              75
Почему предупреждение так бесполезно?          76
Что на самом деле должно было сказать предупреждение   77
Обобщим, когда срабатывает предупреждение SettingWithCopy    77
Как библиотека pandas узнает, что нужно вызвать
предупреждение?         80
Ложное отсутствие срабатывания SettingWithCopy при
использовании индексирования по цепочке с индексаторами .loc и .iloc                  81
Какого черта????       82
Хорошая новость      82
Два распространенных сценария                82
Сценарий 1 – Работа со всем объектом DataFrame       83
Сценарий 2 – Работа с подмножеством исходного объекта
DataFrame        84
Используйте метод .copy() 85
Избегайте двусмысленности и сложности           86
Отбор строк только с помощью оператора индексирования                86
Еще более странный… частичный отбор подмножества строк           87
Я никогда так не делаю         87
Если я хочу получить срез строк, я всегда использую .loc/.iloc           88
Поиск скалярного значения с помощью .at/.iat               88
Какое предназначение у индексаторов .at/.iat?               88
Выводы              89
III. От pandas к scikit-learn – новый подход к управлению
рабочими процессами                91
Новый уровень интеграции Scikit-Learn с Pandas           91
Краткое резюме и цели статьи       91
Знакомство с классом ColumnTransformer и обновленным классом
OneHotEncoder      92
Задача предсказания цен на недвижимость с Kaggle                 93
Исследуем данные 93
Удаление зависимой переменной из обучающего набора    93
Кодировка отдельного столбца со строковыми значениями                 94
Scikit-Learn – только двумерные данные                 94
Импортируем класс, создаем экземпляр класса - модель,
обучаем модель – трехэтапный процесс работы с моделью. 94
У нас NumPy массив. Где имена столбцов?         95
Проверка корректности первой строки данных               96
Используем метод .inverse_transform() для автоматизации
данной операции       96
Применение преобразования к тестовому набору       97
Проблема №1 – Новые категории в тестовом наборе 97
Ошибка: Unknown Category              98
Проблема №2 – Пропущенные значения в тестовом наборе                99
Проблема №3 – Пропущенные значения в обучающем наборе        99
Необходимость импутации пропущенных значений  99
Больше о методе .fit_transform()   100
Применение нескольких преобразований к тестовому набору          101
Применение конвейера      101
Почему для тестового набора мы вызываем только метод .transform()?      102
Выполнение преобразований для нескольких столбцов со
строковыми значениями    102
Обращение к отдельным этапам конвейера       103
Использование нового ColumnTransformer для отбора столбцов     103
Передаем конвейер в ColumnTransformer             103
Передаем весь объект DataFrame в ColumnTransformer            104
Извлечение названий признаков                104
Преобразование количественных переменных               105
Работа со всеми количественными признаками             105
Передаем конвейер с преобразованиями для категориальных
признаков и конвейер с преобразования для количественных признаков в
ColumnTransformer   107
Машинное обучение               107
Перекрестная проверка      108
Отбор наилучших значений гиперпараметров с помощью решетчатого поиска                 108
Представление результатов решетчатого поиска в виде датафрейма pandas        109
Создание пользовательского трансформера, выполняющего основные преобразования        109
Редкие категории     109
Написание собственного пользовательского класса 110
Применение собственного класса BasicTransformer  112
Использование BasicTransformer в конвейере 112
Биннинг и преобразование количественных переменных с помощью нового класса KBinsDiscretizer             113
Отдельная обработка всех столбцов с годами с помощью ColumnTransformer     114
Применение RobustScaler и FunctionTransformer           115
IV. Советы по оптимизации вычислений в библиотеке pandas            119
Базовое итерирование         120
Итерирование с помощью метода .iterrows()     121
Более лучший способ итерирования с помощью метода .apply()     122
Векторизация c помощью объектов Series           122
Векторизация с помощью массивов NumPy      123
Выводы              124
V. Интерпретация сложных моделей с помощью значений Шепли 125
Что значить интерпретировать модель (и почему это так
сложно)?                 125
Значения Шепли (или как я могу вычислить ϕ?)              128
VI. Бустинг и аддитивные деревья (Глава 10 книги «Основы
статистического обучения»)             134
10.1  Методы бустинга            134
10.1.1 Содержание главы  138
10.2 Бустинг обучает аддитивную модель             139
10.3 Последовательное пошаговое аддитивное обучение    140
10.4 Экспоненциальная функция потерь и AdaBoost  141
10.5. Почему именно экспоненциальная функция потерь?    143
10.6. Функции потерь и робастность         144
10.7. Готовые процедуры анализа данных            149
10.8. Пример: обнаружение спама             152
10.9. Бустинг над деревьями            153
10.10. Численная оптимизация с помощью градиентного бустинга          158
10.10.1. Наискорейший спуск        159
10.10.2. Градиентный бустинг         160
10.10.3. Реализации градиентного бустинга      162
10.11. Подбор размера деревьев в бустинге      163
10.12. Регуляризация             166
10.12.1. Коэффициент сжатия        166
10.12.2. Использование подвыборок       167
10.13. Интерпретация            170
10.13.1. Относительная важность предикторов               170
10.13.2. Графики частной зависимости 172
10.14. Иллюстрации                174
10.14.1. Цены на недвижимость в Калифорнии                174
VII. LightGBM: высокоэффективный градиентный бустинг над
деревьями решений         181
Аннотация       181
1. Введение   182
2. Предварительное описание      184
2.1. Градиентный бустинг над деревьями решений и анализ его
сложности          184
2.2. Связанные работы         184
3. Односторонний отбор на основе градиентов               188
3.1. Описание алгоритма   188
3.2. Теоретический анализ                189
4. Cвязывание взаимоисключающих признаков           191
5. Эксперименты       196
6. Заключение             200
Библиография              201
VIII. CatBoost: несмещенный градиентный бустинг, позволяющий
работать с категориальными признаками          203
Аннотация       203
1. Введение   203
2. Математический аппарат классического градиентного бустинга           204
3. Категориальные признаки           206
3.1. Работы, посвященные обработке категориальных признаков  206
3.1. Статистика зависимой переменной                 207
4. Смещение прогноза и динамический бустинг            210
4.1. Смещение прогноза    210
4.2. Динамический бустинг               212
5. Практическая реализация           213
6. Эксперименты       217
7. Заключение             221
Библиография              222
IX. XGBOOST: масштабируемая система бустинга над деревьями
решений             224
Аннотация       224
1. Введение   224
2. Градиентный бустинг в двух словах      227
2.1. Регуляризированная целевая функция         227
2.2. Градиентный бустинг над деревьями решений     228
2.3. Сокращение размера шага и случайный отбор столбцов             230
3. Алгоритмы поиска оптимальной точки расщепления           232
3.1. Точный жадный алгоритм поиска оптимальной точки расщепления  232
3.2. Аппроксимационный алгоритм поиска оптимальной точки
расщепления     232
3.3. Подход на основе взвешенных квантилей                  235
3.4 Поиск оптимальной точки расщепления, адаптированный для работы с разреженными данными           236
4. Архитектура системы        238
4.1 Блочная структура для параллельного обучения  238
4.2 Кэшируемый доступ       240
4.3 Блоки для вычислений во внешней памяти                243
5. Связанные работы              244
6. Результаты сквозных испытаний             245
6.1 Реализация системы     245
6.2 Наборы данных 246
6.3 Классификация 247
6.4 Ранжирование   248
6.5 Эксперименты с вычислениями во внешней памяти          249
6.6 Эксперименты с распределенными вычислениями            250
7. Заключение             253
Благодарности            253
Библиография              254
X. Оценка модели, выбор модели и выбор алгоритма в машинном
обучении        256
Введение: основные понятия и методы оценки модели            257
1.1. Оценка качества: обобщающая способность и выбор модели           257
1.2. Предпосылки и терминология              259
1.3. Проверка повторной подстановкой и метод разбиения на
обучающую и тестовую выборки          262
1.4. Стратификация                  262
1.5. Разбиение на обучающую и тестовую выборки    264
1.6. Пессимистичное смещение 266
1.7. Доверительные интервалы на основе аппроксимации
нормальным распределением        267
2. Бутстреп и оценка неопределенности                269
2.1. Обзор       269
2.2. Метод повторных выборок (ресемплинг)     270
2.3. Проверка с помощью метода многократного разбиения на
обучающую и тестовую выборки      274
2.4. Метод бутстрепа и эмпирические доверительные интервалы  275
3. Перекрестная проверка и настройка гиперпараметров     282
3.1. Введение                282
3.2. О гиперпараметрах и выборе модели             282
3.3. Метод разбиения набора данных на три части для
настройки гиперпараметров     285
3.4. Знакомство с k-блочной перекрестной проверкой             291
3.5. Особые случаи: 2-блочная перекрестная проверка и
перекрестная проверка с исключением по одному         293
3.6. k-блочная перекрестная проверка и компромисс между
смещением и дисперсией            297
3.7. Выбор модели с помощью k-блочной перекрестной проверки           300
3.8. Замечание по поводу выбора модели и больших наборов
данных       303
3.9. Замечание по поводу отбора признаков при выборе модели   303
3.10. Закон простоты               304
3.11. Выводы                  306
4. Сравнение алгоритмов  307
4.1. Введение                307
4.2. Проверка разности долей       307
4.3. Сравнение двух моделей с помощью критерия МакНемара      310
4.4. Получение точных p-значений с помощью биномиального
критерия                 313
4.5. Множественная проверка гипотез   314
4.6. Q-критерий Кохрена для сравнения обобщающей способности
нескольких классификаторов 316
4.7. F -критерий для проверки нескольких гипотез       319
4.8. Сравнение алгоритмов               321
4.9. Парный t-критерий с многократным разбиением на
обучающий и тестовый наборы           322
4.10. Парный t-критерий с k-блочной перекрестной проверкой       323
4.11. Парный t-критерий c 5-повторной 2-блочной перекрестной
проверкой, предложенный Диттерихом 324
4.12. Комбинированный F-критерий с 5-повторной 2-блочной
перекрестной проверкой, предложенный Алпайдином  325
4.13. Размер эффекта             325
4.14. Вложенная перекрестная проверка              325
4.15. Заключение     327
Библиография              329
XI. Декомпозиция прогнозов дерева решений и случайного леса
с помощью питоновского пакета treeinterpreter для улучшения интерпретабельности            332
1. Случайный лес как «черный ящик»      332
2. Превращение «черного» ящика в «белый ящик»: пути решений 333
3. Пример: данные о ценах на жилье в Бостоне               333
4. От деревьев решений к случайному лесу       335
5. Практическое применение пакета treeinterpreter     335
XII. Реализация стекинга с нуля в Python                340
Описание        340
Алгоритм стекинга   340
Набор данных Sonar                341
Структура пособия  341
1. Базовые модели и агрегатор      342
1.1. 1-я базовая модель – алгоритм kNN                  342
1.2. 2-я базовая модель – перцептрон     343
1.3. Агрегатор – логистическая регрессия            343
2. Объединение прогнозов                344
3. Применение стекинга к набору данных Sonar             346
Дополнительные советы     349
XIII. Руководство кегглера по стекингу моделей на практике                 351
Вступление    351
1. Формулировка задачи    351
2. Модель k-ближайших соседей (базовая модель 1) 352
3. Метод опорных векторов (базовая модель 2)                353
4. Стекинг (мета-ансамблирование)         354
5. Настройка гиперпараметров модели стекинга           358
6. Выбор модели стекинга и признаки    359
7. Стекинг на практике          360
XIV. Как выполнить бэктестинг модели, предназначенной для
прогнозирования временных рядов  362
Неприменимость k-блочной перекрестной проверки для временных
рядов и методы, которые можно использовать       362
Оценка модели           362
Ежемесячные данные по количеству пятен на Солнце               364
Загрузка данных        365
Однократное разбиение на обучающий и тестовый наборы                365
Многократное разбиение на обучающий и тестовый наборы              367
Проверка «Walk Forward»   369
XV. Остерегайтесь обычных важностей случайного леса         372
Знакомство с важностями признаков     372
Неприятности в раю                374
Способ вычисления важностей признаков, используемый по
умолчанию               375
Пермутированная важность            376
Важность удаленного столбца       379
Сравнение важностей, вычисленных в пакете R randomForest и
питоновской библиотеке scikit-learn             381
Важность на основе усредненного уменьшения неоднородности в R      382
Пермутированная важность в R   382
Важность удаленного столбца в R               383
Результаты экспериментов                383
Пермутированная важность, не зависящая от модели              383
Анализ производительности           384
Влияние размера проверочного набора на важность                 386
Влияние коллинеарных признаков на важность             387
Работа с коллинеарными признаками    391
Мультиколлинеарность в наборе данных Breast cancer             394
Выводы              399
Ресурсы и примеры программного кода                 400
Python                  401
R              402
Данные Kaggle              402
Заключение: понимание причин и дальнейшие действия    402
XVI. Калибровка вероятностей       404
XVII. Разница между PR-кривыми и ROC-кривыми в оценке качества моделей обнаружения мошенничества с кредитными картами             411
Аннотация       411
1. Введение   412
2. Оценка модели классификации              413
3. Эксперименты       415
4. Анализ PR-кривых и ROC-кривых           419
5. Выводы        421
XVIII. Объяснение принципов байесовской оптимизации
гиперпараметров для машинного обучения          422
Оптимизация гиперпараметров   423
Байесовская оптимизация                425
Последовательная оптимизация по модели       428
Область значений гиперпараметров       428
Целевая функция      430
Суррогатная функция (вероятностная модель)                 431
Функция отбора          432
История             436
Собираем все вместе             436
Реализации   437
Выводы              437
XIX. Настройка гиперпараметров с помощью Hyperopt             438
Целевая функции – мотивирующий пример       439
Более сложные примеры   440
Области поиска          442
Получение результатов испытаний            443
Визуализация               444
Набор данных Iris     446
Метод k ближайших соседей           447
Метод опорных векторов (SVM)     451
Дерево решений       452
Случайный лес            453
Собираем все вместе             455
Заключение  456
XX. Вложенная перекрестная проверка для временных рядов          457
Вариант использования      457
Перекрестная проверка      457
Почему перекрестная проверка для временных рядов должна
осуществляться иным способом?      458
1. Временные зависимости               458
2. Произвольный выбор тестового набора           459
Методы вложенной перекрестной проверки для одного временного ряда               460
Прогнозирование второй части данных                 460
Проверка расширяющимся окном на один день вперед         460
Методы вложенной перекрестной проверки для нескольких
временных рядов  461
Обычная вложенная перекрестная проверка   461
Модифицированная вложенная перекрестная проверка        461
Выводы              462
Библиография              462
Замечание по статье (Артем Груздев)       463
XXI. Метрики качества классификаторов               465
Аннотация       465
Ключевые слова        465
1. Введение   466
2. Качество классификации             467
2.1. Метрики классификации и несбалансированные данные           469
2.2. Правильность и доля ошибок               470
2.3. Чувствительность и специфичность                471
2.4. Доля ложноположительных и ложноотрицательных случаев    472
2.5. Предсказательные ценности                 472
2.6. Отношение правдоподобия  473
2.7. Индекс Юдена  474
2.8. Другие метрики                 474
2.9. Наглядный пример        478
3. Рабочая характеристика приёмника (ROC-кривая)                  480
4. Площадь под ROC-кривой (AUC)            489
5. Кривые точности-полноты (PR-кривые)             491
6. Метрики биометрических систем          494
7. Результаты эксперимента             497
8. Заключение             498
Библиография              498
XXII. Отбор с минимальной дисперсией в стохастическом
градиентном бустинге             501
Аннотация       501
1. Введение   501
2. История вопроса 503
2.1. Градиентный бустинг   503
2.2. Стохастический градиентный бустинг           505
2.3. GOSS         505
3. Сопутствующие работы 505
4. Отбор с минимальной дисперсией (MVS)       506
4.1. Постановка задачи       506
4.2. Теоретический анализ                509
4.3. Алгоритм                 510
5. Эксперименты       512
6. Заключение             516
Благодарности            516
Библиография              517
XXIII. Optuna или Hyperopt: какую библиотеку оптимизации
гиперпараметров вам стоит выбрать      519
Простота использования и API      519
Опции, методы и гиперпараметры              521
Пространство поиска            521
Методы оптимизации             522
Функции обратного вызова               524
Сохранение и перезапуск 526
Запуск прунинга        526
Обработка исключений       527
Документация              528
Визуализация               529
Скорость и распараллеливание  533
XXIV. Изолирующий лес       535
Аннотация       535
1. Введение   535
2. Изоляция и изолирующие деревья      537
3. Свойства изолирующих деревьев         542
4. Поиск аномалий с помощью изолирующего леса  545
4.1. Этап обучения  545
4.2. Этап оценки        547
5. Результаты экспериментов          547
5.1. Сравнение с ORCA, LOF, RF    549
5.2. Анализ эффективности               551
5.3. Высокоразмерные данные     552
5.4. Обучение на наборе, полностью состоящем из нормальных
наблюдений    554
6. Обсуждение            555
7. Заключение             555
Библиография              556
XXV. Калибровка вероятностей на основе сплайнов   558
Аннотация       558
1. Введение и обоснование              558
2. Предшествующие работы            560
3. Описание алгоритма        561
3.1. Алгоритм SplineCalib   561
3.2. Кратко о сплайнах          562
3.3. Предварительные данные       564
4. Бинарная классификация            564
4.1. Первый пример бинарной классификации               565
5. Калибровка для чрезмерно уверенных моделей      566
5.1. Функция компактного логита                  567
5.2. Наивный байесовский классификатор на наборе данных Adult         568
6. Расширение на случай многоклассовой классификации                  568
6.1. CIFAR10 и сверточные нейронные сети        569
7. Калибровка с перекрестной проверкой            570
8. Реализация на Python     572
9. Выводы и будущие работы           572
Библиография              573
XXVI. Параметры для обработки категориальных признаков в
CatBoost    575
1. Введение: категориальные признаки в машинном обучении        575
2. Обработка категориальных признаков в CatBoost  577
3. Параметры для обработки категориальных признаков на
практике: прогнозирование цен на старые автомобили         578
Параметры кодирования категориальных признаков в CatBoost     580
Параметры по умолчанию                  582
one_hot_max_size      582
model_size_reg             582
Количество признаков в комбинации     584
has_time            585
simple_ctr и combinations_ctr          585
Кодировки без квантования зависимой переменной                  585
FloatTargetMeanValue (только для GPU)  586
FeatureFreq (только для GPU)           586
Counter               586
Параметр
CtrBorderCount  586
Binarized
Target Mean Value                 587
Кодировки с квантованием зависимой переменной  588
Buckets и Borders      588
Обработка пропущенных значений и новых категорий             590
Количество граничных значений                 590
Значения по умолчанию для simple_ctr и combinations_ctr  590
Индивидуальная обработка признаков с помощью параметра
per_feature_ctr    591
counter_calc_method              591
Количество граничных значений для квантования зависимой переменной           592
Ограничение на количество категорий 592
Сохранение простых категориальных признаков           592
Внутренняя важность признака   593
Настройка параметров для задач бинарной классификации и
многоклассовой классификации       595
Вывод 596
XXVII. Ограничение взаимосвязи между зависимой переменной и
признаком монотонной функций в XGBoost    597
Монотонность модели: пример     597
За пределами линейных моделей                597
Ограничение монотонной функцией в XGBoost               598
Библиография              605
XXVIII. Отбор признаков для высокоразмерных данных: быстрая
фильтрация на основе корреляции              606
Аннотация       606
1. Введение   606
2. Связанные работы              608
3. Меры, основанные на корреляции       610
4. Метод-фильтр на основе корреляции                  612
4.1. Методология       612
4.2. Алгоритм и анализ         614
Благодарности            616
Библиография              616
XXIX. Объяснение работы HDBSCAN и алгоритмов кластеризации
на основе плотности             619
Плотные области и моды многомерного распределения         623
Локальная аппроксимация плотности    631
Выбор гиперпараметров и другие важные моменты   641
Резюме              649
Библиография              650
XXX. Поиск аномалий во временных рядах на примере данных
датчиков 652
Описание проблемы               652
Данные               653
Разведочный анализ данных          657
Стационарность и автокорреляция           658
Предварительная обработка и сокращение размерности     659
Моделирование         663
Межквартильный размах   663
Кластеризация методом K-средних           665
Изолирующий лес   669
Оценка модели           669
Заключение  670
XXXI. Прогнозирование временных рядов с помощью библиотеки
Prophet в Python        671
Набор о продажах автомобилей  672
Визуализация данных о продажах              672
Прогнозирование продаж автомобилей с помощью Prophet               673
XXXII. Машинное обучение встречает экономику, часть первая        676
Случай бесполезной модели          677
Анализ: кривые безразличия в ROC-пространстве      686
Выводы и рекомендации    690
Похожие источники                 690
XXXIII. Машинное обучение встречает экономику, часть вторая       692
Не спешим избавляться от людей               692
Анализ: классификация с возможностью отклонения               698
Выводы и рекомендации    700
XXXIV. Как прогнозировать несколько временных рядов сразу с
помощью библиотеки scikit-learn (на примере прогноза продаж)                  702
Отдельные модели машинного обучения против больших
универсальных моделей       702
Подготовка данных 703
Конструирование базовых признаков     704
Оценка качества       705
Построение базовой модели и валидация           705
Построение рабочей модели          707
Изменение функции потерь и распределения зависимой
переменной      711
Оптимальная модель              712
Советы по улучшению решения  714
XXXV. Тестирование моделей прогнозирования COVID-19 на
исторических данных        715
Аннотация       715
1. Введение   716
2. Данные        721
3. Методология            722
3.1 Тестирование на исторических данных         722
3.2. Функция потерь                 724
3.3. Модели    725
4. Эксперименты       730
5. Выводы        731
Источники      732
XXXVI. Знакомство с временными рядами            737
Введение         737
Подготовка данных 738
Создание базовых признаков        740
Лаги     741
Статистики, созданные с помощью метода скользящего окна           743
Статистики, созданные с помощью метода расширяющегося окна              744
Визуализация данных           745
Линейный график     745
Гистограмма и график ядерной оценки плотности        746
Ящичковая диаграмма         746
Теплокарта     748
Диаграмма рассеяния для лага    748
График автокорреляции      750
Скользящее среднее как прогноз               751
Компоненты временного ряда       753
Стационарность временных рядов             754
Проверка стационарности                754
Расширенный тест Дикки-Фуллера            755
Валидация модели  756
Разбиение на обучающую и тестовую выборки с учетом временной
структуры  756
Многократное разбиение на обучающую и тестовую выборки с
учетом временной структуры               757
Последовательная проверка с учетом временной структуры               758
Построение базовой модели           759
Визуализация ошибок прогноза (остатков)         761
Гистограмма распределения остатков    762
График Q-Q    762
График автокорреляции остатков                 763
Авторегрессионная модель              764
Использование модели для прогнозирования значений на 7 шагов вперед          765
Последовательная проверка           766
Прогнозная модель остатков           769
Добавление прогнозов остатков к прогнозам   772
Модель ARIMA для прогнозирования       774
Последовательная проверка модели ARIMA       777
Поиск наилучшей модели ARIMA                 778
Последовательная проверка наилучшей модели ARIMA          780
XXXVII. Полное руководство по созданию ML-конвейера с
использованием библиотеки PySpark MLlib в среде Google Colab    783
Содержание статьи                  783
Введение         783
Что такое PySpark?   784
Наши учебные задачи          784
Установка PySpark Google Colab   784
Загрузка данных        785
Подготовка данных 786
Создание конвейера на основе случайного леса          787
Создание объекта перекрестной проверки для настройки гиперпараметров       788
Обучение и прогноз                 789
Оценка качества модели    790
Выводы              791
XXXVIII. Принципы и практика применения интерпретируемого
машинного обучения 792
Аннотация       792
1. Введение   793
2. Предыдущие работы        795
3. Область применения        796
4. Аспекты интерпретируемости модели                797
4.1. Прозрачность или транспарентность (transparency)         797
4.2. Критерии оценки             798
4.3. Типы объяснений             799
5. Изучение XAI           800
5.1. Уровень таксономии    801
5.2. Уровень транспарентности    802
5.3. Уровень возможностей XAI     803
5.4. Уровень типов объяснений    804
5.5. Уровень стратегии специалиста в области данных             805
6. Прозрачные (транспарентные) модели             805
7. Непрозрачные модели   809
8. Подходы к интерпретируемости              810
8.1 Подходы к интерпретируемости случайного леса                  810
8.2. Модельно-независимые подходы к интерпретируемости             813
9. Краткий обзор подходов XAI для моделей глубокого обучения     817
10. Предложения и мнения               818
11. Джейн, специалистка по анализу данных   821
12. Будущие направления 835
Библиография              837
XXXIX. Бизнес-прогнозирование с помощью Facebook Prophet         844
Предисловие                844
Задача                845
Введение в Prophet – основные понятия                 845
Данные               846
План    846
Первый взгляд на данные 846
Удаление поездок в выходные дни             848
Применение преобразования Бокса-Кокса        849
Визуализация данных о погоде     850
Прогнозирование с помощью Prophet – первая попытка         851
Проверка результатов           854
Перекрестная проверка      854
Метрики качества модели 858
Улучшение прогнозов            860
Добавление праздников     860
Добавление дополнительных регрессоров (предикторов)     864
Настройка гиперпараметров          866
Построение и проверка всей модели      868
Выполнение обратного преобразования Бокса-Кокса для
получения исходных значений зависимой переменной             869
Заключение  870
XL. Введение в прогнозирование иерархических временных рядов
(в двух частях)          871
Постановка проблемы и обзор различных подходов.                  871
Теоретическое введение    871
Восходящий подход (bottom-up)  873
Нисходящий подход (top-down)    874
Усредненный подход (middle-out)                874
Оптимально согласованный подход (optimal reconciliation) 874
Загрузка и предварительная подготовка данных, содержащих
иерархические временные ряды        876
Создание иерархии                 880
Визуализация данных           885
Прогнозирование иерархических временных рядов  887
Восходящий подход (bottom-up)  888
Нисходящий подход (top-down)    889
Оптимально согласованный подход (optimal reconciliation) 892
Выводы              894
XLI. Деревья калибровки вероятностей 895
Аннотация       895
1. Введение   895
2. Методы калибровки вероятностей        897
2.1. Калибровка Платта        897
2.2. Изотоническая регрессия       898
2.3. Другие подходы                 898
3. Деревья логистических моделей            898
4. Деревья калибровки вероятностей      900
4.1. Обучение деревьев калибровки        901
4.2. Вывод в деревьях калибровки              903
4.3. Искусственный пример              903
5. Эксперименты       904
5.1. Эксперименты с наборами данных UCI        905
5.2. Диаграммы калибровки (графики надежности)    910
6. Заключение             911
Благодарности            913
Библиография              913
XLII. Регрессия, учитывающая избыток нулевых значений
зависимой переменной        916
Данные с избытком нулевых значений зависимой переменной       916
Задача с избытком нулевых значений зависимой переменной         917
Регрессия, учитывающая избыток нулевых значений зависимой
переменной   919
XLIII. Применение LSTM для прогнозирования временных рядов     925
Загрузка необходимых библиотек               925
Загрузка данных        926
Предварительная обработка данных       927
Стандартизация данных     929
Преобразование данных    930
Нейронная сеть с долгой краткосрочной памятью       931
Обучение LSTM           935
Teacher Forcing (Форсирование учителя)                938
Заключение  941
XLIV. Классификация против прогнозирования                942
XLV. Ущерб, наносимый верностью (accuracy), и другими
некорректными дискретными скоринговыми правилами для оценки верности (accuracy)                  946
XLVI. Иллюстрированное руководство по модели пуассоновской
регрессии, учитывающей избыточное количество нулей        949
Модель пуассоновской регрессии, учитывающая избыток нулей   951
Структура ZIP-модели             951
Знакомство с ϕ            953
Как оценить ϕ?            954
Обучение ZIP-модели с помощью Python              956
Интерпретация результатов обучения     961
Интересное упражнение    964
Предлагаемые статьи для дальнейшего чтения               964
XLVII. Статистические тесты, p-значения, доверительные
интервалы и мощность: путеводитель по неверным толкованиям      965
Аннотация       965
Введение         966
Статистические тесты, p-значения и доверительные интервалы:
пособие с критическими замечаниями  967
Статистические модели, гипотезы и тесты           967
Неопределенность, вероятность и статистическая значимость       968
От тестов к оценкам                 971
О чем нам не говорят P-значения, доверительные интервалы и
мощность?           972
Распространенные неверные толкования P-значений              972
Распространенные неверные толкования сравнений и прогнозов
на основе P-значений          977
Распространенные неверные интерпретации доверительных
интервалов               979
Распространенные неверные интерпретации мощности        982
Статистическая модель — это нечто гораздо большее, чем
уравнение с греческими буквами               984
Выводы              985
Библиография              989
XLVIII. Трансформеры – это не то, что вам нужно              994
Потеря информации о временной структуре     995
Базовые линейные модели могут превзойти сложные трансформеры        996
Неспособность извлечь временные отношения из более длинных
входных последовательностей   997
Неспособность адаптировать внимание к временной структуре     998
Уступают более простым моделям              998
ЧАСТЬ II
XLIX. SketchBoost: быстрый градиентный бустинг над деревьями решений для задач с многомерным выходом     6
Аннотация       6
1. Введение   6
2. Предпосылки          10
2.1. Вычисление значений листьев           12
2.2. Поиск структуры дерева            12
3. Оценка качества разбиений с помощью скетчей    13
3.1. Top Outputs (Лучшие выходы)                15
3.2. Random Sampling (Случайный отбор)             16
3.3. Random Projections (Случайные проекции)               17
3.4. Анализ сложности          18
4. Численные эксперименты           19
5. Вывод            25
Благодарности            26
Библиография              26
XLX. Использование Causal Inference для оптимизации разработки месторождений: применение к нетрадиционным нефтегазовым комплексам (НГК) 30
Аннотация       30
1. Введение   31
2. Описание месторождения Марцелл   32
3. Фреймворк потенциальных исходов и сопоставление по оценке
склонности для анализа причинно-следственных связей  35
3.1. Прогнозирование оценки склонности          37
3.2. Выбор ковариат для прогнозирования оценки склонности         37
3.3. Сопоставление по оценке склонности и оценивание эффекта         38
4. Кейс 1: Влияние использования керамического проппанта
вместо песчаного в месторождении Марцелл            39
4.1. Прогнозирование оценки склонности          39
4.2. Сопоставление по оценке склонности          40
5. Кейс 2 c непрерывной переменной воздействия: влияние увеличения латеральной длины в месторождениях Марцелл, Хейнсвилл и Ютика 42
5.1. Описание наборов данных     43
5.2. Прогнозирование оценки склонности и сопоставление                43
5.3. Сравнение продуктивности скважин             43
6. Обсуждение            47
6.1. Интерпретация результатов сопоставления по оценке склонности     47
6.2. Другие варианты использования оценки склонности      48
6.3. Использование других методов          49
7. Выводы        49
Библиография              50
L. Прогнозирование, причинно-следственная связь и обратная связь 51
Понимание причинно-следственной связи важно при
прогнозировании                51
Прогнозирование с обратной связью     52
Когда точность не является целью              53
Прогнозирование COVID-19             54
Оценка качества прогнозов с обратной связью              54
Библиография              55
LI. TimeGPT: первая фундаментальная модель прогнозирования временных рядов         57
Аннотация       57
Исследуем TimeGPT                 58
Обучение TimeGPT  59
Архитектура TimeGPT              59
Возможности TimeGPT          60
Прогноз с помощью TimeGPT          61
Импорт библиотек и загрузка данных      61
Прогнозируем с помощью TimeGPT          66
Прогнозирование с помощью N-BEATS, N-HiTS и PatchTST    68
Оценка качества модели    71
Мое личное мнение о TimeGPT      73
Заключение  74
LII. Самый легкий способ прогнозировать временные ряды с помощью N-BEATS              75
Аннотация       75
Объяснение  75
Расширение базиса                76
Архитектура N-BEATS              77
Делаем модель интерпретируемой            79
Подводим итоги         80
Прогнозирование с помощью N-BEATS 80
Загружаем данные  81
Разбиение данных на обучающую и тестовую выборки            83
Базовая модель          83
N-BEATS без ковариат            85
N-BEATS с ковариатами        87
Заключение  90
LIII. Все об N-HiTS      91
Аннотация       91
Изучаем N-HiTS          92
Архитектура N-HiTS 92
Использование разной частоты дискретизации (multi-rate input sampling)  93
Регрессия        95
Иерархическая интерполяция       96
Итоги по N-HiTS          99
Прогнозирование с помощью N-HiTS      100
Загружаем данные  100
Разбиение данных на обучающую и тестовую выборки            101
Базовая модель          102
Демонстрация MaxPool        104
N-HiTS                  105
Заключение  107
LIV. PatchTST 108
Аннотация       108
Изучаем PatchTST     109
Независимость каналов (channel independence)            110
Патчификация             110
Как работает патчификация              111
Преимущества патчификации       112
Кодировщик трасформера                113
Улучшение PatchTST с помощью обучения представлениям                 113
Прогнозирование с помощью PatchTST 114
Предварительная подготовка         114
Моделирование         118
Прогнозирование    118
Оценка качества       120
Заключение  121
LV. РАЗЛОЖЕНИЕ ВРЕМЕННЫХ РЯДОВ С ПОМОЩЬЮ СИНГУЛЯРНО-СПЕКТРАЛЬНОГО АНАЛИЗА      122
Цель этого пособия 123
Структура         123
1. Игрушечный временной ряд     124
2. Метод сингулярно-спектрального анализа (SSA)      126
2.1. От временного ряда к траекторной матрице             126
2.2. Разложение траекторной матрицы 128
2.3. Восстановление временного ряда   136
3. Разделение и группировка компонент временного ряда   144
4. Python’овский класс для SSA    148
5. Длина окна                152
5.1. L=2               152
5.2. L=5               153
5.3. L=20            153
5.4. L=40            155
5.5. L=60            157
6. Набор MotionSense: применение SSA к данным акселерометра 161
6.1. Загрузка данных               161
6.2. Визуализация данных                  161
6.3. Декомпозиция временного ряда с помощью SSA                 163
6.4. Использование SSA для извлечения «подписи» (сигнатуры) ходьбы человека            171
7. Несколько финальных слов        176
LVI. TWEEDIE-РЕГРЕССИЯ ДЛЯ ПРОГНОЗИРОВАНИЯ СТРАХОВЫХ ТРЕБОВАНИЙ                178
Загрузка наборов данных, извлечение основных признаков и
определение зависимых переменных              182
Модель прогнозирования частоты (использование распределения
Пуассона)   184
Модель прогнозирования серьезности (использование
гамма-распределения)                186
Сравнение качества прогнозирования чистой премии с помощью
модели продукта и отдельной модели TweedieRegressor      189
LVII. ЭМБЕДДИНГИ  195
1. Введение   195
2. Рекомендация как бизнес-услуга          204
2.1. Создание веб-приложения    207
2.2. Сравнение систем на основе правил и систем на основе
машинного обучения      209
2.3. Построение веб-приложения, использующего машинное
обучение 212
2.4. Формулировка проблемы машинного обучения  214
2.4.1. Задача рекомендаций            218
2.5. Векторы числовых признаков               223
2.6. От слов к векторам в трех простых словах  224
3. Экскурс в историю появления разных способов кодирования     226
3.1. Ранние подходы                227
3.2. Кодирование      227
3.3. Латентное размещение Дирихле (LDA) и латентный семантический анализ (LSA)  246
3.4. Ограничения традиционных подходов         247
3.5. Метод опорных векторов           250
3.6. Word2Vec                251
Go up