Советы по работе с небольшими данными в науке о данных

Большие проблемы с небольшими данными

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

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

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

Но что такое маленькие данные? Хотя четкого определения нет, хорошее практическое правило - смотреть на количество параметров модели (или функций) относительно количества наблюдений (строк). Небольшие наборы данных должны содержать примерно 10 наблюдений (строк) для каждого параметра модели (функция; CalTech, 2015).

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

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

Модели с низким смещением и высокой дисперсией будут иметь тенденцию чрезмерно соответствовать выборочным данным, тогда как модели с высоким смещением и низкой дисперсией будут иметь тенденцию не соответствовать данным. В этом посте мы рассмотрим несколько методов решения проблем с небольшими данными.

Совет 1. Правильно обрабатывайте данные

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

С другой стороны, разработка функций - это более сложная тема, которая является не только наукой, но и искусством. Каждая функция (также известная как переменная), которую мы используем в наших данных для обучения модели, должна быть как значимой функцией (связана ли она логически с результатом, который вы моделируете?), Так и иметь обобщаемое распределение (представляет ли частотное распределение другие распределения, найденные в природа, как и нормальное распределение).

« Разработка функций - это не только наука, но и искусство. »

Методы экспериментирования с проектированием функций включают…

преобразование данных для лучшего представления нормального распределения (повышает уверенность в обобщаемости нашей модели)…

уменьшение разброса характеристик за счет создания ячеек / сегментов значений…

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

Совет 2: используйте несколько моделей (ансамблей)

Одна из лучших уловок, которую я когда-либо усвоил как специалист по обработке данных, заключалась в том, что объединение нескольких моделей позволяет делать прогнозы. В науке о данных мы называем это ансамблями, и это довольно мощная концепция.

Подумайте об этом так: если мы хотим измерить, насколько человек счастлив, мы могли бы просто задать ему один вопрос; Насколько вы счастливы по шкале от 1 до 10? Но сможем ли мы точно запечатлеть их счастье? Возможно нет.

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

« Объединение нескольких моделей может помочь значительно решить проблему дисперсии для небольших данных. »

Аналогичным образом работает объединение нескольких моделей. Объединив результаты нескольких моделей посредством усреднения или голосования (например, две лучшие из трех моделей), мы лучше справляемся с дисперсией моделей и улучшаем нашу способность к обобщениям.

Совет 3. Используйте синтетические данные

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

Наиболее распространенные примеры взяты из компьютерного зрения, отрасли науки о данных, которая использует пиксели в изображениях в качестве данных для разработки моделей, которые могут идентифицировать объекты. Если, например, мы хотим построить модель для идентификации автомобилей на изображениях, но у нас есть только несколько примеров изображений с автомобилями на них, мы можем увеличить размер нашей выборки, используя перестановки. Примеры методов перестановки включают такие вещи, как поворот изображений, размытие или определение пороговых значений.

«Самый впечатляющий прогресс в производстве синтетических данных связан с применением общих состязательных сетей или GAN».

Другой метод увеличения объема небольших данных - моделирование новых данных на основе распределения доступных функций в наборе данных. Идея состоит в том, чтобы создать новые данные, которые имеют значения в пределах ожидаемого распределения существующих функций в наборе данных.

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

Новейший и самый захватывающий метод построения синтетических данных основан на исследованиях искусственных нейронных сетей. В частности, исследователи создали модели противоборства (общие состязательные сети; GAN), чтобы обучить нейронные сети имитировать целые наборы данных (например, наблюдения / строки, матрицы, тензоры). Общая идея состоит в том, чтобы настроить архитектуру так, чтобы было две отдельные модели. Одна модель пытается определить, являются ли данные настоящими или фальшивыми, в то время как вторая модель генерирует новые данные, научившись со временем обмануть первую модель.

Этот новый метод помогает устранить проблемы, связанные со старыми методами моделирования. Поскольку генеративная модель в архитектуре GAN учится генерировать полное наблюдение за данными, которое включает в себя все доступные функции, она более чувствительна к отношениям между этими переменными. Следовательно, данные, полученные в результате этого процесса, часто более репрезентативны для отношений, существующих в выборке.

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

Совет 4. Воспользуйтесь преимуществами трансферного обучения

Последний подход, который дал значительные преимущества для случаев использования, в которых для обучения с моделями доступны лишь небольшие объемы данных, известен как трансферное обучение. Трансферное обучение - это когда специалисты по данным используют модели, которые были обучены другими специалистами по данным, и обновляют эти модели своими новыми данными.

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

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

« Трансферное обучение действительно стоит на плечах гигантов, чтобы обеспечить более эффективные решения бизнес-проблем. »

Хотите узнать больше о науке о данных? "Присоединяйся ко мне".