Как сделать стандартизацию данных

Как нормализовать и стандартизировать данные временных рядов в Python

Дата публикации 2016-12-12

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

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

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

После завершения этого урока вы узнаете:

Как сделать стандартизацию данных

Набор данных минимальных суточных температур

Этот набор данных описывает минимальные дневные температуры за 10 лет (1981-1990) в городе Мельбурн, Австралия.

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

Ниже приведен график всего набора данных, взятого из Data Market.

Как сделать стандартизацию данных

Набор данных показывает сильную сезонную составляющую и имеет приятные мелкозернистые детали для работы.

В этом руководстве предполагается, что набор данных находится в вашем текущем рабочем каталоге с именем файла «ежедневно минимальная температура-в-me.csv«.

Заметка: Загруженный файл содержит несколько знаков вопроса («?»), Которые необходимо удалить, прежде чем вы сможете использовать набор данных. Откройте файл в текстовом редакторе и удалите символы «?». Также удалите любую информацию нижнего колонтитула в файле.

Нормализуйте данные временного ряда

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

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

Значение нормализуется следующим образом:

Где минимальные и максимальные значения относятся к значениюИкснормализуется.

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

Вы можете нормализовать свой набор данных, используя объект scikit-learn.MinMaxScaler,

Хорошая практика использования сMinMaxScalerи другие методы масштабирования следующие:

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

Ниже приведен пример нормализации набора данных «Минимальные суточные температуры».

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

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

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

Мы также видим, что минимальное и максимальное значения набора данных равны 0 и 26,3 соответственно.

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

Стандартизировать данные временных рядов

Это можно рассматривать как вычитание среднего значения или центрирование данных.

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

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

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

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

Значение стандартизировано следующим образом:

Гдеимею в видурассчитывается как:

Истандартное отклонениерассчитывается как:

Например, мы можем построить гистограмму набора данных «Минимальные суточные температуры» следующим образом:

Выполнение кода дает следующий график, который показывает гауссово распределение набора данных, как предполагается стандартизацией.

Как сделать стандартизацию данных

Мы можем угадать среднюю температуру 10 и стандартное отклонение около 5. Используя эти значения, мы можем стандартизировать первое значение в наборе данных 20,7 следующим образом:

Оценки среднего и стандартного отклонения набора данных могут быть более устойчивыми к новым данным, чем минимальное и максимальное.

Вы можете стандартизировать свой набор данных, используя объект scikit-learn.StandardScaler,

Ниже приведен пример стандартизации набора данных «Минимальные суточные температуры».

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

Мы можем видеть, что расчетное среднее значение и стандартное отклонение составляли 11,1 и 4,0 соответственно.

Резюме

В этом руководстве вы узнали, как нормализовать и стандартизировать данные временных рядов в Python.

В частности, вы узнали:

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

Источник

Как стандартизировать данные семантики с помощью логарифмов

Как сделать стандартизацию данных

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

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

Проблема

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

Как сделать стандартизацию данных

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

Если представить ситуацию, при которой мы работаем с готовой чистой информационной семантикой, то тогда мы можем отбирать

Как сделать стандартизацию данных

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

Стандартизация данных

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

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

Чтобы решить этот вопрос мы должны:

1. Стандартизировать данные, для чего мы вводим функцию натурального логарифмирования. Прежде, чем объединять данные, нам нужно их нормировать и сжать. Функция логарифма для Excel «=LN(в скобках указываем нужное число)».

Как сделать стандартизацию данных

На скриншоте показано, как выглядит формула

2. Прибавить условное число для каждого показателя частотности и коммерческости, чтобы избежать ошибок, если данные равны 0 или 1.

Как сделать стандартизацию данных

3. Логарифм обезличивает наши данные и дает возможность сопоставить их для сравнения.

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

Как сделать стандартизацию данных

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

Как сделать стандартизацию данных

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

Заключение

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

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

Представленный метод позволяет:

Источник

Стандартизация данных

Перед началом проведения кластерного анализа необходимо провести стандартизацию данных по формуле:

Как сделать стандартизацию данных(5.1)

где Как сделать стандартизацию данных– стандартизованное значение Как сделать стандартизацию данных-го фактора, Как сделать стандартизацию данных– фактическое значение Как сделать стандартизацию данных-го фактора, Как сделать стандартизацию данных– среднее значение Как сделать стандартизацию данных-го фактора, Как сделать стандартизацию данных– среднеквадратическое отклонение Как сделать стандартизацию данных-го фактора.

Расчеты можно провести в Microsoft Office Excel, используя встроенные статистические функции СРЗНАЧ () и СТАНДОТКЛОН (). Полученный результат представлен в таблице 5.2.

Таблица 5.2. Стандартизованные данные по уровню жизни населения

REGIONID BIRTH (S)ID EDUCATION (S)ID POVERTY (S)ID_UNEMP LAYMENT (S)ID_VVP (S)ID_DEVE LOPMENT (S)
Российская Федерация0,25270,20710,47530,20350,06770,4357
Тюменская область0,71591,56341,9933-0,14635,5494,9334
Самарская область0,71590,74961,48731,60260,72111,9077
Мурманская область1,64241,83461,4873-2,59470,92121,5397
Республика Татарстан1,6424-0,06411,150,90310,2411,1717
Республика Коми-0,21061,29210,9813-1,54541,02791,0899
Республика Якутия-1,13711,5634-0,874-0,14632,09481,0899
Магаданская область-0,21062,9196-1,2113-1,54541,41470,7628
Хабаровский край-1,60031,56340,30670,55330,44110,7219
Пермская область-0,2106-0,33540,98130,20350,33440,5992
Белгородская область2,1057-1,14911,150,9031-0,31910,5992
Липецкая область1,1792-1,14911,31870,9031-0,26580,5583
Московская область0,25270,7496-0,03071,2528-0,06570,5174
Камчатская область-1,60032,3771-1,0427-1,54541,48130,4765
Нижегородская область0,2527-0,87790,98131,6026-0,18570,5174
Ульяновская область1,1792-0,87791,31870,9031-0,55920,4357
Красноярский край-2,06350,20710,644-0,84580,88120,3539
Ярославская область0,2527-0,60660,47530,9031-0,02570,2721
Томская область-0,21060,2071-0,0307-0,4960,46780,1903
Иркутская область-2,06350,7496-0,0307-0,14630,37440,0268
Вологодская область-0,2106-0,87790,30670,20350,26770,0677
Кемеровская область-1,6003-0,33540,6440,5533-0,01240,0677
Ростовская область0,71590,20710,9813-0,8458-0,8126-0,0141
Тульская область-0,6738-0,60660,98130,5533-0,6125-0,055
Респ.Башкортостан0,7159-0,3354-0,19930,2035-0,0257-0,055
Воронежская область1,6424-1,14910,30671,6026-0,74590,0268
Челябинская область0,7159-0,0641-0,03070,5533-0,3591-0,0141
Свердловская область-0,21060,2071-1,04271,25280,1743-0,0959
Курская область0,2527-1,14910,1381,2528-0,3858-0,1777
Калужская область-0,2106-0,06410,1381,2528-0,6925-0,1368
Омская область1,1792-0,60660,3067-0,496-0,2791-0,0959
Республика Карелия-0,6738-0,06410,644-1,1956-0,1457-0,1777
Орловская область0,7159-0,60660,1380,2035-0,5458-0,2595
Оренбургская область0,2527-0,3354-0,03070,2035-0,3458-0,2186
Новгородская область-1,1371-1,42041,3187-0,496-0,3725-0,3412
Рязанская область0,2527-0,8779-0,53672,3022-0,5858-0,3003
Краснодарский край0,7159-0,33540,3067-0,8458-0,6259-0,423
Удмуртская Республика0,71590,2071-0,8740,2035-0,4258-0,4639
Владимирская область-0,2106-0,3354-0,19930,5533-0,7192-0,5457
Волгоградская область0,71590,2071-0,7053-0,496-0,5192-0,5866
Саратовская область0,71590,2071-0,5367-0,8458-0,6392-0,6683
Приморский край-0,67381,0209-1,2113-0,496-0,1857-0,6275
Сахалинская область-2,06351,5634-1,886-1,19560,6545-0,6683
Костромская область-0,6738-1,4204-0,03070,9031-0,5592-0,7092
Смоленская область-0,6738-0,87790,644-0,8458-0,6259-0,6683
Тамбовская область0,7159-1,69160,1380,2035-0,9193-0,8319
Тверская область-1,1371-0,6066-0,70530,9031-0,5858-0,8728
Калининградская область-0,67380,7496-0,5367-1,1956-0,7992-0,9137
Амурская область-1,13710,4784-1,0427-1,1956-0,1724-0,9546
Архангельская область-0,67380,4784-1,886-0,496-0,0657-1,0363
Ленинградская область-0,2106-0,3354-1,38-0,496-0,3858-1,159
Брянская область0,2527-1,4204-0,0307-0,8458-0,9193-1,159
Астраханская область-0,2106-0,0641-1,2113-0,8458-0,6392-1,2408
Новосибирская область0,7159-0,3354-2,5607-0,1463-0,3591-1,4861
Ставропольский край1,1792-0,3354-1,886-0,8458-0,6259-1,4044

Дата добавления: 2015-01-13 ; просмотров: 1171 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *