97.17K
Категория: Базы данныхБазы данных

Машинное обучение. Сбор и обработка данных

1.

Машинное обучение
В 1959 году Артур Самуэль
(изобретатель первой самообучающейся
компьютерной программы игры в шашки)
описал машинное обучение таким образом:
«Область обучения, которая дает
компьютерам возможность учиться, не
будучи явно запрограммированной».
Главное, что компьютер учится на
постоянном опыте и со временем
становится всё лучше и лучше. Опыт в этом
случае — данные. То, что мы всё чаще
получаем сегодня с изобилием.

2.

Виды машинного обучения
• Обучение с учителем;
• Обучение без учителя;
• Смешанное обучение (с учителем и без);
• Усиленное обучение.

3.

Обучение с учителем VS Обучение
без учителя
• Обучение с учителем предоставляет собой набор
помеченных данных для обучения, по существу, пара
значений с известным входом (input) и известным
выводом (output), из которых алгоритм затем создает
функцию, через которую вы можете «прогонять» новые
данные, чтобы выработать вероятный вывод на основе
новых входов.
• Обучение без учителя позволяет алгоритму найти
выходные данные на основе входных данных без какихлибо меток. С этой целью машина поможет определить
выходы в зависимости от того, сколько их нужно (это ей
указывает человек), используя структуру данных,
которые вы ей подаете, и любые ограничения, которые
вы ей придумаете.

4.

Где взять данные, чтоб начать
обучать ML-модель?
• Во-первых, используйте для начала работы с ML опенсорсные
массивы данных. Существуют целые горы данных для машинного
обучения, а некоторые компании (например, Google) с готовностью
делятся ими. О возможностях использования публичных массивов
данных мы поговорим чуть позже. Хотя такие возможности
существуют, реальную ценность обычно представляют данные,
полученные из бизнес-решений и действий вашей собственной
компании.
• Во-вторых, у вас есть шанс собирать данные правильным образом.
Компании, начавшие собирать данные ещё с бумажных бухгалтерских
книг и закончившие файлами .xlsx и .csv, скорее всего, будут
испытывать бОльшие трудности с подготовкой данных, чем гордые
обладатели маленького, но удобного для ML массива данных. Если
знаешь задачи, которые должно решать машинное обучение, то
можно заранее подстроить под них механизм сбора данных.

5.

Идеальных данных нет!
Проблема в том, что во всех массивах данных
есть изъяны. Поэтому подготовка данных является
очень важным этапом процесса машинного
обучения. Если вкратце, то подготовка данных (data
preparation) — это набор процедур, помогающий
сделать массив данных более пригодным для
машинного обучения. В более широком смысле под
подготовкой данных также понимают создание
подходящего механизма сбора данных.
И эти процедуры потребляют подавляющее
большинство времени, тратящегося на машинное
обучение. Иногда до построения первого алгоритма
проходят месяцы!

6.

Какие именно данные собирать?
Сначала надо определиться с целью машинного обучения и
видом задачи.
Виды задач:
Классификация. Вам нужно, чтобы алгоритм отвечал на простые
двоичные вопросы «да или нет» (кошки или собаки, плохо или
хорошо, овцы или козы, и так далее), или чтобы он выполнял
многоклассовую классификацию (трава, деревья или кусты; кошки,
собаки или птицы, и так далее.) Здесь нужны данные с ответом
(разметкой), то есть размеченные.
Кластеризация. Вам нужно, чтобы алгоритм находил правила
классификации и количество классов. Основное отличие от задач
классификации заключается в том, что вы не знаете групп и
принципов их разделения.
Регрессия. Вам нужно, чтобы алгоритм выдавал какое-то числовое
значение.
Ранжирование. Некоторые алгоритмы машинного обучения
ранжируют объекты по различным признакам. Ранжирование активно
используется для рекомендаций фильмов в сервисах потокового
воспроизведения видео

7.

Разметка данных
Размеченные данные — это данные,
дополненные метками/классами,
содержащими значимую информацию.
Даже если вы нашли подходящий набор
обучающих данных, он не особо полезен, если
его элементы не размечены, не снабжены
метками и аннотациями для эффективного
обучения алгоритма.
Однако разметка — это неблагодарная
работа, которой большинство data scientists-ов
занимается только в случае абсолютной
необходимости.

8.

Кто занимается сбором данных?
Data Engineer, или инженер данных, — это
специалист, который занимается построением и
обслуживанием инфраструктуры для работы с
данными, а также их предварительной
обработкой.
Дата-инженер собирает данные, хранит их,
подготавливает и передаёт специалисту по Data
Science. Тот, в свою очередь, получает эти данные
и использует для аналитики или построения
моделей машинного обучения.

9.

Два механизма сбора данных
• Data Warehouse и ETL
Первый — это размещение данных в warehouse. Эти
хранилища обычно создаются для структурированных
(или SQL) записей, то есть сохранённых в стандартных
табличных форматах.
• Data lake («озёра данных») — это хранилища, способные
хранить и структурированные, и неструктурированные
данные, в том числе изображения, видео, аудиозаписи,
файлы PDF, и так далее. Но даже если данные
структурированы, перед сохранением они не
преобразуются.

10.

Качество данных
Насколько ощутимы человеческие ошибки? Если данные собираются или
размечаются людьми, то проверьте подмножество данных и определите
частоту возникновения ошибок.
Существуют ли технические проблемы с передачей данных? Например,
некоторые записи могут дублироваться из-за ошибки на сервере, может
произойти сбой хранилища или кибератака. Оцените, насколько эти события
повлияли на ваши данные.
Сколько пропущенных значений в ваших данных? Хотя способы работы с
пропущенными записями существуют (о них мы поговорим ниже), оцените,
насколько критично их количество.
Адекватны ли данные вашей задаче? Если вы продавали бытовую технику в
США, а теперь планируете расшириться и на Европу, то можно ли ипользовать
те же данные для прогнозирования наличия и спроса?
Есть ли дисбаланс в данных? Представьте, что мы хотите уменьшить риски в
цепочках поставок и отфильтровать тех поставщиков, которых вы считаете
ненадёжными; при этом вы используете набор атрибутов (например,
местоположение, размер, рейтинг и так далее). Если в размеченном массиве
данных 1500 записей помечено как надёжные, и только 30 считаются
ненадёжными, то у модели не будет достаточного количества примеров,
чтобы обучиться информации о ненадёжных поставщиках.

11.

А сколько надо данных?
• Правило десяток
Это самый распространённый из способов примерной оценки.
Это правило гласит, что модель требует в десять раз больше данных, чем
у неё есть степеней свободы. Под степенью свободы понимается
любой параметр, влияющий на модель, или любой атрибут, от
которого зависят выходные данные модели.
• Кривые обучения
Это более логичный подход, построенный на опыте.
Кривая обучения демонстрирует взаимосвязь между качеством работы
модели машинного обучения и размером датасета. Мы создаём
график результатов работы модели в зависимости от увеличения
размера набора данных на каждой итерации.

12.

Очистка данных
• Приводим в один формат
• Боремся с пропусками
• Удаляем дубликаты
• Убираем выбросы
• Избавляемся от категорой

13.

Итоги
• Данные – это очень важно!
• Исходя из задачи, надо собирать
конкретные данные в конкретном
количестве.
• Надо всегда смотреть и чистить данные.
• Нет единой технологии к подготовке и
сбору данных.
• ТЗ на сбор данных может стоить дорого.
English     Русский Правила