Поиск по сайту:

Как нормализовать данные в R [3 простых метода]


Здравствуйте, читатели! В этой статье мы рассмотрим 3 простых способа нормализации данных в программировании на R.

Итак, начнем!! :)

Что такое нормализация?

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

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

В последующих разделах мы рассмотрим некоторые методы нормализации значений данных.

1. Нормализовать данные в R — Log Transformation

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

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

В приведенном ниже примере мы масштабировали огромные значения данных, представленные в функции log(), из документации R.

Пример:

rm(list = ls())

data = c(1200,34567,3456,12,3456,0985,1211)
summary(data)
log_scale = log(as.data.frame(data))

Выход:

         data
1	7.090077
2	10.450655
3	8.147867
4	2.484907
5	8.147867
6	6.892642
7	7.099202

2. Нормализация данных с масштабированием Min-Max в R

Еще один эффективный способ нормализации значений — метод масштабирования минимум-макс.

С помощью Min-Max Scaling мы масштабируем значения данных только в диапазоне от 0 до 1. Благодаря этому влияние выбросов на значения данных в определенной степени подавляется. Более того, это помогает нам иметь меньшее значение стандартного отклонения шкалы данных.

В приведенном ниже примере мы использовали библиотеку «caret» для предварительной обработки и масштабирования данных. Функция preProcess() позволяет масштабировать значение в диапазоне от 0 до 1, используя method=c(range) в качестве аргумента. Метод predict() применяет действия функции preProcess() ко всему фрейму данных, как показано ниже.

Пример:

rm(list = ls())

data = c(1200,34567,3456,12,3456,0985,1211)
summary(data)
library(caret)
process <- preProcess(as.data.frame(data), method=c("range"))

norm_scale <- predict(process, as.data.frame(data))

Выход:

           data
1	0.03437997
2	1.00000000
3	0.09966720
4	0.00000000
5	0.09966720
6	0.02815801
7	0.03469831

3. Нормализация данных с помощью стандартного масштабирования в R

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

Функция scale() позволяет нам применять стандартизацию к значениям данных, поскольку она центрирует и масштабирует

rm(list = ls())

data = c(1200,34567,3456,12,3456,0985,1211)
summary(data)
scale_data <- as.data.frame(scale(data))

Выход:

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

 Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
     12    1092    1211    6412    3456   34567	

            V1
1	-0.4175944
2	2.2556070
3	-0.2368546
4	-0.5127711
5	-0.2368546
6	-0.4348191
7	-0.4167131

           V1         
 Min.   :-0.5128  
 1st Qu.:-0.4262  
 Median :-0.4167  
 Mean   : 0.0000  
 3rd Qu.:-0.2369  
 Max.   : 2.2556  

Заключение

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

А пока удачного обучения!! :)

Рекомендации

  • scale() в R — Документация