30
Изучайте Machine Learning во имя добра или Teach my shiny metal ass Дмитрий Гусев Дмитрий Цепелев AnjLab, 2016

Изучайте Machine Learning во имя добра или Teach my shiny metal ass

  • Upload
    anjlab

  • View
    186

  • Download
    3

Embed Size (px)

Citation preview

Изучайте Machine Learning во имя добра

или Teach my shiny metal ass

Дмитрий Гусев Дмитрий Цепелев

AnjLab, 2016

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

• Регрессия

• Классификация

• Кластеризация

• Примеры реальных задач

2

Исходные данныеТипы данных:

• числовые

• категориальные

• текстовые

3

• даты

• графические

• координаты

Предварительная обработка данных

• выбросы

• шумы

• пропущенные значения

• отбор важных признаков

• понижение размерности

• feature engineering

4

Классификация

• Необходимо найти такие разделяющие поверхности, которые бы разделяли объекты на классы максимально правильно

• Обучение с учителем

5

Дерево решений• Бинарное решающее дерево

• Каждый внутренний узел содержит условие

• Каждый лист содержит имя класса

6

Как нарисовать сову

7

Методы классификации

8

Метрика качества бинарной классификации: доля правильных

ответов (accuracy)• Интуитивная метрика

• Неустойчива к несбалансированным данным

• Пример: медицинская диагностика

• Число больных (класс 1) - 25

• Число здоровых (класс 0) - 975

• Классификатор: a(x) = 0

• Доля правильных ответов 975 / (25 + 975)= 97,5%

9

Матрица ошибок

y = 1 y = 0

a(x)=1 True Positive (TP) False Positive (FP)

a(x)=0 False Negative (FN) True Negative (TN)

10

Метрика качества бинарной классификации: точность (precision)• Показывает, насколько можно доверять классификатору

• Минимизирует число ложных срабатываний

• Устойчива к несбалансированным данным:

• Точность классификатора: 28,6%

• Точность константного классификатора: 0%

y = 1 y = 0

a(x)=1 20 50

a(x)=0 5 1000

y = 1 y = 0

a(x)=1 TP FP

a(x)=0 FN TN

11

Метрика качества бинарной классификации: полнота (recall)• Показывает, сколько объектов класса 1 найдено

• Минимизирует число ложных пропусков

• Устойчива к несбалансированным данным:

• Полнота классификатора: 80%

• Полнота константного классификатора: 0%

y = 1 y = 0

a(x)=1 20 50

a(x)=0 5 1000

y = 1 y = 0

a(x)=1 TP FP

a(x)=0 FN TN

12

Метрика качества многоклассовой классификации: Area Under Curve - Precision Recall Curve (AUC-

PRC)• b(x) - вероятность принадлежности объекта к классу 1

• объекты отсортированы по возрастанию вероятности

• расчет precision и recall в каждой точке

• площадь под кривой характеризует качество классификатора

b(x) 0,14 0,23 0,39 0,52 0,73 0,90

y 0 1 0 0 1 1

13

Метрика качества многоклассовой классификации: Area Under Curve - Receiver Operating

Characteristic (AUC-ROC)

• False Positive Rate - специфичность

b(x) 0,14 0,23 0,39 0,52 0,73 0,90

y 0 1 0 0 1 1

• True Positive Rate - чувствительность

14

Demo: San Francisco Crimes

15

Demo: Dota 2

16

Задача регрессии• Признаки и ответы - вещественные числа

• Необходимо определить вид функции f(x) и ее коэффициенты таким образом, чтобы она принимала наиболее близкие значения к исходным значениям множества Y

• Обучение с учителем

• Решение - метод наименьших квадратов

• Метрика качества - среднеквадратическое отклонение

17

Задача регрессии

18

Numbers / Excel

PostgreSQL

Apache Commons-Mathpublic static <T extends Number> Optional<BigDecimal> regrSlope(List<Value<T>> values){ if (CollectionUtils.isEmpty(values)) { return Optional.empty(); } final SimpleRegression regression = new SimpleRegression(); final DateTime zeroDate = new DateTime(2000, 1, 1, 0, 0); values .stream() .filter(value -> !incomplete(value)) .sorted(Ordering.natural().onResultOf(Value::getDate)) .forEach(value -> regression.addData( Days.daysBetween(zeroDate, new DateTime(value.getDate())).getDays(), value.getValue().doubleValue())); double slope = regression.getSlope(); if (Double.isNaN(slope) || Double.isInfinite(slope)) { return Optional.empty(); } return Optional.of(BigDecimal.valueOf(slope));}

Demo: Предсказание зарплат

22

Кластеризация• Требуется разбить выборку на кластеры так, чтобы каждый кластер состоял из близких объектов, а объекты разных кластеров существенно отличались

• Обучение без учителя

• Метрика качества зависит от задачи

23

Методы кластеризации

24

Demo: Анализ цветов

25

Примеры реальных задач• медицинская диагностика

• кредитный скоринг

• предсказание оттока клиентов

• категоризация текстовых документов

• прогноз стоимости недвижимости

• прогнозирование объемов продаж

26

Технологии• Python: Pandas, SciPy, SKLearn

• R

• Matlab/Octave

• Project Jupyter

• Microsoft Azure Machine Learning

• Google Machine Learning

27

Ссылки

• Machine Learning (Stanford University)

• Введение в машинное обучение (Yandex/ВШЭ)

• Машинное обучение и анализ данных (Yandex/МФТИ)

• Kaggle

28

Kaggle• платформа для проведения соревнований по машинному обучению

• job board

• datasets

• текущие соревнования:

• SF Crime classification

• Santander Customer Classification

• Yelp Restaurant Photo Classification

29

30