Hoe R en RStudio te installeren?
En een "getting started" video:
Eerst lezen we de data in.
Het handigste is in de meeste gevallen om de data in te voeren in Excel.
In RStudio zie je rechtsboven, onder Import Dataset, de mogelijkheid om rechtstreeks de data uit Excel te importeren. In de History zie je dan de automatisch gegenereerde commando's. Je kunt die naar een script kopiëren.
Maar omdat het om een klein databestandje gaat, voeren we hier de data in via een R script.
We doen dat kolom voor kolom. Elke kolom bestaat uit 12 tekens.
De vier kolommen geven de informatie over de 12 poppetjes.
In elk van de 4 regels maken we een object aan. Aan het object decision, bijvoorbeeld, wordt met het "pijltje" (bestaande uit de twee karakters < en -) toegewezen wat aan de rechterkant van het pijltje staat.
Aan de rechterhand maken we een vector uit de combinatie van 12 yes en no beslissingen.
Combineren van elementen gaat met de c() functie.
# Ons eenvoudige voorbeeld ...
decision <- c("n","y","y","y","y","n","y","n","n","y","n","y") # "Vector"
head <- c("s","r","s","s","s","r","s","s","s","s","s","r")
body <- c("r","r","s","s","s","s","s","r","r","s","r","r")
color <- c("w","g","w","w","w","g","w","w","w","w","w","w")
Vervolgens willen we de vier vectoren (kolommen) aan elkaar plakken. Dat doen met de cbind() functie: bind columns.
Dat is nog niet genoeg. We willen er ook object van het type data frame van maken. Dat is verreweg het gemakkelijkste formaat, voor rechthoekige data sets.
Je ziet een hoop haakjes. Als we een object maken én tegelijk willen afdrukken in de console, kunnen we dat doen dooer er haakjes omheen te zetten.
We noemen ons data frame ourData. Je bent hier volledig vrij in.
(ourData <- as.data.frame(cbind(decision,head,body,color))) # Vectoren aan elkaar plakken
str(ourData)
## 'data.frame': 12 obs. of 4 variables:
## $ decision: chr "n" "y" "y" "y" ...
## $ head : chr "s" "r" "s" "s" ...
## $ body : chr "r" "r" "s" "s" ...
## $ color : chr "w" "g" "w" "w" ...
Uit de structuur, str(), zien we dat er nu een data frame is met 12 waarnemingen (rijen, of observaties) en 4 variabelen (kolommen). De variabelen zijn karakters (tekst). Om er analyses mee te doen, moeten we er factor variables van maken.
Een variabele in het data frame kun je benaderen als naam_dataframe$naam_variabele.
We overschrijven de variabele decision door er een factor van te maken, met as.factor().
ourData$decision <- as.factor(ourData$decision)
ourData$head <- as.factor(ourData$head)
ourData$body <- as.factor(ourData$body)
ourData$color <- as.factor(ourData$color)
str(ourData)
## 'data.frame': 12 obs. of 4 variables:
## $ decision: Factor w/ 2 levels "n","y": 1 2 2 2 2 1 2 1 1 2 ...
## $ head : Factor w/ 2 levels "r","s": 2 1 2 2 2 1 2 2 2 2 ...
## $ body : Factor w/ 2 levels "r","s": 1 1 2 2 2 2 2 1 1 2 ...
## $ color : Factor w/ 2 levels "g","w": 2 1 2 2 2 1 2 2 2 2 ...
# install.packages("C50") ## Hoeft maar een keer ...
library(C50)
## Warning: package 'C50' was built under R version 4.0.4
model <- C5.0(ourData[-1],ourData$decision)
# modela <- C5.0(ourData[2:4],ourData$decision) ## Alternative
summary(model)
##
## Call:
## C5.0.default(x = ourData[-1], y = ourData$decision)
##
##
## C5.0 [Release 2.07 GPL Edition] Tue Apr 06 13:56:53 2021
## -------------------------------
##
## Class specified by attribute `outcome'
##
## Read 12 cases (4 attributes) from undefined.data
##
## Decision tree:
##
## body = s: y (6/1)
## body = r:
## :...head = r: y (2)
## head = s: n (4)
##
##
## Evaluation on training data (12 cases):
##
## Decision Tree
## ----------------
## Size Errors
##
## 3 1( 8.3%) <<
##
##
## (a) (b) <-classified as
## ---- ----
## 4 1 (a): class n
## 7 (b): class y
##
##
## Attribute usage:
##
## 100.00% body
## 50.00% head
##
##
## Time: 0.0 secs
model
##
## Call:
## C5.0.default(x = ourData[-1], y = ourData$decision)
##
## Classification Tree
## Number of samples: 12
## Number of predictors: 3
##
## Tree size: 3
##
## Non-standard options: attempt to group attributes
plot(model)