Введение в машинное обучение с помощью scikit-learn
В этой серии видеороликов вы узнаете, как решать задачи машинного обучения с помощью популярной библиотеки Python scikit-learn. Есть 10 видеоуроков общей продолжительностью 4,5 часа, каждому из которых соответствует блокнот Jupyter .
Вы можете посмотреть всю серию на YouTube и просмотреть все блокноты с помощью nbviewer.
Серия также доступна в виде бесплатного онлайн-курса, который включает обновленный контент, тесты и сертификат об окончании.
Примечание. Записные книжки в этом репозитории были обновлены для использования Python 3.9.1 и scikit-learn 0.23.2. В оригинальных блокнотах (показанных на видео) использовались Python 2.7 и scikit-learn 0.16, их можно скачать из ветки архива. Вы можете прочитать о том, как я обновил код, в этом сообщении блога.
Оглавление
Что такое машинное обучение и как оно работает? (видео, блокнот)
- Что такое машинное обучение?
- Каковы две основные категории машинного обучения?
- Каковы примеры машинного обучения?
- Как «работает» машинное обучение?
Настройка Python для машинного обучения: scikit-learn и Jupyter Notebook (видео, блокнот)
- Каковы преимущества и недостатки scikit-learn?
- Как мне установить scikit-learn?
- Как использовать блокнот Jupyter?
- Какие есть хорошие ресурсы для изучения Python?
Начало работы в scikit-learn со знаменитым набором данных радужной оболочки глаза (видео, блокнот)
- Что представляет собой знаменитый набор данных радужной оболочки глаза и как он связан с машинным обучением?
- Как загрузить набор данных радужной оболочки глаза в scikit-learn?
- Как мы описываем набор данных, используя терминологию машинного обучения?
- Каковы четыре ключевых требования scikit-learn для работы с данными?
Обучение модели машинного обучения с помощью scikit-learn (видео, блокнот)
- Что такое модель классификации K-ближайших соседей?
- Каковы четыре шага обучения модели и прогнозирования в scikit-learn?
- Как применить этот шаблон к другим моделям машинного обучения?
Сравнение моделей машинного обучения в scikit-learn (видео, блокнот)
- Как мне выбрать, какую модель использовать для задачи контролируемого обучения?
- Как выбрать лучшие параметры настройки для этой модели?
- Как оценить вероятную эффективность моей модели на данных за пределами выборки?
Конвейер обработки данных: pandas, seaborn, scikit-learn (видео, блокнот)
- Как использовать библиотеку pandas для чтения данных в Python?
- Как использовать библиотеку seaborn для визуализации данных?
- Что такое линейная регрессия и как она работает?
- Как мне обучить и интерпретировать модель линейной регрессии в scikit-learn?
- Каковы некоторые показатели оценки задач регрессии?
- Как мне выбрать, какие функции включить в мою модель?
Перекрестная проверка для настройки параметров, выбора модели и выбора функций (видео, ноутбук)
- В чем недостаток использования процедуры разделения обучения/теста для оценки модели?
- Как K-кратная перекрестная проверка преодолевает это ограничение?
- Как можно использовать перекрестную проверку для выбора параметров настройки, выбора между моделями и выбора функций?
- Каковы возможные улучшения перекрестной проверки?
Эффективный поиск оптимальных параметров настройки (видео, блокнот)
- Как можно использовать K-кратную перекрестную проверку для поиска оптимального параметра настройки?
- Как можно сделать этот процесс более эффективным?
- Как искать несколько параметров настройки одновременно?
- Что вы делаете с этими параметрами настройки, прежде чем делать реальные прогнозы?
- Как можно уменьшить вычислительные затраты на этот процесс?
Оценка модели классификации (видео, блокнот)
- Какова цель оценки модели и каковы некоторые общие процедуры оценки?
- Каково использование точности классификации и каковы ее ограничения?
- Как матрица путаницы описывает производительность классификатора?
- Какие показатели можно вычислить из матрицы путаницы?
- Как можно настроить производительность классификатора, изменив порог классификации?
- Какова цель ROC-кривой?
- Чем площадь под кривой (AUC) отличается от точности классификации?
Построение рабочего процесса машинного обучения (видео, блокнот)
- Почему вам следует использовать конвейер?
- Как вы кодируете категориальные функции с помощью OneHotEncoder?
- Как применить OneHotEncoder к выбранным столбцам с помощью ColumnTransformer?
- Как построить и перекрестно проверить конвейер?
- Как вы делаете прогнозы по новым данным с помощью конвейера?
- Почему для предварительной обработки следует использовать scikit-learn (а не pandas)?
Бонусное видео
На конференции PyCon 2016 я преподавал трехчасовое руководство , основанное на этой серии видео и посвященное текстовым данным . Вы можете посмотреть обучающее видео на YouTube.
Вот темы, которые я затронул:
- Построение модели в scikit-learn (повторное обучение)
- Представление текста в виде числовых данных
- Чтение текстового набора данных в pandas
- Векторизация нашего набора данных
- Построение и оценка модели
- Сравнение моделей
- Изучение модели для дальнейшего понимания
- Практика этого рабочего процесса на другом наборе данных
- Настройка векторизатора (обсуждение)
Посетите этот репозиторий GitHub, чтобы получить доступ к учебным записным книжкам и многим другим рекомендуемым ресурсам.