Изучайте Machine Learning во имя добра или Teach my shiny metal ass
-
Upload
anjlab -
Category
Data & Analytics
-
view
186 -
download
3
Transcript of Изучайте Machine Learning во имя добра или Teach my shiny metal ass
Изучайте 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