Предварительная обработка данных в 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 для определения метода таким образом, чтобы его можно было вызывать несколькими способами. В отличие от других языков программирования, этот уникален.