Faktor i R: Kategoriske variable og kontinuerte variable
Hvad er faktor i R?
Faktor i R er en variabel, der bruges til at kategorisere og gemme dataene, med et begrænset antal forskellige værdier. Den gemmer dataene som en vektor af heltalsværdier. Faktor i R er også kendt som en kategorisk variabel, der gemmer både streng- og heltalsdataværdier som niveauer. Faktor bruges mest i statistisk modellering og eksplorativ dataanalyse med R.
I et datasæt kan vi skelne mellem to typer variabler: kategorisk og kontinuerlig.
- I beskrivende statistik for kategoriske variable i R er værdien begrænset og normalt baseret på en bestemt endelig gruppe. For eksempel kan en kategorisk variabel i R være lande, år, køn, erhverv.
- En kontinuert variabel kan dog tage alle værdier, fra heltal til decimal. For eksempel kan vi have omsætningen, prisen på en aktie osv.
Kategoriske variabler
Kategoriske variabler i R er lagret i en faktor. Lad os tjekke koden nedenfor for at konvertere en tegnvariabel til en faktorvariabel i R. Tegn understøttes ikke i maskinlæringsalgoritmen, og den eneste måde er at konvertere en streng til et heltal.
Syntaks
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
argumenter:
- x: En vektor af kategoriske data i R. Skal være en streng eller heltal, ikke decimal.
- Niveauer: En vektor af mulige værdier taget af x. Dette argument er valgfrit. Standardværdien er den unikke liste over elementer i vektoren x.
- Etiketter: Tilføj en etiket til de x kategoriske data i R. For eksempel kan 1 tage etiketten "mand", mens 0 er etiketten "kvinde".
- bestilt: Bestem, om niveauerne skal sorteres i kategoriske data i R.
Eksempel:
Lad os skabe en faktordataramme.
# 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)
Output:
## [1] "character" ## [1] "factor"
Det er vigtigt at transformere en streng til faktorvariabel i R, når vi udfører Machine Learning-opgave.
En kategorisk variabel i R kan opdeles i nominel kategorisk variabel og ordinal kategorisk variabel.
Nominel Kategorisk Variabel
En kategorisk variabel har flere værdier, men rækkefølgen er ligegyldig. For eksempel mand eller kvinde. Kategoriske variable i R har ikke rækkefølge.
# 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
Output:
## [1] blue red green white black yellow ## Levels: black blue green red white yellow
Fra factor_color kan vi ikke se nogen rækkefølge.
Ordinal Kategorisk Variabel
Ordinale kategoriske variabler har en naturlig rækkefølge. Vi kan angive rækkefølgen, fra den laveste til den højeste med rækkefølge = TRUE og højest til lavest med rækkefølge = FALSK.
Eksempel:
Vi kan bruge opsummering til at tælle værdierne for hver faktorvariabel i R.
# 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
Output:
## [1] evening morning afternoon midday midnight evening
Eksempel:
## Levels: morning < midday < afternoon < evening < midnight # Append the line to above code # Count the number of occurence of each level summary(factor_day)
Output:
## morning midday afternoon evening midnight ## 1 1 1 2 1
R bestilte niveauet fra 'morgen' til 'midnat' som angivet i niveauparentesen.
Kontinuerlige variabler
Kontinuerlige klassevariabler er standardværdien i R. De gemmes som numeriske eller heltal. Vi kan se det fra datasættet nedenfor. mtcars er et indbygget datasæt. Den samler information om forskellige biltyper. Vi kan importere det ved at bruge mtcars og kontrollere klassen for variablen mpg, mile per gallon. Det returnerer en numerisk værdi, der angiver en kontinuerlig variabel.
dataset <- mtcars class(dataset$mpg)
Produktion
## [1] "numeric"