Предварительная обработка данных в R: Ultimate Tutorial [2022]

Опубликовано: 2021-03-01

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

Оглавление

1. Шаг: поиск и устранение проблем

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

В нашем случае данные хранятся в файле data.csv в рабочем каталоге. Вы можете использовать команду setwd («желаемое местоположение») и установить рабочий каталог.

Вот как вы начнете процесс:

набор данных <- read.csv("Data.csv")

Вот наш набор данных:

## Страна Возраст Зарплата Куплено
## 1 Франция 44 72000 Нет
## 2 Испания 27 48000 да
## 3 Германия 30 54000 Нет
## 4 Испания 38 61000 Нет
## 5 Германия 40 нет данных да
## 6 Франция 35 58000 да
## 7 Испания нет данных 52000 Нет
## 8 Франция 48 79000 да
## 9 Германия 50 83000 Нет
## 10 Франция 37 67000 да

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

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

набор данных $Age <- ifelse(is.na(dataset$Age),

ave (набор данных $ Age, FUN = функция (x)

среднее (x, na.rm = ИСТИНА)),

набор данных$Возраст)

набор данных $Salary <- ifelse(is.na(dataset$Salary),

ave (набор данных $ Зарплата, FUN = функция (x)

среднее (x, na.rm = ИСТИНА)),

набор данных$Зарплата)

Обратите внимание, как мы использовали здесь функцию ave(). Он берет среднее значение определенного столбца, который вы ввели, где FUN — это функция x, которая вычисляет среднее значение, исключая значения NA (na.rm = TRUE).

еще,

взять все, что есть в наборе данных $Age

Теперь мы будем использовать функцию mean():
# определение х = 1 2 3

х <- 1:3

#введение пропущенного значения

х[1] <- нет данных

# среднее значение = нет данных

среднее (х)

## [1] нет данных

# среднее = среднее, исключая значение NA

среднее (x, na.rm = T)

## [1] 2,5

После выявления и устранения проблемы наш набор данных выглядит так:

## Страна Возраст Зарплата Куплено
## 1 Франция 44 72000.00 Нет
## 2 Испания 27 48000,00 да
## 3 Германия 30 54000,00 Нет
## 4 Испания 38 61000,00 Нет
## 5 Германия 40 63777,78 да
## 6 Франция 35 58000,00 да
## 7 Испания 38 52000.00 Нет
## 8 Франция 48 79000,00 да
## 9 Германия 50 83000,00 Нет
## 10 Франция 37 67000,00 да

Читайте также: Карьерные возможности в языке программирования R

2. Шаг: Категориальные данные

Категориальные данные — это нечисловые данные, принадлежащие к определенным категориям. Столбец «Страна» в нашем наборе данных — это категориальные данные. Функция read.csv() в R сделает все строковые переменные категориальными переменными. Однако мы не можем использовать его во всех случаях.

Вот как вы можете создавать определенные переменные в качестве факторных переменных:
набор данных $ Country = фактор (набор данных $ Country,

level = c('Франция', 'Испания', 'Германия'),

метки = с (1, 2, 3))

набор данных $ Приобретено = фактор (набор данных $ Приобретено,

уровни = c('Нет', 'Да'),

метки = с (0, 1))

3. Шаг: разделение данных

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

Для этого мы сначала установим пакет caTools (если он недоступен) и добавим его в нашу библиотеку. После этого мы воспользуемся функцией set.seed(), чтобы обеспечить случайное разделение. Используйте следующий код:
библиотека (caTools)

сет.сид(123)

split = sample.split (набор данных $ Приобретено, SplitRatio = 0,8)

training_set = подмножество (набор данных, разделение == ИСТИНА)

test_set = подмножество (набор данных, разделение == ЛОЖЬ)

Вы, должно быть, заметили, что мы сохранили соотношение сторон 80:20. Это потому, что это наиболее распространенный коэффициент разделения для обучающих наборов и тестовых наборов. Наш метод sample.split() взял столбец и создал числовой массив со случайными значениями true и false в соответствии с коэффициентом разделения.

4. Шаг: Масштабирование или переоснащение признаков

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

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

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

training_set[,2:3] = масштаб(training_set[,2:3])

test_set[,2:3] = масштаб(test_set[,2:3])

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

Получите сертификат по науке о данных от лучших университетов мира. Изучите программы Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

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

Что вы думаете о нашем учебнике по предварительной обработке данных в R? Поделитесь ими в комментариях ниже.

Если вам интересно узнать о R, науке о данных, ознакомьтесь с нашей программой Executive PG по науке о данных, которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические практические семинары, наставничество с отраслевыми экспертами, 1-на- 1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Сколько типов полиморфизма существует в питоне?

В Python полиморфизм относится к универсальному имени функции, которое можно использовать для различных целей. Эта идея обычно используется в концепции объектно-ориентированного программирования Python.
Полиморфизм реализован в Python для нескольких целей, таких как утиная типизация, перегрузка операторов, перегрузка методов и переопределение методов, как и в других языках программирования, таких как Java и C++. Перегрузка и переопределение — два основных метода достижения полиморфизма.
Класс с множеством методов с одинаковыми именами, но разными аргументами называется перегрузкой методов. Хотя перегрузка методов по умолчанию не поддерживается в Python, для этого существует множество способов.

Что печатает Дак?

Утиная типизация — это понятие полиморфизма. Фраза «утиный тип» происходит от пословицы, в которой говорится, что все, что ходит, крякает и плавает, как утка, называется уткой, независимо от того, что это такое. Проще говоря, это означает, что если что-то соответствует своему поведению чему-то другому, оно будет считаться членом этой категории.

Что такое перегрузка и переопределение?

Когда метод с тем же именем и аргументами используется как в производном классе, так и в базовом или суперклассе, считается, что метод производного класса переопределяет метод, предоставленный в базовом классе. При вызове переопределенного метода всегда вызывается метод производного класса. Метод, который использовался в базовом классе, теперь скрыт.
Python, с другой стороны, не обеспечивает перегрузку методов на основе типа, количества или порядка параметров метода. Перегрузка метода — это подход Python для определения метода таким образом, чтобы его можно было вызывать несколькими способами. В отличие от других языков программирования, этот уникален.