Date post: | 15-Jan-2017 |
Category: |
Data & Analytics |
Upload: | anjlab |
View: | 182 times |
Download: | 3 times |
Изучайте Machine Learning во имя добра
или Teach my shiny metal ass
Дмитрий Гусев Дмитрий Цепелев
AnjLab, 2016
Исходные данныеТипы данных:
• числовые
• категориальные
• текстовые
3
• даты
• графические
• координаты
Предварительная обработка данных
• выбросы
• шумы
• пропущенные значения
• отбор важных признаков
• понижение размерности
• feature engineering
4
Классификация
• Необходимо найти такие разделяющие поверхности, которые бы разделяли объекты на классы максимально правильно
• Обучение с учителем
5
Дерево решений• Бинарное решающее дерево
• Каждый внутренний узел содержит условие
• Каждый лист содержит имя класса
6
Метрика качества бинарной классификации: доля правильных
ответов (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
Задача регрессии• Признаки и ответы - вещественные числа
• Необходимо определить вид функции f(x) и ее коэффициенты таким образом, чтобы она принимала наиболее близкие значения к исходным значениям множества Y
• Обучение с учителем
• Решение - метод наименьших квадратов
• Метрика качества - среднеквадратическое отклонение
17
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));}
Кластеризация• Требуется разбить выборку на кластеры так, чтобы каждый кластер состоял из близких объектов, а объекты разных кластеров существенно отличались
• Обучение без учителя
• Метрика качества зависит от задачи
23
Примеры реальных задач• медицинская диагностика
• кредитный скоринг
• предсказание оттока клиентов
• категоризация текстовых документов
• прогноз стоимости недвижимости
• прогнозирование объемов продаж
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