SlideShare a Scribd company logo
1 of 30
Download to read offline
Изучайте 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-Math
public 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

More Related Content

Viewers also liked

How to select your new electronics manufacturing site in Hungary
How to select your new electronics manufacturing site in HungaryHow to select your new electronics manufacturing site in Hungary
How to select your new electronics manufacturing site in HungaryBalazs Csorjan dr.
 
CORONARY ARTERY PERFORATION DURING PCI
CORONARY ARTERY PERFORATION DURING PCICORONARY ARTERY PERFORATION DURING PCI
CORONARY ARTERY PERFORATION DURING PCIVishal Vanani
 
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...Chris Fregly
 
Introduction to Machine Learning with TensorFlow
Introduction to Machine Learning with TensorFlowIntroduction to Machine Learning with TensorFlow
Introduction to Machine Learning with TensorFlowPaolo Tomeo
 
Election 2016 – RNC & DNC Recap
Election 2016 – RNC & DNC RecapElection 2016 – RNC & DNC Recap
Election 2016 – RNC & DNC RecapGloverParkGroup
 
Chapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAChapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAazira96
 
Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Chris Fregly
 
Chapter 3 : IMAGE
Chapter 3 : IMAGEChapter 3 : IMAGE
Chapter 3 : IMAGEazira96
 
High level-api in tensorflow
High level-api in tensorflowHigh level-api in tensorflow
High level-api in tensorflowHyungjoo Cho
 
Regulaciones no arancelarias cualitativas
Regulaciones no arancelarias cualitativasRegulaciones no arancelarias cualitativas
Regulaciones no arancelarias cualitativasNombre Apellidos
 
GDG-Shanghai 2017 TensorFlow Summit Recap
GDG-Shanghai 2017 TensorFlow Summit RecapGDG-Shanghai 2017 TensorFlow Summit Recap
GDG-Shanghai 2017 TensorFlow Summit RecapJiang Jun
 
Time management for Professionals
Time management for ProfessionalsTime management for Professionals
Time management for ProfessionalsDigital Screaming
 

Viewers also liked (15)

Thailand Electronics and Electrical Industry
Thailand Electronics and Electrical IndustryThailand Electronics and Electrical Industry
Thailand Electronics and Electrical Industry
 
How to select your new electronics manufacturing site in Hungary
How to select your new electronics manufacturing site in HungaryHow to select your new electronics manufacturing site in Hungary
How to select your new electronics manufacturing site in Hungary
 
CORONARY ARTERY PERFORATION DURING PCI
CORONARY ARTERY PERFORATION DURING PCICORONARY ARTERY PERFORATION DURING PCI
CORONARY ARTERY PERFORATION DURING PCI
 
09 aimradial2016 thu2 F Ikeno
09 aimradial2016 thu2 F Ikeno09 aimradial2016 thu2 F Ikeno
09 aimradial2016 thu2 F Ikeno
 
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...
Advanced Spark and TensorFlow Meetup 08-04-2016 One Click Spark ML Pipeline D...
 
Introduction to Machine Learning with TensorFlow
Introduction to Machine Learning with TensorFlowIntroduction to Machine Learning with TensorFlow
Introduction to Machine Learning with TensorFlow
 
Election 2016 – RNC & DNC Recap
Election 2016 – RNC & DNC RecapElection 2016 – RNC & DNC Recap
Election 2016 – RNC & DNC Recap
 
Chapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAChapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIA
 
Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016Advanced Spark and TensorFlow Meetup May 26, 2016
Advanced Spark and TensorFlow Meetup May 26, 2016
 
Chapter 3 : IMAGE
Chapter 3 : IMAGEChapter 3 : IMAGE
Chapter 3 : IMAGE
 
High level-api in tensorflow
High level-api in tensorflowHigh level-api in tensorflow
High level-api in tensorflow
 
Tensorflow
TensorflowTensorflow
Tensorflow
 
Regulaciones no arancelarias cualitativas
Regulaciones no arancelarias cualitativasRegulaciones no arancelarias cualitativas
Regulaciones no arancelarias cualitativas
 
GDG-Shanghai 2017 TensorFlow Summit Recap
GDG-Shanghai 2017 TensorFlow Summit RecapGDG-Shanghai 2017 TensorFlow Summit Recap
GDG-Shanghai 2017 TensorFlow Summit Recap
 
Time management for Professionals
Time management for ProfessionalsTime management for Professionals
Time management for Professionals
 

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

Supervised ML in Practice: Tips & Tricks
Supervised ML in Practice:  Tips & TricksSupervised ML in Practice:  Tips & Tricks
Supervised ML in Practice: Tips & TricksDzianis Pirshtuk
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данныхYandex
 
20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06Computer Science Club
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionAnton Konushin
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionAnton Konushin
 
Domain-тестирование
Domain-тестированиеDomain-тестирование
Domain-тестированиеSPB SQA Group
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 СегментацияVictor Kulikov
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
Crowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойCrowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойssuser80b897
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewKhryashchev
 

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

Supervised ML in Practice: Tips & Tricks
Supervised ML in Practice:  Tips & TricksSupervised ML in Practice:  Tips & Tricks
Supervised ML in Practice: Tips & Tricks
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данных
 
20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. Recognition
 
Domain-тестирование
Domain-тестированиеDomain-тестирование
Domain-тестирование
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 Сегментация
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
Crowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойCrowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкой
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
L06 detection
L06 detectionL06 detection
L06 detection
 
смирнов Data mining
смирнов Data miningсмирнов Data mining
смирнов Data mining
 

More from AnjLab

RxJava
RxJavaRxJava
RxJavaAnjLab
 
Магия AsyncDisplayKit
Магия AsyncDisplayKitМагия AsyncDisplayKit
Магия AsyncDisplayKitAnjLab
 
Функциональное программирование на Elixir
Функциональное программирование на ElixirФункциональное программирование на Elixir
Функциональное программирование на ElixirAnjLab
 
Функциональное программирование и Clojure
Функциональное программирование и ClojureФункциональное программирование и Clojure
Функциональное программирование и ClojureAnjLab
 
SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)AnjLab
 
PassKit & Wallet marketing
PassKit & Wallet marketingPassKit & Wallet marketing
PassKit & Wallet marketingAnjLab
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)AnjLab
 

More from AnjLab (7)

RxJava
RxJavaRxJava
RxJava
 
Магия AsyncDisplayKit
Магия AsyncDisplayKitМагия AsyncDisplayKit
Магия AsyncDisplayKit
 
Функциональное программирование на Elixir
Функциональное программирование на ElixirФункциональное программирование на Elixir
Функциональное программирование на Elixir
 
Функциональное программирование и Clojure
Функциональное программирование и ClojureФункциональное программирование и Clojure
Функциональное программирование и Clojure
 
SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)
 
PassKit & Wallet marketing
PassKit & Wallet marketingPassKit & Wallet marketing
PassKit & Wallet marketing
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)
 

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

  • 1. Изучайте Machine Learning во имя добра или Teach my shiny metal ass Дмитрий Гусев Дмитрий Цепелев AnjLab, 2016
  • 2. План • Подготовка данных • Регрессия • Классификация • Кластеризация • Примеры реальных задач 2
  • 3. Исходные данные Типы данных: • числовые • категориальные • текстовые 3 • даты • графические • координаты
  • 4. Предварительная обработка данных • выбросы • шумы • пропущенные значения • отбор важных признаков • понижение размерности • feature engineering 4
  • 5. Классификация • Необходимо найти такие разделяющие поверхности, которые бы разделяли объекты на классы максимально правильно • Обучение с учителем 5
  • 6. Дерево решений • Бинарное решающее дерево • Каждый внутренний узел содержит условие • Каждый лист содержит имя класса 6
  • 9. Метрика качества бинарной классификации: доля правильных ответов (accuracy) • Интуитивная метрика • Неустойчива к несбалансированным данным • Пример: медицинская диагностика • Число больных (класс 1) - 25 • Число здоровых (класс 0) - 975 • Классификатор: a(x) = 0 • Доля правильных ответов 975 / (25 + 975)= 97,5% 9
  • 10. Матрица ошибок y = 1 y = 0 a(x)=1 True Positive (TP) False Positive (FP) a(x)=0 False Negative (FN) True Negative (TN) 10
  • 11. Метрика качества бинарной классификации: точность (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
  • 12. Метрика качества бинарной классификации: полнота (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
  • 13. Метрика качества многоклассовой классификации: 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
  • 14. Метрика качества многоклассовой классификации: 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
  • 17. Задача регрессии • Признаки и ответы - вещественные числа • Необходимо определить вид функции f(x) и ее коэффициенты таким образом, чтобы она принимала наиболее близкие значения к исходным значениям множества Y • Обучение с учителем • Решение - метод наименьших квадратов • Метрика качества - среднеквадратическое отклонение 17
  • 21. Apache Commons-Math public 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. Кластеризация • Требуется разбить выборку на кластеры так, чтобы каждый кластер состоял из близких объектов, а объекты разных кластеров существенно отличались • Обучение без учителя • Метрика качества зависит от задачи 23
  • 26. Примеры реальных задач • медицинская диагностика • кредитный скоринг • предсказание оттока клиентов • категоризация текстовых документов • прогноз стоимости недвижимости • прогнозирование объемов продаж 26
  • 27. Технологии • Python: Pandas, SciPy, SKLearn • R • Matlab/Octave • Project Jupyter • Microsoft Azure Machine Learning • Google Machine Learning 27
  • 28. Ссылки • Machine Learning (Stanford University) • Введение в машинное обучение (Yandex/ВШЭ) • Машинное обучение и анализ данных (Yandex/ МФТИ) • Kaggle 28
  • 29. Kaggle • платформа для проведения соревнований по машинному обучению • job board • datasets • текущие соревнования: • SF Crime classification • Santander Customer Classification • Yelp Restaurant Photo Classification 29
  • 30. 30