Что делать с «маленькими» данными?

Оригинальная статья на Medium.com. Перевод — Top-Translate.ru.

Во многих технологических компаниях сегодня есть специалисты по данным, сведущие в инфраструктурных инструментах для больших данных и алгоритмах машинного обучения, но время от времени возникают наборы данных с очень небольшим числом базовых точек, и ни один из этих алгоритмов не может правильно справиться с ними. Что же, чёрт возьми, происходит? Что с этим можно сделать?

Откуда появляются маленькие данные?

Большая часть деятельности по обработке, актуальности данных и машинному обучению в технологических компаниях сосредоточена на «биг дате» и сценариях с огромными наборами данных. Наборами, в которых строки – это документы, пользователи, файлы, запросы, песни, изображения и т.д. Это элементы, которых существуют тысячи, сотни тысяч, миллионы или даже миллиарды. Инфраструктура, инструменты и алгоритмы для работы с такими наборами данных за последнее десятилетие или около того развиваются очень быстро, постоянно улучшаясь. И большинство специалистов по данным и практиков машинного обучения приобрели опыт работы в таких ситуациях, привыкли к соответствующим алгоритмам и обладают хорошей интуицией в отношении обычных взаимовлияний (систематические ошибки и расхождения, гибкость и устойчивость, характеристики, заданные вручную, и машинное обучение и т.д.). Но время от времени в работе по-прежнему возникают маленькие данные и зачастую, с ними сложнее работать, для них требуется другой набор алгоритмов и навыков. Такие наборы данных возникают в нескольких ситуациях:



Решения для предприятий: когда вы пытаетесь создать решение для предприятия со сравнительно ограниченным числом сотрудников вместо единого решения для тысяч пользователей или если вы создаете решение, ориентированное на компании, а не отдельных лиц.

Временные ряды: Время в дефиците! Особенно по сравнению с пользователями, запросами, сессиями, документами и т.д. Очевидно, это зависит от единиц измерения времени или скорости выборки, но эффективно увеличить скорость выборки не всегда легко, и если вы работаете, например, с одним числом ежедневно, то каждый день у вас имеется одна точка данных.

Совокупное моделирование штатов, стран, спортивных команд или любой ситуации, где население само по себе ограничено (или производить выборку действительно затратно).

Многомерное A/B тестирование: здесь точками данных становятся методы обработки или комбинации методов обработки. Так что, если вы рассматриваете 3 измерения X4 конфигурации (включая контроль), вы получите 12 точек данных.

Моделирование редких явлений: землетрясения, наводнения и т.д.

Проблемы маленьких данных

Проблемы маленьких данных многочисленны, но в основном они относятся к высокой вариантности:



Становится гораздо труднее избежать чрезмерно близкой подгонки
Чрезмерно близко подгоняются не только данные режима обучения, но иногда также и проверочный набор.

Резко отклоняющиеся значения (выбросы) становятся более опасными
Шум в целом становится реальной проблемой, будь то в вашей целевой переменной или в некоторых характеристиках.

Так что же делать в таких ситуациях?

1) Наймите статистика
Я не шучу! Статистики – это настоящие ученые в сфере данных. Область статистики была разработана, когда данные было гораздо сложнее найти. Эта область занималась проблемами маленьких выборок. Статистические тесты, параметрические модели, бутстреппинг и другие полезные математические инструменты – это прерогатива классической статистики, не современного машинного обучения. Не имея хорошего статистика, наймите морского биолога-зоолога, психолога или того, кто обучался в вашей сфере деятельности с экспериментами с малой выборкой. Чем ближе к ней, тем лучше. Если вы не хотите нанимать статистика на полный рабочий день, сделайте его временным консультантом. Но найм статистика с классической подготовкой может быть очень хорошим вложением.

2) Придерживайтесь простых моделей
Точнее: придерживайтесь ограниченного набора гипотез. Один из способов рассмотрения прогнозного моделирования – это задача поиска. Какая модель из первоначального набора возможных моделей является наиболее подходящей для наших данных? В некотором смысле, каждая точка данных, которую мы используем для подгонки, отклоняет все модели, которые делают ее маловероятной, либо принимает модели, которые согласуются с ней. Если у вас есть большие объемы данных, вы можете позволить себе эффективно исследовать огромные наборы моделей/гипотез и, в конечном итоге прийти к подходящему. Если у вас не так много точек данных, с которых можно начать, вы должны начать с довольно небольшого набора возможных гипотез (например, набора всех линейных моделей с 3 ненулевыми весами, набора деревьев решений с глубиной