Faktor v R: Kategorická proměnná a spojité proměnné

Co je faktor v R?

Faktor v R je proměnná používaná ke kategorizaci a ukládání dat s omezeným počtem různých hodnot. Ukládá data jako vektor celočíselných hodnot. Faktor v R je také známý jako kategorická proměnná, která ukládá jak řetězcové, tak celočíselné hodnoty dat jako úrovně. Faktor se většinou používá ve statistickém modelování a průzkumné analýze dat s R.

V datové sadě můžeme rozlišit dva typy proměnných: kategorický si nepřetržitý.

  • V popisné statistice pro kategorické proměnné v R je hodnota omezená a obvykle je založena na konkrétní konečné grupě. Například kategorickou proměnnou v R mohou být země, rok, pohlaví, povolání.
  • Spojitá proměnná však může nabývat libovolných hodnot, od celého čísla po desetinnou. Můžeme mít například výnos, cenu akcie atd..

Kategorické proměnné

Kategorické proměnné v R jsou uloženy do faktoru. Podívejme se níže na kód pro převod znakové proměnné na proměnnou faktoru v R. Znaky nejsou v algoritmu strojového učení podporovány a jediným způsobem je převést řetězec na celé číslo.

Syntax

factor(x = character(), levels, labels = levels, ordered = is.ordered(x))

argumenty:

  • x: Vektor kategorických dat v R. Musí to být řetězec nebo celé číslo, nikoli desítkové.
  • Úrovně: Vektor možných hodnot přijatých x. Tento argument je nepovinný. Výchozí hodnota je jedinečný seznam položek vektoru x.
  • Štítky: Přidejte štítek ke kategoriálním datům x v R. Například 1 může mít štítek „muž“, zatímco 0 může mít štítek „žena“.
  • objednané: Určete, zda mají být úrovně seřazeny v kategorických datech v R.

Příklad:

Vytvořme faktorový datový rámec.

# 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)

Výstup:

## [1] "character"
## [1] "factor"

Je důležité transformovat a šňůra do proměnné faktoru v R, když provádíme úlohu strojového učení.

Kategorickou proměnnou v R lze rozdělit na nominální kategoriální proměnná si ordinální kategoriální proměnná.

Nominální kategorická proměnná

Kategorická proměnná má několik hodnot, ale na pořadí nezáleží. Například muž nebo žena. Kategorické proměnné v R nemají řazení.

# 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

Výstup:

## [1] blue   red    green  white  black  yellow
## Levels: black blue green red white yellow

Z faktoru_barva nemůžeme určit pořadí.

Řadová kategorická proměnná

Ordinální kategoriální proměnné mají přirozené uspořádání. Můžeme určit pořadí, od nejnižšího po nejvyšší s pořadím = TRUE a od nejvyššího po nejnižší s pořadím = FALSE.

Příklad:

K počítání hodnot pro každou proměnnou faktoru v R můžeme použít souhrn.

# 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

Výstup:

## [1] evening   morning   afternoon midday    
midnight  evening

Příklad:

## Levels: morning < midday < afternoon < evening < midnight
# Append the line to above code
# Count the number of occurence of each level
summary(factor_day)

Výstup:

##   morning    midday afternoon   evening  midnight
##         1         1         1         2         1

R nařídil úroveň od „rána“ do „půlnoci“, jak je uvedeno v závorce úrovní.

Spojité proměnné

Proměnné spojité třídy jsou výchozí hodnotou v R. Jsou uloženy jako číselné nebo celé číslo. Můžeme to vidět z datasetu níže. mtcars je vestavěná datová sada. Shromažďuje informace o různých typech automobilů. Můžeme jej importovat pomocí mtcars a zkontrolovat třídu proměnné mpg, míle na galon. Vrací číselnou hodnotu označující spojitou proměnnou.

dataset <- mtcars
class(dataset$mpg)

Výstup

## [1] "numeric"

Shrňte tento příspěvek takto: