Эта статья внеплановая.
В последний раз Я рассмотрел нюансы и проблемы различных методов нормализации данных.
И только после публикации я понял, что не упомянул некоторые важные детали.
Кому-то они могут показаться очевидными, но, на мой взгляд, лучше сказать об этом прямо.
Нормализация категориальных данных
Чтобы не загромождать текст элементарными вещами, предполагаю, что вы знаете, что такое категориальные и порядковые данные, и чем они отличаются от остальных.Очевидно, что любая нормализация может быть выполнена только для числовых данных.
Соответственно, если для дальнейшей работы вашего алгоритма/программы подходят только числа, то к ним необходимо преобразовать все остальные типы.
С категориальными данными все просто.
Если цель состоит не в том, чтобы просто закодировать значения какими-то числами, то единственный доступный вариант — представить их в виде значений «1» — «0» (ДА — НЕТ) для каждой возможной категории.
Это так называемый горячее кодирование .
Когда вместо одного категориального признака появляется столько новых «логических» признаков, сколько существует возможных категорий.
Вот и все.
Никаких вычислений медиан или средних арифметических, никаких смещений.
Если вы готовите данные для ввода нейросети — это именно то, что вам нужно.
Важный понимать, что применение таких преобразований, как стандартизация, к категориальным/булевым характеристикам как минимум бесполезно и как максимум вредно.
Потому что это может необоснованно увеличить или уменьшить диапазон их значений.
Подробнее о важности равенства этих интервалов я писал в прошлый раз.
Кроме того, если вы хотите получить результат на основе данных, а не внутренних особенностей алгоритмов, то даже после преобразования в числовую форму категориальные признаки запрещено использовать как обычные числа для расчета «расстояний» между объектами или их «подобия».
Если два объекта отличаются только «наличием черного цвета», это не означает, что «расстояние» между ними равно некоторому безразмерному единичному интервалу.
Это означает именно то, что у одного цвет черный, а у другого нет – и не более того.
Конечно, какой-то результат вы всегда получите, даже при подходе «не хочу мудрить, пусть будут только цифры 0 и 1».
Сомнительно, но поймите.
Как правильно Подробно о работе с такими данными я напишу в следующей статье.
Нормализация порядковых данных
Порядковые данные немного сложнее.Они занимают «промежуточное» положение между категориальными и относительными (обычные числа) типами данных.
И при работе с ними необходимо сделать выбор, в какой из соседних типов их преобразовать.
Без твоего сознательный Здесь нет решений.
Опция 1. От порядкового к категориальному.
При этом информация о порядке значений (в зависимости от того, какое больше) теряется.
Но если это не является (на ваш взгляд) важным фактором, и особенно когда возможных значений мало, то это вполне приемлемо.
В результате мы получаем набор категорий, с которыми дальше работаем, как описано выше.
Вариант 2. Преобразование в тип интервала (обычные числа) .
При этом порядок значений сохраняется, но «добавляется необоснованная информация о величине разницы между двумя значениями».
До преобразования вы знали, какие значения больше других, но не могли сказать, насколько больше.
После этого это станет возможным, хотя, повторяю, без всякого обоснования.
Дальше работаем как с обычными значениями — нормализуем и т.д.
«Парные» знаки
Формально такого понятия, конечно, не существует. Вот как я описываю редкую, но примечательную ситуацию.Начнем с определения.
Я имею в виду «парные» характеристики, которые измеряются в одних и тех же единицах и вместе описывают одну объединенную характеристику.
При этом изменения для любого из этих «партнеров» равнозначны.
Легче объяснить на примере.
Представьте, что у вас есть набор данных о зданиях, расположенных на одной городской улице, проходящей строго с юга на север.
Данные самые разные — тип, размер, количество жителей, цвет и координаты (широта и долгота).
И ваша задача — провести кластерный анализ для выявления групп схожих зданий.
«Парными» объектами здесь являются широта и долгота, которые вместе составляют единый «координатный» объект. Давайте на время забудем про остальные знаки и внимательно посмотрим на координаты.
Для кластеризации важно определить расстояние между двумя объектами.
В нашем случае расстояние рассчитывается по их координатам.
И абсолютно одинаково, например, находится ли детский сад в 100 метрах от стадиона по улице, или в тех же 100 метрах через дорогу.
Это те же 100 м.
Если не обратить внимание на этот нюанс, то после нормализации ситуация станет такой
Исходный смысл полностью искажен.
«Расстояние» между зданиями, расположенными через дорогу, стало почти таким же большим, как между домами в начале и конце улицы.
Это произошло потому, что значения широты и долготы нормировались независимо друг от друга.
Решение этой проблемы заключается в определении параметров масштабирования самого «протяженного» объекта (в нашем случае долготы) и применения его к каждый «парные» характеристики.
Да, формально мы уменьшили влияние атрибута «широта».
Но это было связано с его реальным физическим смыслом.
Правила техники безопасности
«Отнесение» признаков к «парам» необходимо производить очень внимательно и с четким пониманием изучаемой области.Давайте возьмем другой пример.
Вы анализируете вибрации определенного узла/датчика, установленного на вертикальном элементе большого механизма.
У вас есть значения качания «вправо-влево» (синие стрелки) и «вперед-назад» (оранжевые стрелки).
Также из-за конструктивных особенностей механизма вибрации «вправо-влево» могут быть в несколько раз больше, чем «вперед-назад».
Похоже, ситуация аналогична предыдущей.
Обе характеристики измеряются в миллиметрах.
И вместе они составляют условные «координаты» узла при его колебаниях.
Но, скажем, оказывается (в силу тех же конструктивных особенностей), что сильные вибрации «туда-сюда», даже если они по величине в несколько раз меньшие, чем «право-лево», могут привести к поломке агрегата.
Те.
Величина изменения этого признака не эквивалентна его «партнеру».
В данном случае уменьшить влияние этого признака невозможно, как мы это сделали выше с «шириной», наоборот. В общем, напоследок тривиальный совет — прежде чем приступить к любому преобразованию своих данных, не забудьте внимательно их просмотреть.
Вдруг среди них есть что-то, что требует несколько более индивидуального подхода.
P.S. — для тех, кому интересно попробовать класс-демонстратор AdaptedScaler из библиотеки AdjDataTools , я сделал необходимые дополнения для случая «парных» функций.
Теги: #Машинное обучение #python #Алгоритмы #искусственный интеллект #наука о данных #Инженерия данных #масштабирование #нормализация #категорические функции #Парные функции #AdjustedScaler
-
Особенности Установки И Обновления 3Cx V15
19 Oct, 24 -
Я Хочу Поделиться. Это Часть Нашей Истории.
19 Oct, 24 -
Microsoft Считает Gmail Вирусом
19 Oct, 24