Guida per Principianti sugli Alberi di Decisione in R
Ciao a tutti, futuri data scientist! Oggi ci immergeremo in un viaggio emozionante nel mondo degli alberi di decisione utilizzando R. Non preoccupatevi se non avete mai programmato prima - sarò il vostro guida amichevole in ogni passo. Alla fine di questo tutorial, sarete in grado di creare i vostri alberi di decisione e vi sentirete come veri maghi dei dati!
Cos'è un Albero di Decisione?
Prima di immergerci nel codice, cerchiamo di capire cos'è un albero di decisione. Immagina di voler decidere se andare a correre o no. Potresti chiederti:
- Sta piovendo?
- Ho abbastanza tempo?
- Mi sento energico?
Basandoti sulle tue risposte, prendi una decisione. Ecco esattamente ciò che fa un albero di decisione - prende decisioni basate su una serie di domande!
Installazione dei Pacchetti Necessari in R
Prima di tutto, dobbiamo equipaggiarci con gli strumenti giusti. In R, questi strumenti si chiamano pacchetti. Per la nostra avventura con gli alberi di decisione, avremo bisogno di due principali: rpart
e rpart.plot
.
Installiamoli:
install.packages("rpart")
install.packages("rpart.plot")
Ora, carichiamo questi pacchetti:
library(rpart)
library(rpart.plot)
Bene! Avete appena fatto i vostri primi passi nella programmazione in R. Datevi una carezza sulla spalla!
Creazione di un Semplice Set di Dati
Ora che abbiamo i nostri strumenti pronti, creiamo un semplice set di dati con cui lavorare. Immagina che stiamo cercando di prevedere se qualcuno comprerà gelato in base alla temperatura e se è weekend.
# Creiamo un data frame
ice_cream_data <- data.frame(
temperature = c(68, 85, 72, 90, 60, 78, 82, 75, 68, 71),
is_weekend = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0),
buy_icecream = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0)
)
# Visualizziamo i dati
print(ice_cream_data)
In questo set di dati:
-
temperature
è in Fahrenheit -
is_weekend
è 1 per weekend, 0 per giorno feriale -
buy_icecream
è 1 se hanno comprato il gelato, 0 se non lo hanno fatto
Costruzione del Nostro Primo Albero di Decisione
Ora arrivesi alla parte entusiasmante - costruiamo il nostro albero di decisione!
# Creiamo il modello di albero di decisione
ice_cream_tree <- rpart(buy_icecream ~ temperature + is_weekend,
data = ice_cream_data,
method = "class")
# Visualizziamo l'albero
rpart.plot(ice_cream_tree, extra = 106)
Ecco cosa sta succedendo qui:
-
rpart()
è la funzione che utilizziamo per creare l'albero di decisione. -
buy_icecream ~ temperature + is_weekend
dice a R che vogliamo prevederebuy_icecream
basandoci sutemperature
eis_weekend
. -
data = ice_cream_data
specifica il nostro set di dati. -
method = "class"
dice a R che stiamo facendo un compito di classificazione (prevedendo una categoria). -
rpart.plot()
crea una rappresentazione visiva del nostro albero.
Quando eseguite questo codice, vedrete un bellissimo diagramma di albero. Ogni nodo mostra una regola di decisione, e le foglie mostrano le previsioni. È come un flusso di decisioni sul gelato!
Comprensione dell'Albero
Interprettiamo il nostro albero di decisione del gelato:
- Il nodo superiore (radice) mostra la prima suddivisione. Potrebbe essere qualcosa come "temperature < 76".
- Se vero (sì), va al ramo sinistro; se falso (no), va al ramo destro.
- Questo processo continua fino a raggiungere un nodo foglia, che fornisce la previsione finale.
I numeri nei nodi rappresentano:
- La classe prevista (0 o 1)
- La probabilità di quella classe
- La percentuale di osservazioni in quel nodo
Effettuazione delle Previsioni
Ora che abbiamo il nostro albero, utilizziamolo per fare alcune previsioni!
# Creiamo nuovi dati
new_data <- data.frame(
temperature = c(70, 95),
is_weekend = c(1, 0)
)
# Effettuiamo le previsioni
predictions <- predict(ice_cream_tree, new_data, type = "class")
# Visualizziamo le previsioni
print(predictions)
Questo codice prevede se qualcuno comprerà gelato in un weekend a 70°F e un giorno feriale a 95°F.
Valutazione del Modello
Per vedere quanto bene funziona il nostro modello, possiamo utilizzare una matrice di confusione:
# Effettuiamo le previsioni sul nostro set di dati originale
predictions <- predict(ice_cream_tree, ice_cream_data, type = "class")
# Creiamo la matrice di confusione
confusion_matrix <- table(Actual = ice_cream_data$buy_icecream, Predicted = predictions)
# Visualizziamo la matrice di confusione
print(confusion_matrix)
# Calcoliamo la precisione
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Precisione:", accuracy))
Questo ci dà una rapida vista di quante previsioni sono state corrette e quante errate.
Conclusione
Complimenti! Avete appena costruito il vostro primo albero di decisione in R. Dalla installazione dei pacchetti alla effettuazione delle previsioni, avete coperto molto terreno. Ricordate, la pratica fa la perfezione, quindi non abbiate paura di sperimentare con diversi set di dati e parametri.
Ecco un rapido riassunto dei metodi che abbiamo utilizzato:
Metodo | Descrizione |
---|---|
install.packages() | Installa pacchetti R |
library() | Carica pacchetti installati |
data.frame() | Crea un data frame |
rpart() | Costruisce un albero di decisione |
rpart.plot() | Visualizza l'albero di decisione |
predict() | Effettua previsioni utilizzando l'albero |
table() | Crea una matrice di confusione |
Continuate a esplorare, a imparare e, soprattutto, divertitevi con la scienza dei dati!
Credits: Image by storyset