Что такое фактор в R?
Факторы — это переменные в R, которые принимают ограниченное количество различных значений; такие переменные часто называют категориальными переменными.
В наборе данных мы можем выделить два типа переменных: категориальные и непрерывные .
- В категориальной переменной значение ограничено и обычно основано на определенной конечной группе. Например, категориальной переменной могут быть страны, год, пол, род занятий.
- Однако непрерывная переменная может принимать любые значения, от целых до десятичных. Например, у нас может быть выручка, цена акции и т. Д.
Категориальные переменные
R сохраняет категориальные переменные в фактор. Давайте проверим код ниже, чтобы преобразовать символьную переменную в факторную переменную. Символы не поддерживаются в алгоритме машинного обучения, и единственный способ — преобразовать строку в целое число.
Синтаксис
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
Аргументы:
- х : вектор данных. Должен быть строкой или целым числом, а не десятичным.
- Уровни : вектор возможных значений, взятых х. Этот аргумент не является обязательным. Значением по умолчанию является уникальный список элементов вектора x.
- Метки : добавить метку к данным x. Например, 1 может принимать метку «мужской», а 0 — метку «женский».
- заказ : определить, следует ли упорядочить уровни.
Пример:
Давайте создадим фрейм факторных данных.
# Create gender vector gender_vector <- c("Male", "Female", "Female", "Male", "Male") class(gender_vector) # Convert gender_vector to a factor factor_gender_vector <-factor(gender_vector) class(factor_gender_vector)
Вывод:
## [1] "character" ## [1] "factor"
Важно преобразовать строку в фактор, когда мы выполняем задачу машинного обучения.
Категориальная переменная может быть разделена на номинальную категориальную переменную и порядковую категориальную переменную .
Номинальная категориальная переменная
Категориальная переменная имеет несколько значений, но порядок не имеет значения. Например, категориальная переменная мужского или женского пола не имеет порядка.
# Create a color vector color_vector <- c('blue', 'red', 'green', 'white', 'black', 'yellow') # Convert the vector to factor factor_color <- factor(color_vector) factor_color
Вывод:
## [1] blue red green white black yellow ## Levels: black blue green red white yellow
Из factor_color мы не можем определить порядок.
Порядковая категориальная переменная
Порядковые категориальные переменные имеют естественный порядок. Мы можем указать порядок от самого низкого до самого высокого с порядком = ИСТИНА и от самого высокого до самого низкого с порядком = ЛОЖЬ.
Пример:
Мы можем использовать сводку для подсчета значений для каждого фактора.
# Create Ordinal categorical vector day_vector <- c('evening', 'morning', 'afternoon', 'midday', 'midnight', 'evening') # Convert `day_vector` to a factor with ordered level factor_day <- factor(day_vector, order = TRUE, levels =c('morning', 'midday', 'afternoon', 'evening', 'midnight')) # Print the new variable factor_day
Вывод:
## [1] evening morning afternoon midday midnight evening
Пример:
## Levels: morning < midday < afternoon < evening < midnight # Append the line to above code # Count the number of occurence of each level summary(factor_day)
Вывод:
## morning midday afternoon evening midnight ## 1 1 1 2 1
R упорядочил уровень с «утра» до «полуночи», как указано в скобках уровней.
Непрерывные переменные
Непрерывные переменные класса являются значением по умолчанию в R. Они хранятся как числа или целые числа. Мы можем видеть это из набора данных ниже. mtcars — это встроенный набор данных. Он собирает информацию о разных типах автомобилей. Мы можем импортировать его с помощью mtcars и проверить класс переменной mpg, миля на галлон. Возвращает числовое значение, указывающее непрерывную переменную.
dataset <- mtcars class(dataset$mpg)
Вывод
## [1] "numeric"