Платформы по соревнованиям в анализе данных (DM)

Содержание

Слайд 2

Слайд 3

Платформы по соревнованиям в анализе данных (DM)

Платформы по соревнованиям в анализе данных (DM)

Слайд 4

Преимущества Kaggle Наиболее раскрученная платформа Возможность запускать in-class соревнования Крутые соревнования

Преимущества Kaggle

Наиболее раскрученная платформа
Возможность запускать in-class соревнования
Крутые соревнования от топовых IT

компаний
Красивый, простой сайт
Большое количество участников
Богатый форум
Датасеты
Туториалы
Скрипты
Поиск работы в Data Science
Крутой профайл на kaggle.com отличная строчка в резюме для каждого data scientist-а и не только ☺
Слайд 5

Как выглядят соревнования по DM?

Как выглядят соревнования по DM?

Слайд 6

Цикл решения задач DM

Цикл решения задач DM

Слайд 7

Понимание задачи Определение и формулировании бизнес задачи Оценка рисков, затрат, общего

Понимание задачи

Определение и формулировании бизнес задачи
Оценка рисков, затрат, общего профита
Постановка DM

целей
Определение критериев успешности
Выработка плана решения задач
Четкое понимание того что надо предсказать
Слайд 8

Понимание данных: Первый шаг Сбор данных Какие данные есть: сколько примеров,

Понимание данных: Первый шаг

Сбор данных
Какие данные есть: сколько примеров, сколько признаков,

какие признаки по природе
Достаточно ли данных для решения задачи, есть ли необходимость собирать дополнительные данные
Слайд 9

Понимание данных: Второй шаг Описательные статистики Корреляции Пирсона, Спирмена Проверка статистических

Понимание данных: Второй шаг

Описательные статистики
Корреляции Пирсона, Спирмена
Проверка статистических гипотез (нормальность, проверку

на распределение)
Исследование распределений: гистограммы признаков, таргетов
Слайд 10

Подготовка данных Выбор и интеграция данных Форматирование данных Предобработка данных: заполнение

Подготовка данных

Выбор и интеграция данных
Форматирование данных
Предобработка данных: заполнение пропусков, определение выбросов,

нормализация данных, т.д.
Выбор/экстракция признаков, сокращение размерности
Инженерия признаков
Разбиение на тренировочное, тестовое множества
Слайд 11

Построение моделей Выбор подходящих моделей, соответствующих проверяемым гипотезам Определение дизайна тестирования

Построение моделей

Выбор подходящих моделей, соответствующих проверяемым гипотезам
Определение дизайна тестирования
Обучение моделей с

настройкой гиперпараметров
Контроль overfitting/underfitting
Слайд 12

Оценка качества моделей Анализ эффективности моделей на тестовом множестве: статистические гипотезы,

Оценка качества моделей

Анализ эффективности моделей на тестовом множестве: статистические гипотезы, корреляции
Вычисление

метрик оценки качества моделей
Проверка overfitting/underfitting
Постпроцессинг
Достигнут ли желаемый результат?
Слайд 13

Развертывание системы Финальный отчет по проекту Выполнены ли все поставленные DM

Развертывание системы

Финальный отчет по проекту
Выполнены ли все поставленные DM цели?
Удовлетворяют ли

результаты критерия успешности?
Слайд 14

Слайд 15

Исследование распределений: Линеаризация

Исследование распределений: Линеаризация

Слайд 16

Предобработка данных Преобразование категориальных переменных: OneHotEncoder, LabelEncoder Преобразование категориальных переменных: hashing

Предобработка данных

Преобразование категориальных переменных: OneHotEncoder, LabelEncoder
Преобразование категориальных переменных: hashing trick
Преобразование дат:

pandas.TimeStamp, pandas.to_datetime, т.д.
Преобразование строк: regular expressions, т.д.
Слайд 17

Заполнение пропусков Заполнение нулями Заполнение следующими, предыдущими значениями (pandas.fillna) Заполнение средними,

Заполнение пропусков

Заполнение нулями
Заполнение следующими, предыдущими значениями (pandas.fillna)
Заполнение средними, модами, медианами (sklearn.preprocessing.Imputer)
Заполнение

с использованием (авто)регрессии/сезонных моделей
Заполнение с использованием специальных адаптированных алгоритмов: MLE, kNN, EM, SVM, т.д.
Слайд 18

Определение выбросов Определение через распределения: по квантилям, перцентилям, по другим правилам

Определение выбросов

Определение через распределения: по квантилям, перцентилям, по другим правилам пальца
Определение

через визуализацию, использую алгоритмы кластеризации (k-means, affinity propagation, ..), сокращения размерности (PCA, t-SNE, ..)
Определение через анализ построенных моделей, постпроцессинг
Определение через специальные адаптированные алгоритмы: OneClassSVM, EllipticEnvelope, IsolationForest
Слайд 19

Нормализация данных Стандартная нормализация Нормализация в 0-1 или в -1, 1(для

Нормализация данных

Стандартная нормализация
Нормализация в 0-1 или в -1, 1(для нейроных сетей)
Стемминг,

лемматизация, TF-IDF и другие методы для текста
Нормализация для звука
Вычитание среднего по всем пикселям, нормализация цветов для картинок
Слайд 20

Выбор признаков Выбор через model-free методы: scikit-feature Статистики (sklearn.feature_selection.SelectKBest) Корреляции Пирсона,

Выбор признаков

Выбор через model-free методы: scikit-feature
Статистики (sklearn.feature_selection.SelectKBest)
Корреляции Пирсона, Спирмена
Выбор через model-based

методы:
RandomForest (rf.feature_importances_, PFI)
Lasso, ElasticNet (lr.coeffs_)
NN (DFS, HVS, PFI)
RFE (SVM, kNN, т.д.)
Слайд 21

Permutation Feature Importance

Permutation Feature Importance

Слайд 22

Deep Feature Selection Li, Yifeng, Chih-Yu Chen, and Wyeth W. Wasserman.

Deep Feature Selection

Li, Yifeng, Chih-Yu Chen, and Wyeth W. Wasserman. "Deep

Feature Selection: Theory and Application to Identify Enhancers and Promoters." Journal of Computational Biology 23.5 (2016): 322-336.
Слайд 23

Heuristic Variable Selection Yacoub, Meziane, and Y. Bennani. "HVS: A heuristic

Heuristic Variable Selection

Yacoub, Meziane, and Y. Bennani. "HVS: A heuristic for

variable selection in multilayer artificial neural network classifier." Intelligent Engineering Systems Through Artificial Neural Networks, St. Louis, Missouri. Vol. 7. 1997.
Слайд 24

Экстракция признаков Экстракция через визуальный анализ (handcrafted признаки) Экстракция через model-based

Экстракция признаков

Экстракция через визуальный анализ (handcrafted признаки)
Экстракция через model-based методы (NN,

RandomForest, т.д.)
Экстракция через автоэнкодеры (AE) (Stacked AE, Denoising AE, т.д.)
Экстракция через методы сокращения размерности (PCA, kernel PCA, t-SNE)
Экстракция через методы кластеризации (kNN, AffinityPropagation, DBSCAN, т.д.)
Слайд 25

Инженерия признаков Простейшие handcrafted признаки: среднее, дисперсия и т.п. по примеру

Инженерия признаков

Простейшие handcrafted признаки: среднее, дисперсия и т.п. по примеру
Исследование взаимодействия

признаков между собой и признаков с таргетами
Handcrafted признаки, основанные на знании области (формулы, т.д.)
Введение зависимостей x1*x2, x1^2, sin(x1)*x2, log1p(x1), т.д.
Handcrafted признаки, основанные на анализе временных рядов (сезонность, т.д.)
Handcrafted признаки, основанные на правилах (правила переходов, т.д.)
Handcrafted признаки, основанные на пространственной зависимости примеров (ближайшие соседи, т.д.)
Слайд 26

Построение моделей Simple data Complex data

Построение моделей

Simple data

Complex data

Слайд 27

Обучение нейронных сетей Использовать методы регуляризации для сетей: Dropout, BatchNormalization, weight

Обучение нейронных сетей

Использовать методы регуляризации для сетей: Dropout, BatchNormalization, weight decay
Использовать

продвинутые активационные функции

ReLU

PReLU

Слайд 28

Обучение нейронных сетей

Обучение нейронных сетей

Слайд 29

Обучение нейронных сетей

Обучение нейронных сетей

Слайд 30

Слайд 31

Модели победители на Kaggle соревнованиях Использовать GBM из xgboost, random forest,

Модели победители на Kaggle соревнованиях

Использовать GBM из xgboost, random forest, regularized

greedy forest
Использовать NN из Theano (Keras, lasagne, blocks) или Tensorflow
Слайд 32

Технические Tips & Tricks Делать верную предобработку данных Правильно работать с

Технические Tips & Tricks

Делать верную предобработку данных
Правильно работать с нормализацией/выбросами/пропусками
Проводить визуальный

анализ данных, чтобы лучше понять данные, извлечь высокоуровневые признаки
Делать сокращение размерности, выбор/экстрацию признаков model-free & model-based методами
Строить разные модели на разных данных
Выбрать правильные метрики
Выбрать верную кроссвалидацию
Правильно подбирать модель и ее гиперпараметры
Подбирать оптимальный порог предсказаний
Делать калибровку вероятностей моделей
Правильно работать с несбалансированными данными
Использовать аугментацию данных
Строить ансамбли моделей, т.е. делать стекинг (Stacking)
Слайд 33

Настройка гиперпараметров Найти оптимальное подмножество данных на котором стоит обучаться и

Настройка гиперпараметров

Найти оптимальное подмножество данных на котором стоит обучаться и настраивать

гиперпараметры моделей
Использовать следующую схему GridSearch, RandomSearch:
На первом шаге используем попараметровый grid search для большого количества значений
На втором шаге для лучших значений используем обычный GridSearch, RandomSearch
Использовать методы байесовской оптимизации:
baeys_opt для моделей sklearn
hyperopt для моделей нейронных сетей на Theano
Слайд 34

Оптимальный порог

Оптимальный порог

Слайд 35

Калибровка вероятностей sklearn.calibration.CalibratedClassifierCV

Калибровка вероятностей

sklearn.calibration.CalibratedClassifierCV

Слайд 36

Несбалансированные данные Использовать методы балансировки данных: imbalanced-learn Undersampling (SVM, kNN, NN)

Несбалансированные данные

Использовать методы балансировки данных: imbalanced-learn
Undersampling (SVM, kNN, NN)
Oversampling (SVM, kNN,

NN)
Использовать методы генерирующие данные в процессе своего обучения (NN)
Использовать метрики для несбалансированных данных (F1-score, Matthews correlation cofficient)
Слайд 37

Спасибо за внимание! Вопросы? Евгений Путин Университет ИТМО putin.evgeny@gmail.com 25 мая 2017 Санкт-Петербург

Спасибо за внимание! Вопросы?

Евгений Путин
Университет ИТМО
putin.evgeny@gmail.com

25 мая 2017
Санкт-Петербург