Предварительная подготовка данных в Python. Том 1. Инструменты и валидация

Предварительная подготовка данных в Python. Том 1. Инструменты и валидация

Предварительная подготовка данных в Python. Том 1. Инструменты и валидация
Автор: Груздев Артем Владимирович
Дата выхода: 2023
Издательство: ДМК Пресс
Количество страниц: 818
Размер файла: 28.2 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Введение....11

Часть 1....12

Немного математики....12

1.1. Функция....12

1.2. Производная....13

1.3. Дифференцирование сложных функций....16

1.4. Частная производная....17

1.5. Градиент....18

1.6. Функция потерь и градиентный спуск....19

Часть 2 ....24

Инструменты....24

1. Введение....24

1.1. Структуры данных....24

1.1.1. Кортеж (tuple)....24

1.1.2. Список (list)....25

1.1.3. Словарь (dictionary)....28

1.1.4. Множество (set)....32

1.2. Функция....35

1.3. Полезные встроенные функции....36

1.3.1. Функция enumerate()....36

1.3.2. Функция sorted()....37

1.3.3. Функция zip()....37

1.4. Класс....39

1.5. Знакомство с Anaconda....44

2. IPython и Jupyter Notebook....45

3. NumPy....51

3.1. Создание массивов NumPy....51

3.2. Обращение к элементам массива....56

3.3. Получение краткой информации о массиве....58

3.4. Изменение формы массива....59

3.5. Конкатенация массивов....62

3.6. Функции математических операций, знакомство с правилами транслирования....66

3.7. Обработка пропусков....71

3.8. Функция np.linspace()....73

3.9. Функция np.logspace()....75

3.10. Функция np.digitize()....76

3.11. Функция np.searchsorted()....77

3.12. Функция np.bincount()....79

3.13. Функция np.apply_along_axis()....80

3.14. Функция np.insert()....81

3.15. Функция np.repeat()....82

3.16. Функция np.unique()....83

3.17. Функция np.take_along_axis()....85

3.18. Функция np.array_split()....87

4. Библиотеки Numba, datatable, bottleneck для ускорения вычислений....89

4.1. Numba....89

4.2. Datatable....95

4.3. Bottleneck....99

5. SciPy....100

6. pandas....112

6.1. Почему pandas? ....112

6.2. Библиотека pandas построена на NumPy....112

6.3. pandas работает с табличными данными....112

6.4. Объекты DataFrame и Series....112

6.5. Задачи, выполняемые pandas....114

6.6. Кратко о типах данных....114

6.7. Представление пропусков....115

6.8. Какую версию pandas использовать?....116

6.9. Подробно знакомимся с типами данных....116

6.9.1. Типы данных для работы с числами и логическими значениями....116

6.9.2. Типы данных для работы со строками....127

6.10. Чтение данных....137

6.11. Получение общей информации о датафрейме....138

6.12. Изменение настроек вывода с помощью функции get_options()....140

6.13. Знакомство с индексаторами [], loc и iloc....141

6.14. Фильтрация данных....148

6.14.1. Одно условие....148

6.14.2. Несколько условий....149

6.14.3. Несколько условий в одном столбце....149

6.14.4. Использование метода .query()....150

6.15. Агрегирование данных....152

6.15.1. Группировка и агрегирование с помощью одного столбца....152

6.15.2. Группировка и агрегирование с помощью нескольких столбцов....154

6.15.3. Группировка с помощью сводных таблиц....157

6.16. Анализ частот с помощью таблиц сопряженности....167

6.17. Выполнение SQL-запросов в pandas....170

7. scikit-learn....180

7.1. Основы работы с классами, строящими модели предварительной подготовки данных и модели машинного обучения....180

7.2. Строим свой первый конвейер моделей....199

7.3. Разбираемся с дилеммой смещения–дисперсии и знакомимся с бутстрепом....211

7.4. Обработка пропусков с помощью классов MissingIndicator и SimpleImputer....229

7.5. Выполнение дамми-кодирования с помощью класса OneHotEncoder и функции get_dummies(), знакомство с разреженными матрицами....236

7.6. Автоматическое построение конвейеров моделей с помощью класса Pipeline....247

7.7. Знакомство с классом ColumnTransformer....251

7.8. Класс FeatureUnion....264

7.9. Выполнение перекрестной проверки с помощью функции cross_val_score(), получение прогнозов перекрестной проверки с помощью функции cross_val_predict(), сохранение моделей перекрестной проверки с помощью функции cross_validate()....265

7.10. Виды перекрестной проверки для данных формата «один объект – одно наблюдение» (отсутствует ось времени) ....274

7.10.1. Обычная нестратифицированная k-блочная перекрестная проверка с помощью класса KFold....275

7.10.2. Обычная стратифицированная k-блочная перекрестная проверка с помощью класса StratifiedKFold....282

7.10.3. Повторная нестратифицированная k-блочная перекрестная проверка с помощью класса RepeatedKFold....284

7.10.4. Повторная стратифицированная k-блочная перекрестная проверка с помощью класса RepeatedStratifiedKFold....287

7.10.5. k-кратное случайное разбиение на обучающую и тестовую выборки (перекрестная проверка Монте-Карло)....289

7.10.6. Перекрестная проверка со случайными перестановками при разбиении с помощью класса ShuffleSplit....295

7.10.7. Стратифицированная перекрестная проверка со случайными перестановками при разбиении с помощью класса StratifiedShuffleSplit....297

7.10.8. Перекрестная проверка с исключением по одному с помощью класса LeaveOneOut....298

7.10.9. Перекрестная проверка с исключением p наблюдений с помощью класса LeavePOut....300

7.11. Виды перекрестной проверки для данных формата «один объект – несколько наблюдений» и стратифицированных данных (отсутствует ось времени) ....302

7.11.1. Перекрестная проверка, учитывающая группы связанных наблюдений, с помощью классов GroupKFold ....302

7.11.2. Перекрестная проверка, учитывающая группы связанных наблюдений с исключением из обучения одной группы, с помощью класса LeaveOneGroupOut ....303

7.11.3. Перекрестная проверка, учитывающая группы связанных наблюдений с исключением из обучения p групп, с помощью класса LeavePGroupsOut....305

7.11.4. Перекрестная проверка, учитывающая группы связанных наблюдений и распределение классов, с помощью класса StratifiedGroupKFold....306

7.11.5. Перекрестная проверка со случайными перестановками при разбиении и учитывающая группы связанных наблюдений с помощью класса GroupShuffleSplit....308

7.12. Обычный и случайный поиск наилучших гиперпараметров по сетке с помощью классов GridSearchCV и RandomizedSearchCV....310

7.12.1. Обычный поиск оптимальных значений гиперпараметров моделей предварительной подготовки и модели машинного обучения....313

7.12.2. Обычный поиск оптимальных значений гиперпараметров моделей предварительной подготовки и модели машинного обучения с добавлением строки прогресса....319

7.12.3. Случайный поиск оптимальных значений гиперпараметров моделей предварительной подготовки и модели машинного обучения....321

7.12.4. Обычный поиск оптимальных значений гиперпараметров для CatBoost при обработке категориальных признаков «как есть» (заданы индексы категориальных признаков)....322

7.12.5. Отбор оптимальной модели предварительной подготовки данных в рамках отдельного трансформера....325

7.12.6. Отбор оптимального метода машинного обучения среди разных методов машинного обучения (перебор значений гиперпараметров с отдельной предобработкой данных под каждый метод машинного обучения)....330

7.13. Вложенная перекрестная проверка....336

7.14. Классы PowerTransformer, KBinsDiscretizer и FunctionTransformer....342

7.15. Написание собственных классов предварительной подготовки для применения в конвейере....351

7.16. Модификация классов библиотеки scikit-learn для работы с датафреймами....376

7.17. Полный цикл построения конвейера моделей в scikit-learn....382

7.17.1. Первая задача....382

7.17.2. Вторая задача....394

7.18. Калибровка модели....405

7.18.1. Актуальность калибровки....405

7.18.2. Функция calibration_curve()....407

7.18.3. Оценка Брайера....414

7.18.4. Оценка качества калибровки моделей до применения калибратора....416

7.18.5. Класс CalibratedClassifierCV....421

7.18.6. Оценка качества калибровки моделей после применения калибратора....422

7.18.7. Оценка качества калибровки моделей после применения калибратора с уже обученным классификатором....424

7.18.8. Калибровка на основе сплайнов....427

7.19. Полезные классы CountVectorizer и TfidfVectorizer для работы с текстом....437

7.20. Сравнение моделей, полученных в ходе поиска по сетке, с помощью статистических тестов....451

7.20.1. Простое сравнение всех построенных моделей....452

7.20.2. Сравнение двух моделей: частотный подход....455

7.20.3. Сравнение двух моделей: байесовский подход....459

7.20.4. Попарное сравнение всех моделей: частотный подход....464

7.20.5. Попарное сравнение всех моделей: байесовский подход....466

7.20.6. Итоговые выводы....468

7.21. Разбиение на обучающую, проверочную и тестовую выборки с учетом временной структуры для валидации временных рядов ....469

7.22. Виды перекрестной проверки для данных формата «один объект – одно наблюдение» (присутствует ось времени) ....522

7.22.1. Перекрестная проверка расширяющимся окном....526

7.22.2. Перекрестная проверка скользящим окном....543

7.22.3. Перерестная проверка расширяющимся/скользящим окном с гэпом....553

7.23. Перекрестная проверка для данных формата «один объект – несколько наблюдений» (присутствует ось времени) ....564

7.24. Многоклассовая классификация: подходы «один против всех», «один против одного» и «коды, исправляющие ошибки»....568

7.24.1. Подход «один против остальных» или «один против всех» («one versus rest», «one versus all»)....569

7.24.2. Подход «один против одного» («one versus one»)....574

7.24.3. Подход «коды, исправляющие ошибки» («error-correcting output codes»)....593

Часть 3....603

Другие полезные библиотеки....603

1. Библиотеки визуализации matplotlib, seaborn и plotly....603

1.1. Matplotlib....603

1.2. Seaborn....622

1.3. Plotly....630

2. Библиотека прогнозирования временных рядов ETNA....635

2.1. Общее знакомство....635

2.2. Создание объекта TSDataset ....642

2.3. Визуализация рядов объекта TSDataset....646

2.4. Получение сводки характеристик по объекту TSDataset ....647

2.5. Модель наивного прогноза....648

2.6. Модель скользящего среднего....655

2.7. Модель сезонного скользящего среднего....659

2.8. Модель SARIMAX....663

2.9. Модель Хольта–Винтерса (модель тройного экспоненциального сглаживания, модель ETS)....672

2.10. Модель Prophet....678

2.11. Модель CatBoost....690

2.12. Модель линейной регрессии с регуляризацией «эластичная сеть»....710

2.13. Объединение процедуры построения модели, оценки качества и визуализации прогнозов в одной функции....715

2.14. Перекрестная проверка нескольких моделей....718

2.15. Ансамбли....723

2.16. Стекинг....725

2.17. Создание собственных классов для обучения моделей....726

2.18. Импутация пропусков....742

2.19. Работа с трендом и сезонностью....752

2.20. Обработка выбросов....767

2.21. Собираем все вместе....773

2.22. Модели нейронных сетей....788

2.23. Оптимизация гиперпараметров с помощью Optuna от разработчиков....790

Ответы на вопросы с собеседований....795

В двухтомнике представлены материалы по применению классических методов машинного обучения для различных промышленных задач.

Прочитав первый том, вы научитесь:

  • работать в IPython и Jupyter Notebook;
  • применять функции библиотеки NumPy;
  • визуализировать результаты анализа с помощью библиотек matplotlib, seaborn и plotly;
  • выполнять предварительную подготовку данных в библиотеке pandas;
  • работать с классами scikit-learn, строящими модели предварительной подготовки данных и модели машинного обучения;
  • применять различные стратегии валидации данных.

Похожее:

Список отзывов:

Нет отзывов к книге.