- PVSM.RU - https://www.pvsm.ru -

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

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

Большие и маленькие данные

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

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

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

  • Решения для предприятий: когда вы пытаетесь создать решение для предприятия со сравнительно ограниченным числом сотрудников вместо единого решения для тысяч пользователей или если вы создаете решение, ориентированное на компании, а не отдельных лиц.
  • Временные ряды: Время в дефиците! Особенно по сравнению с пользователями, запросами, сессиями, документами и т. д. Очевидно, это зависит от единиц измерения времени или скорости выборки, но эффективно увеличить скорость выборки не всегда легко, и если вы работаете, например, с одним числом ежедневно, то каждый день у вас имеется одна точка данных.
  • Совокупное моделирование штатов, стран, спортивных команд или любой ситуации, где население само по себе ограничено (или производить выборку действительно затратно).
  • Многомерное A/B тестирование: здесь точками данных становятся методы обработки или комбинации методов обработки. Так что, если вы рассматриваете 3 измерения X4 конфигурации (включая контроль), вы получите 12 точек данных.
  • Моделирование редких явлений: землетрясения, наводнения и т. д.

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

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

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

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

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

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

1_ydhgwh2s1gEiSirOxxM4vw[1]

Любая сумасшедшая модель может соответствовать такой единственной точке данных (из распределения вокруг зелёный кривой)

1_9chiBwNP9IwtP5Wf12nDTA[1]

Чем больше точек, тем меньше и меньше моделей могут обоснованно объяснить их вместе

1_pxh3I4KVBFMNy5_r-LaJ6w[1]

3) По возможности, формируйте банки данных
Вы создаете персонализированный фильтр спама? Попробуйте создать его поверх универсальной модели, использующейся для всех пользователей. Вы моделируете ВВП для конкретной страны? Попробуйте подогнать свои модели к ВВП для всех стран, по которым вы можете получить данные, возможно с использованием выборки по значимости, чтобы выделить страну, в которой вы заинтересованы. Вы пытаетесь предсказать извержения конкретного вулкана… Думаю, вы поняли идею.

4) Ограничьте экспериментирование
Не злоупотребляйте использованием своего проверочного набора. При использовании слишком большого числа различных методов и опорного набора для сравнения между ними, следует осознавать статистическую силу получаемых результатов, а также то, что производительность, которую вы получаете на этом наборе, не является хорошей статистической характеристикой для данных не из выборки.

5) Очищайте свои данные
Шум и выбросы мешают особенно для небольших наборов данных. Для получения разумных моделей очистка данных может иметь решающее значение. В качестве альтернативы вы можете ограничить свое моделирование специальными устойчивыми к выбросам методами (например, квантильная регрессия [3]).

6) Выполняйте отбор характеристик
Я не большой поклонник явного отбора характеристик. Я, как правило, стремлюсь к упорядочению и усреднению моделей (следующие два пункта), чтобы избежать избыточной подгонки. Но если данные действительно ограничение, иногда явный отбор характеристик имеет большое значение. По возможности, выполняйте отбор или устранение характеристик на основе областей значений, так как подходы «в лоб» (например, все подмножества или прямое искание), вероятно, приведут к избыточной подгонке, потому что они включают все характеристики.

7) Используйте упорядочение
Упорядочение — это почти волшебное решение, ограничивающее подгонку модели и позволяющее уменьшить число эффективных степеней свободы, не уменьшая фактическое число параметров в модели. При упорядочении 1 уровня создаются модели с меньшим количеством ненулевых параметров, за счет чего эффективнее выполняется неявный выбор характеристик, которые могут быть желательны для объясняемости производительности, в то время как при упорядочении 2 уровня создаются модели с более консервативными (ближе к нулю) параметрами, и оно похоже на наличие приоритетов для параметров, центрированных относительно нуля (в байесовом мире). Упорядочение 1 уровня, как правило, лучше для прогнозирования точности, чем упорядочение 2 уровня.

1_CwnSVcr9rZa3pllDrRP71Q[1] [4]

При упорядочении 1 уровня большинство параметров модели могут быть обнулены

8) Используйте усреднение моделей
Усреднение моделей действует аналогично упорядочению — уменьшает вариантность и повышает генерализацию, но это методика широкого применения, которую можно использовать с любым типом моделей или даже с гетерогенными наборами моделей. Недостатком является то, что вы в конечном итоге получаете огромные наборы моделей, которые медленно оцениваются или неудобны для внедрения в производственной системе. Две очень разумные формы усреднения моделей — это Bagging (инкапсуляция) и байесовское усреднение моделей.

1_LQYmYT1t4QqGGnho-zVe0g[1]

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

1_-RadM0WAtEHd0HIAxQAawQ[1]

Но при усреднении всех этих моделей с высокой вариантностью получается гладкая кривая, удивительно близкая к оригинальному распределению

9) Попробуйте байесовское моделирование и усреднение моделей
Это опять же, не моя любимая методика, но байесовский вывод может хорошо подходить для работы с небольшими наборами данных, особенно, если вы можете использовать области значений для построения разумных приоритетных элементов.

10) Предпочтительно используйте доверительные интервалы, а не точечные оценки
Как правило, желательно получить оценку доверия к вашему прогнозу, кроме формирования самого прогноза. Для регрессионного анализа она обычно принимает форму прогнозирования диапазона значений, откалиброванного для охвата истинного значения 95% времени, или в случае классификации это может быть всего лишь вопросом получения классовых вероятностей. Это становится более критичным при наличии небольших наборов данных, поскольку более вероятно, что некоторые области в вашем пространстве признаков менее представлены, чем другие. Усреднение моделей, как указано в предыдущих двух пунктах, позволяет нам довольно легко это сделать в общем виде для регрессии, классификации и оценки плотности. Также полезно делать это при оценке ваших моделей. Формирования доверительных интервалов показателей, которые вы используете, чтобы сравнить производительность моделей, скорее всего, спасет вас от многих поспешных неправильных выводов.

1_WoZICSUtmuWhblYksKnoqg[1]

Части пространства признаков, вероятно, будут меньше охвачены вашими данными, а доверие к прогнозу в этих областях должно отображать это

1_vBLM1uU-N8HTi2X0GURoVw[1]

Графики производительности после бутстреппинга от ROCR [5]

Краткий вывод

Возможно, это довольно длинный список вещей, которые можно сделать или попробовать, но все они связаны с тремя основными темами: ограниченное моделирование, сглаживание и количественное выражение неопределенности.

Большинство графиков, взяты из книги «Распознавание образов и машинное обучение [6]» Кристофера Бишопа.

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/sovety/100516

Ссылки в тексте:

[1] статья: https://medium.com/rants-on-machine-learning/what-to-do-with-small-data-d253254d1a89

[2] Top-Translate.ru: http://top-translate.ru/

[3] квантильная регрессия: https://en.wikipedia.org/wiki/Quantile_regression

[4] Image: https://roem.ru/wp-content/uploads/2015/10/1.cwnsvcr9rza3plldrrp71q1.png

[5] ROCR: http://rocr.bioinf.mpi-sb.mpg.de/

[6] Распознавание образов и машинное обучение: http://research.microsoft.com/en-us/um/people/cmbishop/prml/webfigs.htm

[7] Источник: https://roem.ru/10-10-2015/209844/small-data/