Содержание поста-книги "Сборник статей по ML в 2-х частях (1007-стр. pdf + 266-стр. pdf, 57 статей, 25 Jupyter-тетрадок)"
ЧАСТЬ I
I. Минимально достаточный набор средств библиотеки pandas 21
Pandas – мощная, но сложная в использовании библиотека 21
Что значит «минимально достаточный набор средств библиотеки
pandas»? 22
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
Временный объект был единственным измененным объектом 62
Но разве Python не изменяет «одинаковые» объекты? 63
Оба изменились!?! 63
Докажем, что они являются одинаковыми с помощью функции id 63
Итак, почему наше присваивание с помощью индексирования по
цепочке не удалось? 64
цепочке не удалось? 64
Поверхностная и глубокая копия (для опытных) 64
Присвоим внутреннему списку значение 65
Присваивание с помощью индексирования по цепочке в один этап 65
Использование модуля copy для создания глубокой копии 66
Индексирование по цепочке в библиотеке pandas 66
Выявление индексирования по цепочке 69
Делаем программный код в примерах идиоматическим 69
Почему индексирование по цепочке – это плохо? 71
Присваивание завершилось неудачей! 72
Как правильно выполнять операцию присваивания? 73
Пример срабатывания предупреждения SettingWithCopy, когда
присваивание выполнено 74
присваивание выполнено 74
Что случилось на этот раз? 75
Почему выдается предупреждение, когда наша операция
завершена успешно? 75
завершена успешно? 75
Почему предупреждение так бесполезно? 76
Что на самом деле должно было сказать предупреждение 77
Обобщим, когда срабатывает предупреждение SettingWithCopy 77
Как библиотека pandas узнает, что нужно вызвать
предупреждение? 80
предупреждение? 80
Ложное отсутствие срабатывания SettingWithCopy при
использовании индексирования по цепочке с индексаторами .loc и .iloc 81
использовании индексирования по цепочке с индексаторами .loc и .iloc 81
Какого черта???? 82
Хорошая новость 82
Два распространенных сценария 82
Сценарий 1 – Работа со всем объектом DataFrame 83
Сценарий 2 – Работа с подмножеством исходного объекта
DataFrame 84
DataFrame 84
Используйте метод .copy() 85
Избегайте двусмысленности и сложности 86
Отбор строк только с помощью оператора индексирования 86
Еще более странный… частичный отбор подмножества строк 87
Я никогда так не делаю 87
Если я хочу получить срез строк, я всегда использую .loc/.iloc 88
Поиск скалярного значения с помощью .at/.iat 88
Какое предназначение у индексаторов .at/.iat? 88
Выводы 89
III. От pandas к scikit-learn – новый подход к управлению
рабочими процессами 91
рабочими процессами 91
Новый уровень интеграции Scikit-Learn с Pandas 91
Краткое резюме и цели статьи 91
Знакомство с классом ColumnTransformer и обновленным классом
OneHotEncoder 92
OneHotEncoder 92
Задача предсказания цен на недвижимость с Kaggle 93
Исследуем данные 93
Удаление зависимой переменной из обучающего набора 93
Кодировка отдельного столбца со строковыми значениями 94
Scikit-Learn – только двумерные данные 94
Импортируем класс, создаем экземпляр класса - модель,
обучаем модель – трехэтапный процесс работы с моделью. 94
обучаем модель – трехэтапный процесс работы с моделью. 94
У нас NumPy массив. Где имена столбцов? 95
Проверка корректности первой строки данных 96
Используем метод .inverse_transform() для автоматизации
данной операции 96
данной операции 96
Применение преобразования к тестовому набору 97
Проблема №1 – Новые категории в тестовом наборе 97
Ошибка: Unknown Category 98
Проблема №2 – Пропущенные значения в тестовом наборе 99
Проблема №3 – Пропущенные значения в обучающем наборе 99
Необходимость импутации пропущенных значений 99
Больше о методе .fit_transform() 100
Применение нескольких преобразований к тестовому набору 101
Применение конвейера 101
Почему для тестового набора мы вызываем только метод .transform()? 102
Выполнение преобразований для нескольких столбцов со
строковыми значениями 102
строковыми значениями 102
Обращение к отдельным этапам конвейера 103
Использование нового ColumnTransformer для отбора столбцов 103
Передаем конвейер в ColumnTransformer 103
Передаем весь объект DataFrame в ColumnTransformer 104
Извлечение названий признаков 104
Преобразование количественных переменных 105
Работа со всеми количественными признаками 105
Передаем конвейер с преобразованиями для категориальных
признаков и конвейер с преобразования для количественных признаков в
ColumnTransformer 107
признаков и конвейер с преобразования для количественных признаков в
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
сложно)? 125
Значения Шепли (или как я могу вычислить ϕ?) 128
VI. Бустинг и аддитивные деревья (Глава 10 книги «Основы
статистического обучения») 134
статистического обучения») 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
Аннотация 181
1. Введение 182
2. Предварительное описание 184
2.1. Градиентный бустинг над деревьями решений и анализ его
сложности 184
сложности 184
2.2. Связанные работы 184
3. Односторонний отбор на основе градиентов 188
3.1. Описание алгоритма 188
3.2. Теоретический анализ 189
4. Cвязывание взаимоисключающих признаков 191
5. Эксперименты 196
6. Заключение 200
Библиография 201
VIII. CatBoost: несмещенный градиентный бустинг, позволяющий
работать с категориальными признаками 203
работать с категориальными признаками 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
Аннотация 224
1. Введение 224
2. Градиентный бустинг в двух словах 227
2.1. Регуляризированная целевая функция 227
2.2. Градиентный бустинг над деревьями решений 228
2.3. Сокращение размера шага и случайный отбор столбцов 230
3. Алгоритмы поиска оптимальной точки расщепления 232
3.1. Точный жадный алгоритм поиска оптимальной точки расщепления 232
3.2. Аппроксимационный алгоритм поиска оптимальной точки
расщепления 232
расщепления 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
обучении 256
Введение: основные понятия и методы оценки модели 257
1.1. Оценка качества: обобщающая способность и выбор модели 257
1.2. Предпосылки и терминология 259
1.3. Проверка повторной подстановкой и метод разбиения на
обучающую и тестовую выборки 262
обучающую и тестовую выборки 262
1.4. Стратификация 262
1.5. Разбиение на обучающую и тестовую выборки 264
1.6. Пессимистичное смещение 266
1.7. Доверительные интервалы на основе аппроксимации
нормальным распределением 267
нормальным распределением 267
2. Бутстреп и оценка неопределенности 269
2.1. Обзор 269
2.2. Метод повторных выборок (ресемплинг) 270
2.3. Проверка с помощью метода многократного разбиения на
обучающую и тестовую выборки 274
обучающую и тестовую выборки 274
2.4. Метод бутстрепа и эмпирические доверительные интервалы 275
3. Перекрестная проверка и настройка гиперпараметров 282
3.1. Введение 282
3.2. О гиперпараметрах и выборе модели 282
3.3. Метод разбиения набора данных на три части для
настройки гиперпараметров 285
настройки гиперпараметров 285
3.4. Знакомство с k-блочной перекрестной проверкой 291
3.5. Особые случаи: 2-блочная перекрестная проверка и
перекрестная проверка с исключением по одному 293
перекрестная проверка с исключением по одному 293
3.6. k-блочная перекрестная проверка и компромисс между
смещением и дисперсией 297
смещением и дисперсией 297
3.7. Выбор модели с помощью k-блочной перекрестной проверки 300
3.8. Замечание по поводу выбора модели и больших наборов
данных 303
данных 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
критерия 313
4.5. Множественная проверка гипотез 314
4.6. Q-критерий Кохрена для сравнения обобщающей способности
нескольких классификаторов 316
нескольких классификаторов 316
4.7. F -критерий для проверки нескольких гипотез 319
4.8. Сравнение алгоритмов 321
4.9. Парный t-критерий с многократным разбиением на
обучающий и тестовый наборы 322
обучающий и тестовый наборы 322
4.10. Парный t-критерий с k-блочной перекрестной проверкой 323
4.11. Парный t-критерий c 5-повторной 2-блочной перекрестной
проверкой, предложенный Диттерихом 324
проверкой, предложенный Диттерихом 324
4.12. Комбинированный F-критерий с 5-повторной 2-блочной
перекрестной проверкой, предложенный Алпайдином 325
перекрестной проверкой, предложенный Алпайдином 325
4.13. Размер эффекта 325
4.14. Вложенная перекрестная проверка 325
4.15. Заключение 327
Библиография 329
XI. Декомпозиция прогнозов дерева решений и случайного леса
с помощью питоновского пакета treeinterpreter для улучшения интерпретабельности 332
с помощью питоновского пакета 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
прогнозирования временных рядов 362
Неприменимость k-блочной перекрестной проверки для временных
рядов и методы, которые можно использовать 362
рядов и методы, которые можно использовать 362
Оценка модели 362
Ежемесячные данные по количеству пятен на Солнце 364
Загрузка данных 365
Однократное разбиение на обучающий и тестовый наборы 365
Многократное разбиение на обучающий и тестовый наборы 367
Проверка «Walk Forward» 369
XV. Остерегайтесь обычных важностей случайного леса 372
Знакомство с важностями признаков 372
Неприятности в раю 374
Способ вычисления важностей признаков, используемый по
умолчанию 375
умолчанию 375
Пермутированная важность 376
Важность удаленного столбца 379
Сравнение важностей, вычисленных в пакете R randomForest и
питоновской библиотеке scikit-learn 381
питоновской библиотеке 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
гиперпараметров для машинного обучения 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
осуществляться иным способом? 458
1. Временные зависимости 458
2. Произвольный выбор тестового набора 459
Методы вложенной перекрестной проверки для одного временного ряда 460
Прогнозирование второй части данных 460
Проверка расширяющимся окном на один день вперед 460
Методы вложенной перекрестной проверки для нескольких
временных рядов 461
временных рядов 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
Аннотация 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
гиперпараметров вам стоит выбрать 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
наблюдений 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
CatBoost 575
1. Введение: категориальные признаки в машинном обучении 575
2. Обработка категориальных признаков в CatBoost 577
3. Параметры для обработки категориальных признаков на
практике: прогнозирование цен на старые автомобили 578
практике: прогнозирование цен на старые автомобили 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
CtrBorderCount 586
Binarized
Target Mean Value 587
Target Mean Value 587
Кодировки с квантованием зависимой переменной 588
Buckets и Borders 588
Обработка пропущенных значений и новых категорий 590
Количество граничных значений 590
Значения по умолчанию для simple_ctr и combinations_ctr 590
Индивидуальная обработка признаков с помощью параметра
per_feature_ctr 591
per_feature_ctr 591
counter_calc_method 591
Количество граничных значений для квантования зависимой переменной 592
Ограничение на количество категорий 592
Сохранение простых категориальных признаков 592
Внутренняя важность признака 593
Настройка параметров для задач бинарной классификации и
многоклассовой классификации 595
многоклассовой классификации 595
Вывод 596
XXVII. Ограничение взаимосвязи между зависимой переменной и
признаком монотонной функций в XGBoost 597
признаком монотонной функций в XGBoost 597
Монотонность модели: пример 597
За пределами линейных моделей 597
Ограничение монотонной функцией в XGBoost 598
Библиография 605
XXVIII. Отбор признаков для высокоразмерных данных: быстрая
фильтрация на основе корреляции 606
фильтрация на основе корреляции 606
Аннотация 606
1. Введение 606
2. Связанные работы 608
3. Меры, основанные на корреляции 610
4. Метод-фильтр на основе корреляции 612
4.1. Методология 612
4.2. Алгоритм и анализ 614
Благодарности 616
Библиография 616
XXIX. Объяснение работы HDBSCAN и алгоритмов кластеризации
на основе плотности 619
на основе плотности 619
Плотные области и моды многомерного распределения 623
Локальная аппроксимация плотности 631
Выбор гиперпараметров и другие важные моменты 641
Резюме 649
Библиография 650
XXX. Поиск аномалий во временных рядах на примере данных
датчиков 652
датчиков 652
Описание проблемы 652
Данные 653
Разведочный анализ данных 657
Стационарность и автокорреляция 658
Предварительная обработка и сокращение размерности 659
Моделирование 663
Межквартильный размах 663
Кластеризация методом K-средних 665
Изолирующий лес 669
Оценка модели 669
Заключение 670
XXXI. Прогнозирование временных рядов с помощью библиотеки
Prophet в Python 671
Prophet в Python 671
Набор о продажах автомобилей 672
Визуализация данных о продажах 672
Прогнозирование продаж автомобилей с помощью Prophet 673
XXXII. Машинное обучение встречает экономику, часть первая 676
Случай бесполезной модели 677
Анализ: кривые безразличия в ROC-пространстве 686
Выводы и рекомендации 690
Похожие источники 690
XXXIII. Машинное обучение встречает экономику, часть вторая 692
Не спешим избавляться от людей 692
Анализ: классификация с возможностью отклонения 698
Выводы и рекомендации 700
XXXIV. Как прогнозировать несколько временных рядов сразу с
помощью библиотеки scikit-learn (на примере прогноза продаж) 702
помощью библиотеки scikit-learn (на примере прогноза продаж) 702
Отдельные модели машинного обучения против больших
универсальных моделей 702
универсальных моделей 702
Подготовка данных 703
Конструирование базовых признаков 704
Оценка качества 705
Построение базовой модели и валидация 705
Построение рабочей модели 707
Изменение функции потерь и распределения зависимой
переменной 711
переменной 711
Оптимальная модель 712
Советы по улучшению решения 714
XXXV. Тестирование моделей прогнозирования COVID-19 на
исторических данных 715
исторических данных 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
структуры 756
Многократное разбиение на обучающую и тестовую выборки с
учетом временной структуры 757
учетом временной структуры 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
использованием библиотеки PySpark MLlib в среде Google Colab 783
Содержание статьи 783
Введение 783
Что такое PySpark? 784
Наши учебные задачи 784
Установка PySpark Google Colab 784
Загрузка данных 785
Подготовка данных 786
Создание конвейера на основе случайного леса 787
Создание объекта перекрестной проверки для настройки гиперпараметров 788
Обучение и прогноз 789
Оценка качества модели 790
Выводы 791
XXXVIII. Принципы и практика применения интерпретируемого
машинного обучения 792
машинного обучения 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
получения исходных значений зависимой переменной 869
Заключение 870
XL. Введение в прогнозирование иерархических временных рядов
(в двух частях) 871
(в двух частях) 871
Постановка проблемы и обзор различных подходов. 871
Теоретическое введение 871
Восходящий подход (bottom-up) 873
Нисходящий подход (top-down) 874
Усредненный подход (middle-out) 874
Оптимально согласованный подход (optimal reconciliation) 874
Загрузка и предварительная подготовка данных, содержащих
иерархические временные ряды 876
иерархические временные ряды 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
Данные с избытком нулевых значений зависимой переменной 916
Задача с избытком нулевых значений зависимой переменной 917
Регрессия, учитывающая избыток нулевых значений зависимой
переменной 919
переменной 919
XLIII. Применение LSTM для прогнозирования временных рядов 925
Загрузка необходимых библиотек 925
Загрузка данных 926
Предварительная обработка данных 927
Стандартизация данных 929
Преобразование данных 930
Нейронная сеть с долгой краткосрочной памятью 931
Обучение LSTM 935
Teacher Forcing (Форсирование учителя) 938
Заключение 941
XLIV. Классификация против прогнозирования 942
XLV. Ущерб, наносимый верностью (accuracy), и другими
некорректными дискретными скоринговыми правилами для оценки верности (accuracy) 946
некорректными дискретными скоринговыми правилами для оценки верности (accuracy) 946
XLVI. Иллюстрированное руководство по модели пуассоновской
регрессии, учитывающей избыточное количество нулей 949
регрессии, учитывающей избыточное количество нулей 949
Модель пуассоновской регрессии, учитывающая избыток нулей 951
Структура ZIP-модели 951
Знакомство с ϕ 953
Как оценить ϕ? 954
Обучение ZIP-модели с помощью Python 956
Интерпретация результатов обучения 961
Интересное упражнение 964
Предлагаемые статьи для дальнейшего чтения 964
XLVII. Статистические тесты, p-значения, доверительные
интервалы и мощность: путеводитель по неверным толкованиям 965
интервалы и мощность: путеводитель по неверным толкованиям 965
Аннотация 965
Введение 966
Статистические тесты, p-значения и доверительные интервалы:
пособие с критическими замечаниями 967
пособие с критическими замечаниями 967
Статистические модели, гипотезы и тесты 967
Неопределенность, вероятность и статистическая значимость 968
От тестов к оценкам 971
О чем нам не говорят P-значения, доверительные интервалы и
мощность? 972
мощность? 972
Распространенные неверные толкования P-значений 972
Распространенные неверные толкования сравнений и прогнозов
на основе P-значений 977
на основе P-значений 977
Распространенные неверные интерпретации доверительных
интервалов 979
интервалов 979
Распространенные неверные интерпретации мощности 982
Статистическая модель — это нечто гораздо большее, чем
уравнение с греческими буквами 984
уравнение с греческими буквами 984
Выводы 985
Библиография 989
XLVIII. Трансформеры – это не то, что вам нужно 994
Потеря информации о временной структуре 995
Базовые линейные модели могут превзойти сложные трансформеры 996
Неспособность извлечь временные отношения из более длинных
входных последовательностей 997
входных последовательностей 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
склонности для анализа причинно-следственных связей 35
3.1. Прогнозирование оценки склонности 37
3.2. Выбор ковариат для прогнозирования оценки склонности 37
3.3. Сопоставление по оценке склонности и оценивание эффекта 38
4. Кейс 1: Влияние использования керамического проппанта
вместо песчаного в месторождении Марцелл 39
вместо песчаного в месторождении Марцелл 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
прогнозировании 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
определение зависимых переменных 182
Модель прогнозирования частоты (использование распределения
Пуассона) 184
Пуассона) 184
Модель прогнозирования серьезности (использование
гамма-распределения) 186
гамма-распределения) 186
Сравнение качества прогнозирования чистой премии с помощью
модели продукта и отдельной модели TweedieRegressor 189
модели продукта и отдельной модели TweedieRegressor 189
LVII. ЭМБЕДДИНГИ 195
1. Введение 195
2. Рекомендация как бизнес-услуга 204
2.1. Создание веб-приложения 207
2.2. Сравнение систем на основе правил и систем на основе
машинного обучения 209
машинного обучения 209
2.3. Построение веб-приложения, использующего машинное
обучение 212
обучение 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
сборник_статей_по_ml
пост_книга_"сборник_статей_по_ml"