Учебники

5) Что такое фактор в R?

Что такое фактор в 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"