Для разработки в области анализа данных необходимо понимать, как устроены основные алгоритмы, какая у них сложность и скорость работы, сколько требуется ресурсов для их успешной работы, область применимости.В первом модуле программы разбираются все базовые алгоритмы машинного обучения. Изучение проходит на сгенерированных данных, не требующих времени на преобразование и доработку. Разъясняется значение и влияние параметров алгоритмов на результат. Каждый этап обучения сопровождается наглядной визуализацией.Будут рассмотрены алгоритмы: линейная регрессия, логистическая регрессия, деревья решений, knn, SVM, k-means, EM, иерархическая кластеризация, DBScanВ результате слушатели уверенно освоят базовые алгоритмы анализа данных и инструменты для базового анализа данных на Python
Базовые инструменты анализа данных в Python.
Базовые инструменты анализа данных в Python.Подготовка к курсу. Git, окружение Python. Обзор курса.Введение в Python, Numpy, Pandas, Sklearn. API Sklearn. Обзор других инструментов анализа данных - R, Octave.Что такое DS, ML, основная терминология, классы решаемых задач.
ДЗ
Реализация библиотеки.
Реализация библиотеки для подсчета статистик и преобразования датасетов в формате csv. Отработка инструментов для преобразования данных в pandas и sklearn.
Вводная в математические операции.
Интеграл, производная, их свойства, вероятность, плотность вероятности, мат.ожидание, дисперсия, ковариация, матричные вычисления, определитель, обратная матрица и т.п.
Визуализация
Визуализация на matplotlib, seaborn, plotly, bokeh. Визуализация геоданных на карте мира. Приемы для визуализации плотных данных. Визуализация для поиска корреляций
ДЗ
Построение визуализаций по данным
Линейная регрессия
Постановка задачи регрессии. Линейная регрессия. Полиномиальная регрессия. Проблема многомерных пространств и переобучения на примере регрессии. Проблема разреженных данных. Регуляризация. Применение линейной регрессии из sklearn на простом датасете. Оценка качества регресcии.
Логистическая регрессия
Математика логистической регрессии. Мультиклассовая регрессия. Оценка качества логистической регрессии. Регуляризация. Обучение регрессии, градиентный спуск. . Применение логистической регрессии из sklearn на простом датасете.
ДЗ
Реализация алгоритма логистической регрессии.
Реализация алгоритма логистической регрессии на простых данных. Оценка качества, подбор параметров модели.
KNN, наивный байес
Алгоритм kNN. Влияние нормализации данных в kNN. Структуры данных для оптимизации kNN.Алгоритм наивного байеса. Байесовский классификатор, Принцип Maximum A-Posteriori
kMeans, EM
Обучение без учителя. Алгоритмы кластеризации, области применения. k-means. Оценка качества обучения, ограничения и подбор алгоритма для задачи.Байесов подход к вероятности. Алгоритмы с lower-bound. Em алгоритм.
ДЗ
Реализация EM-алгоритма.
Реализация EM-алгоритма на простых данных. Оценка качества кластеризации.
Иерархическая кластеризация, DB-Scan
Иерархическая кластеризация, DB-Scan. Optics. Спектральная кластеризация.
От сгенерированных данных переходим к данным в табличном виде. Такие данные встречаются в конкурсах по анализу данных, а также могут быть собраны, например, напрямую из баз данных. Для применения алгоритмов машинного обучения обычно такие данные требуют дополнительных преобразований.Во втором модуле рассматриваются задачи преобразования и отбора признаков, вопросы подготовки данных для использования в машинном обучении.Также будут рассмотрены более сложные алгоритмы в анализе данных - понижение размерности, определение выбросов в данных, построение ансамблей моделей.
Feature engineering
Отбор признаков. Преобразование исходных данных в подходящий для модели формат. Преобразование признаков для повышения точности модели. Выбор части признаков.
ДЗ
Преобразование набора данных и подбор фич.
Уменьшение размерности
Principle component analysis, t-sne.
ДЗ
Применение снижения размерности для использования в модели.
Методы оптимизации
SGD, модификации SGD
Деревья решений
Классификация и регрессия с помощью деревьев решений. Алгоритм CART. Обзор алгоритмов. Выбор оптимального сплита, суррогатный сплит. Обзор реализации в sklearn.
ДЗ
Реализация алгоритма дерева решений на простых данных. Реализация некоторых эвристик в деревьях решений..
Ансамбли моделей
Случайный лес. Бустинг, бэггинг, стекинг, блендинг.
Бустинг
Xgboost, catboost, lightgbm, Стекинг, блендинг
ДЗ
Применение бустинга для построения лучшей модели.
SVM, Support vector machine
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Чаще всего в окружении, в котором приходится работать, данные не готовы для анализа, у них произвольный формат и много ошибок. Например, это данные из баз знаний, открытых API, данные из различных информационных систем партнеров.В третьем модуле рассматриваются вопросы сбора и очистки данных, разбираются типичные задачи бизнеса. Например, это предсказание ctr, ltv. Дополнительно рассмотрим специальные алгоритмы анализа данных - это работа с временными рядами, рекомендательными системами, текстами, графами.
Анализ текстовых данных
Сбор данных из открытых источников. Очистка данных, подготовка данных для анализа. Задача обработки текста. Введение, обзор задач, токенизация, лемматизация. Обзор библиотек для Python для работы с русским и английским языками. TF-IDF.
ДЗ
Реализация процесса сбора данных через API.
Преобразование текста, подготовка текста для анализа. Применение машинного обучения для предсказания характеристики в собранных данных
Анализ текстовых данных
Выделение объектов в тексте. Word2vec. Анализ тональности. Автоматическое реферирование и тэгирование, классификация текстов.
Рекомендательные системы
Коллаборативная фильтрация, контентная фильтрация, гибридные подходы. Метрики оценки качества рекомендации.
ДЗ
Применение алгоритма рекомендаций для датасета фильмов.
Временные ряды
Постановка задачи. Экспоненциальное сглаживание. Стационарность. SARIMA. Выбор признаков во временных рядах. Применение моделей машинного обучения
Latent Dirichlet Allocation
Нейронные сети, часть 1
1. Вычислительные графы и фреймворк Pytorch.
2. Базовые определения нейронных сетей.
3. Алгоритм обучения нейронных сетей.
ДЗ
Временные ряды.
Участие в конкурсе https://www.kaggle.com/c/rossmann-store-sales/
1. Скачать данные, провести базовый разведочный анализ
2. Построить простую модель и реализовать подбор параметров и кросс-валидацию для данных с учетом наличии времени в данных
3. Подобрать признаки и модель и улучшить результат на кросс-валидации
4. Применить разобранный на занятии подход с признаками, характеризующими прошлое (lag). Получилось ли улучшить модель?
5. Выбрать лучшую модель на экспериментах и сделать Late submit.
Прислать нужно блокнот, в котором отражен весь процесс работы над задачей (присутствуют все пункты задания) и ник на kaggle и позицию в лидерборде.
Замечание: нельзя смотреть на private leaderboard до окончания работы над заданием.
Дополнительное (необязательное) задание
Разобрать три любых блокнота из kernels (из тех, которые покажутся осмысленными), применить какую-либо идею для улучшения модели. Отразить в отчете, получилось ли улучшить модель.
Замечание: в зависимости от желания и наличия времени предлагается продолжить работать над задачей и улучшить результат.
Нейронные сети, часть 2
1. Почему нужен Deep Learning?
2. Эффективная оптимизация НС в Pytorch.
3. Сверточные нейронные сети.
ДЗ
Нейронные сети.
1. Реализовать процедуру обучения простой полносвязной сети. Входные условия:
а) Архитектура: 2 скрытых слоя по 50 нейронов
б) Двухклассовая задача классификации для датасета make_moons в sklearn
в) Операции должны быть записаны в матричном виде (целиком для слоя, а не отдельно для каждого нейрона)
г) Функция потерь: кросс-энтропия. Алгоритм: градиентный спуск с моментумом.
д) Визуализировать разделяющую поверхность.
2. Реализовать и обучить сверточную нейронную сеть на Pytorch -- архитектура на ваш выбор. На датасете CIFAR10 (доступен в torchvision).
Алгоритмы на графах
Социальные сети, выделение сообществ
Большую часть времени любого разработчика процессов анализа данных занимает разработка самого процесса по преобразованию данных на разных этапах. Предполагаются этапы сбора, очистки, агрегации данных, построения модели и предсказания характеристик. В четвертом модуле рассматриваются возможности построения надежных процессов преобразования данных.В более крупных компаниях данные превышают возможности одной типичной разработческой машины. Появляется потребность работы с алгоритмами, обрабатывающими данные в потоке, а также с кластером. В четвертом модуле разбираются процессы преобразования данных, слои данных, потоки данных и различные способы хранения и преобразования таких данных на кластере. Разберем возможности построения моделей на кластере. К концу модуля слушатели смогут уверенно использовать стек технологий Hadoop: писать задачи на MapReduce с использованием Java или Hadoop Streaming, использовать Hive и Spark для быстрого преобразования данных, расчета статистик, построения моделей на кластере.
Процесс CRISP-DM. Выбор хранилища, запросы к базе (Реляционная, нереляционная). Большие данные и параллельные вычисления.
Кластер, hdfs, запросы к hdfs. Map Reduce, Java, Python, Необходимость в кластерных вычислениях. Парадигма MapReduce. Инструменты работы с большими данными. Hadoop, Spark, обзор других компонентов экосистемы. Развертывание кластера Hadoop локально для выполнения учебных примеров. Выполнение учебных примеров на кластере.
ДЗ
Настройка окружения для локальной работы с кластером. Выполнение на локальном кластере набора учебных задач..
Vowpal Wabbit для обучения линейных моделей на одной машине
MapReduce на Java, Hadoop Streaming - MapReduce на Python, bash
ДЗ
Реализация алгоритма с использованием MapReduce.
Пайплайны. Способы выстроить поток задач, обеспечить выполнение. Отказоустойчивость, мониторинг.
Слои данных для оптимизации процессов использования данных. Hive.
ДЗ
Реализация алгоритма с использованием Hive.
Организация хранения данных для решения задач машинного обучения
Spark
Spark как инструмент быстрого доступа к данным. Spark как инструмент для машинного обучения.
ДЗ
Реализация алгоритма с использованием Spark.
Обзор решений для аналитики больших данных
Vertica, Clickhouse. Основные преимущества и недостатки, для хранения и обработки данных.
Агрегация, управление, эксперименты, анализ, визуализация и BI