Menu
Coddy logo textTech

Albero decisionale

Lezione 17 di 19 del corso Introduzione all’apprendimento automatico di Coddy.

Un albero decisionale è un modello non lineare usato sia per attività di classificazione sia di regressione. Rispecchia il processo decisionale umano più da vicino rispetto ad altri algoritmi, risultando intuitivo e potente nella gestione di set di dati complessi. In sostanza, un albero decisionale suddivide i dati in sottoinsiemi usando una serie di semplici regole, un po’ come porre una serie di domande con risposta sì/no sulle caratteristiche dei punti dati.
 

Fonte: wikipedia

Immagina un albero decisionale come un grafo a forma di albero, in cui:

  • Ogni nodo interno rappresenta un «test» su un attributo (ad esempio, se il risultato del lancio di una moneta è testa o croce), 
  • Ogni ramo rappresenta l’esito del test e
  • Ogni nodo foglia rappresenta un’etichetta di classe (la decisione presa dopo aver calcolato tutti gli attributi).

Tipi di alberi decisionali:

  • Alberi di classificazione: usati quando l’esito previsto è la classe a cui appartengono i dati.
  • Alberi di regressione: usati quando l’esito previsto può essere considerato un numero reale (ad esempio, il prezzo di una casa).


 

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Medio

Crea una funzione chiamata decide_outcome che riceva un elenco di regole nel seguente formato:

rules = {
	rule1: {"type": "bigger", "value": 5},
	rule2: {"type": "smaller", "value": 7},

}

E riceva la regola a cui procedere se l'esito è soddisfatto oppure no:

outcome = {
	"rule1": {True: "rule2", False: "rule3"},
	"rule2": {True: "rule3", False: "rule4"},
	"rule3": {True: None, False: None}
	"rule4": {True: None, False: None}

}
data_point = {
	"rule1": 8,
	"rule2": 10,
}

L'output dovrebbe essere rule4

  • 8 is bigger than 5 (True) → vai a rule2 da questo "rule1": {True: "rule2", False: "rule3"},
  • 10 is smaller than 7 (False) → vai a rule4 da questo "rule2": {True: "rule3", False: "rule4"},
  • Non ci sono altri modi per continuare, quindi l'output è rule4

Inizia sempre da <strong>rule1</strong>

Provalo tu

def decide_outcome(rules, outcome, point):
    current_rule = "rule1"
    # Scrivi il tuo codice qui

Tutte le lezioni di Introduzione all’apprendimento automatico

Esercitati da solo: Compilatore Python online