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).
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
MedioCrea 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 arule2da questo"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ vai arule4da 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 quiTutte le lezioni di Introduzione all’apprendimento automatico
2Panoramica sull’apprendimento automatico
Apprendimento supervisionatoApprendimento non supervisionato6Altri modelli
Regressione logisticaRegressione lineareAlbero decisionaleMacchina a vettori di supporto (SVM)Quiz sui modelliEsercitati da solo: Compilatore Python online