Продолжение моей предыдущей статьи: Часть 1: Подготовка данных с помощью python стала проще !! Давайте углубимся в EDA и посмотрим, как мы можем обрабатывать числовые и резко отклоняющиеся значения в наборе данных. Итак, чего мы ждем, приступим.

Шаг 5: Обработка числовых данных

  1. Масштабирование

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

С теорией, давайте также попрактикуемся нижеприведенную технику масштабирования по данным. Эти данные относятся к 50 самым популярным песням и имеют такие функции, как Beats.Per.Minute, и находятся в диапазоне от 85 до 190, в то время как функция, такая как Acousticness, колеблется от 1 до 75, и если они собираясь изучить эти две функции вместе, лучшее сравнение будет в одном масштабе.

# Метод 1. Стандартизация

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

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

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

# Метод 2: нормализация

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

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

Вы также можете использовать средний способ нормализации, просто заменив X-минимум в числителе на X-среднее.

Давайте нормализуем данные с помощью Python, используя библиотеку normalize и MinMaxScaler из sklearn.preprocessing.

# Метод 3: надежное масштабирование

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

Реализация Python для robust-Scaler.

Шаг 6. Удаление выбросов

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

Выброс

Согласно статистике Wikipedia In, выброс - это точка данных, которая значительно отличается от других наблюдений.

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

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

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

Типы выбросов

  1. Глобальный выброс: данные можно считать аномальными по отношению ко всем данным, если их значение выходит за пределы всего набора данных. Например, обнаружение вторжений в компьютерные сети.

2. Контекстный выброс: когда отдельный экземпляр данных является аномальным в определенном контексте или условии (но не иначе). например, время и место, температура.

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

Методы обнаружения выбросов

  1. Статистические методы
  • Метод распределения Гаусса

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

Краткий обзор охвата данных нормального распределения:

  • 1 стандартное отклонение (1 стандартное отклонение) от среднего: 68%
  • 2 стандартных отклонения (2 SD) от среднего: 95%
  • 3 стандартных отклонения (3 СО) от среднего: 99,7%

Большинство значений выборки охватываются 3 SD, если значение выходит за его пределы, это может рассматриваться как выброс, что является маловероятным или редким событием примерно для 1 из 400 выборок. 3 SD - это общее правило, его можно увеличивать и уменьшать в зависимости от типа решаемой проблемы. Предположим, что если требуется охват данных на уровне 99,9%, рассмотрите вместо этого 4 SD. Давайте также посмотрим, как мы можем это закодировать

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

  • Метод прямоугольной диаграммы или интерквартильного размаха (IQR)

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

2. Алгоритм машинного обучения

  • DBSCAN

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

  • Алгоритм имеет два параметра (epsilon: масштаб длины и min_samples: минимальное количество выборок, необходимых для того, чтобы точка была базовой точкой). Очень важно найти хороший эпсилон.

Скоро следующая финальная часть-3

  • Обработка категориальных данных с помощью 8 различных методов кодирования, таких как label, one-hot, target и многие другие.

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