TLDR

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

Контур

  • Резюме
  • Прежде чем мы начнем
  • Числовые типы данных
  • Почему мы масштабируемся
  • Типы масштабирования
  • Масштабирование с пандами
  • Использование числовых данных

Резюме

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

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

Прежде чем мы начнем

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

Числовые типы данных

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

Дискретные данные

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

Непрерывные данные

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

Почему мы масштабируемся

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

Систематическая предвзятость

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

Диапазон данных

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

Типы масштабирования

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

Нормализация (мин.-макс.)

Первый тип масштабирования, который мы рассмотрим, — это нормализация, которая сравнивает текущее значение с самым высоким и самым низким значениями и находит среднее значение. Из-за необходимости максимального и минимального значения нормализация Min-Max используется для дискретных наборов данных, которые являются счетными и конечными. Плюсы использования Min-Max заключаются в том, что он быстрее вычисляется из-за использования простых математических операций и легко графически отображается, поскольку результат очень линейный. С другой стороны, у него есть много ограничений при выборе его использования. В случае непрерывных наборов данных вы не можете использовать нормализацию, так как значение разницы в значениях не является согласованным. Кроме того, при расчете нормализации используются минимум и максимум, поэтому любые выбросы или аномальные минимумы и максимумы могут сильно исказить выходные данные.

Стандартизация (Z-оценка)

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

Масштабирование с пандами

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

В соответствии с выводом df.info мы хотим сохранить любые соответствующие значения, которые имеют тип данных int или float. Он состоит из «Year_Birth, Income, Kidhome, Teenhome, Recency, MntWines, MntFruits, MntMeat, MntFish, MntSweet и NumPurchases». Здесь мы исключаем идентификатор, потому что, хотя это число, оно не имеет ничего общего с поведением клиента. Это приводит к нашим новым отфильтрованным данным, состоящим только из числовых данных, df_numerical.

Нормализация панд

Во-первых, мы обращаем внимание на столбцы, которые являются конечными и счетными. В наших данных это столбцы Kidhome, Teenhome, Income, Recency, MntWines, MntFruits, MntFish, MntSweets и NumPurchases.

Получив нужные данные, мы можем начать их нормализацию, следуя уравнению.

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

Стандартизация панд

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

Основываясь на результатах, для создания наилучшего масштабированного набора данных потребуется комбинация результатов нормализации и стандартизации. Мы начнем с объединения значений из df_norm с низкой дисперсией, а затем остальных числовых столбцов из df_standard. Поэтому мы берем столбцы Year_Birth, Kidhome и Teenhome из df_standard и объединяем их со столбцами Income, Recency, MntWines, MntFruits, MntFish, MntSweet и NumPurchases из df_norm.

Использование числовых данных

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