+ All Categories
Home > Data & Analytics > Изучайте Machine Learning во имя добра или Teach my shiny metal ass

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

Date post: 15-Jan-2017
Category:
Upload: anjlab
View: 182 times
Download: 3 times
Share this document with a friend
30
Изучайте Machine Learning во имя добра или Teach my shiny metal ass Дмитрий Гусев Дмитрий Цепелев AnjLab, 2016
Transcript

Изучайте 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


Recommended