Подготовка данных для обучения

Материал из Материалы по машинному обучению
Перейти к: навигация, поиск

Сбор данных для нейронной сети

Пропущенные значения можно заменить на среднее значение (или на другую статистику) этой переменной по всем имеющимся обучающим примерам (Bishop, 1995).

Номинальные значения можно заменить на рейтинг (основываясь на экспертных оценках)

Количество наблюдений для обучения

Одно из эвристических правил - число наблюдений должно быть в десять раз больше числа связей в сети.

Размерность данных

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

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

Выбросы

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

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

Особое внимание следует уделить «выбросам» (англ. outliers) — нетипичным наблюдениям, выпадающим из общей закономерности данных. Они могут быть вызваны ошибками измерения или факторами, которые не были учтены в располагаемых данных. Выбросы могут значительно ухудшить параметры настраиваемой модели, которая будет пытаться объяснить все наблюдения, включая и нетипичные. Для фильтрации выбросов существуют разные подходы. Например, по плотности наблюдений можно построить доверительную область, куда будут попадать наблюдения с высокой вероятностью, а далее отбрасывать все наблюдения, попавшие за пределы доверительной области.

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

Репрезентативность

Репрезентативность — соответствие характеристик выборки характеристикам популяции или генеральной совокупности в целом [4, 5]. Репрезентативность определяет, насколько возможно обобщать результаты исследования с привлечением определённой выборки на всю генеральную совокупность, из которой она была собрана.


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

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

Следует учесть все возможности. Нейронная сеть может обучаться только на тех данных, которыми она располагает. Предположим, что лица с годовым доходом более $100,000 имеют высокий кредитный риск, а обучающее множество не содержало лиц с доходом более $40,000 в год. Тогда едва ли можно ожидать от сети правильного решения в совершенно новой для нее ситуации.

При использовании на вход нейронной сети следует подавать значения из того диапазона, на котором она обучалась. Например, если при обучении нейронной сети на один из ее входов подавались значения от 0 до 10, то при ее применении на вход следует подавать значения из этого же диапазона или близлежащие.

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

Несбалансированный набор данных. Коль скоро сеть минимизирует общую погрешность, важное значение приобретает пропорции, в которых представлены данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах будет искажать результат в пользу хороших наблюдений, поскольку это позволит алгоритму уменьшить общую погрешность (которая определяется в основном хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными. Хорошим примером служит задача выявления заболеваний. Пусть, например, при обычных обследованиях в среднем 90% людей оказываются здоровыми. Сеть обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10. Затем она применяется для диагностики пациентов с определенным жалобами, среди которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз чересчур осторожно и не распознает заболевание у некоторых больных. Если же, наоборот, сеть обучить на данных "с жалобами", а затем протестировать на "обычных" данных, то она будет выдавать повышенное число неправильных диагнозов о наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так, чтобы были учтены различия в распределении данных (например, можно повторять редкие наблюдения или удалить часто встречающиеся), или же видоизменить решения, выдаваемые сетью, посредством матрицы потерь (Bishop, 1995). Как правило, лучше всего постараться сделать так, чтобы наблюдения различных типов были представлены равномерно, и соответственно этому интерпретировать результаты, которые выдает сеть.

Пропущенные значения Для алгоритмов, не содержащих встроенной обработки пропущенных значений отдельных признаков (таких как метод наивного Байеса или деревья решений), необходимо продумать, как заполнить пропуски в данных. Сделать это можно, заменив пропуски средними значениями соответствующих признаков (в случае дискретного признака его пропуск можно заменить чаще встречающимся значением — «модой»). Более полный вариант решения заключается в создании дополнительного признака, который является индикатором того, что значение первоначального признака изначально не было доступно, а было заполнено искусственно. Также заполнять пропущенные значения можно не безусловным средним (для дискретных — модой), а используя более сложную прогнозную модель, учитывающую контекст из других признаков, — например, используя условное среднее (соответственно, условную моду).

Дубликаты Dublicate

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

В большинстве случаев дубликаты рассматриваются как негативный фактор, и в процессе очистки данных от них стремятся избавиться. Это связано с тем, что дублирующие записи (кроме одной) не несут никакой полезной информации и бесполезны с точки зрения обучения моделей. Большое количество дубликатов обедняет обучающее множество в информационном плане: если из 1000 примеров обучающего множества 700 – дубликаты, то фактически для обучения используется всего 301 пример, хотя обрабатываются все примеры.

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

Source: https://basegroup.ru/community/glossary/dublicate

Фиктивное значение Dummy value

Значение, которое вводят операторы систем первичной регистрации данных и OLTP-систем, если исходное значение отсутствует, но соответствующее поле является обязательным для заполнения. Например, если клиент забыл занести в анкету номер карточки социального страхования, то оператор может ввести значение типа 999-999-999, если не указан возраст, то может быть введено значение 99 и т.д. Также фиктивное значение может быть указано, если запись неразборчивая. «Странное» значение должно предупредить пользователя о том, что оно никак не связано с реальным.

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

Source: https://basegroup.ru/community/glossary/dummy-value

Нормализации данных

Целью нормализации значений является преобразование данных к виду, который наиболее подходит для обработки, т.е. данные, поступающие на вход, должны иметь числовой тип, а их значения должны быть распределены в определенном диапазоне. Нормализатор может приводить дискретные данные к набору уникальных индексов либо преобразовывать значения, лежащие в произвольном диапазоне, в конкретный диапазон, например, [0..1]. Нормализация выполняется путем деления каждой компоненты входного вектора на длину вектора, что превращает входной вектор в единичный.


Ссылки и материалы