Albero decisionale in sklearn

Albero decisionale in sklearn
Gli alberi decisionali sono modelli gerarchici nell'apprendimento automatico che possono essere applicati ai problemi di classificazione e regressione. Confrontano ricorsivamente le caratteristiche dei dati di input e infine prevedono l'output sul nodo foglia. Discuteremo degli alberi decisionali e della loro implementazione nella biblioteca di Sklearn.

Cos'è un algoritmo di albero decisionale?

I modelli di classificazione e regressione sono costruiti utilizzando una tecnica dell'albero decisionale. Mappa i vettori dei valori alle etichette e rappresenta il classificatore come albero decisionale. Tale albero può essere confrontato con le dichiarazioni se-then-else nidificate in cui la condizione è sempre un test semplice dei valori nel vettore. E i rami allora e altro sono ulteriori dichiarazioni If-then o altrimenti o forniscono un'etichetta di categorizzazione. Un albero decisionale apprende dai dati, trova le funzionalità più adatte per differenziare l'output e verificare ricorsivamente i dati di input forniti per prevedere l'etichetta. Un albero decisionale potrebbe apparire così, ad esempio, se il vettore di input è (a, b, c):

Se un> 10
Quindi se b < 20
Quindi restituire "1"
Altro se a < 15
Quindi restituire "0"
Altrimenti restituire "1"
Altro se C 5
Quindi restituire "1"
Altrimenti restituire "0"
Altrimenti restituire "1"

Si noti che gli altri alberi decisionali hanno quella caratteristica oltre a questo. Di conseguenza, il problema non è solo quello di individuare un tale albero decisionale, ma anche identificare quello più adatto. Il fatto che l'input sia un campione di una considerevole collezione del mondo reale e che l'albero decisionale sia costruito per identificare i vettori in questo set più ampio determina accuratamente cosa significa "adatto" in questo caso. Pertanto, la definizione di "adatto" dipende da (1) le proprietà di questo set più ampio (ad esempio, la probabilità per ciascun vettore) e (2) l'impatto finanziario della classificazione errata in ogni istanza specifica.

Terminologie relative all'albero decisionale

Nodo radice: Il nodo radice dell'albero decisionale è dove tutto inizia. L'intero set di dati è rappresentato, che viene quindi diviso in due o più set omogenei.

Nodo fogliare: I nodi foglia sono gli ultimi nodi di uscita dell'albero. Dopo di che, l'albero non può essere ulteriormente diviso.

Scissione: La divisione del nodo decisionale/nodo radice in sotto-nodi in conformità con le condizioni specificate è nota come scissione.

Ramo: Un ramo o una sottostruttura è un albero creato da un nodo di un albero genitore.

Potatura: Potatura è la procedura per rimuovere i rami indesiderabili dell'albero.

Nodi genitore e figlio: Il nodo radice dell'albero viene definito nodo genitore, mentre i nodi che ne provengono sono indicati come nodi figlio.

Implementazione di alberi decisionali a Sklearn

Importazione delle biblioteche:

da Sklearn.set di dati Importa make_classification
da Sklearn.DECISIONECLASSIFIRE DI IMPORTAZIONE DELL'ALE
da Sklearn.Model_Selection Import Cross_val_score

Creazione del set di dati:

X, y = make_classification (random_state = 42)
stampa ('Train Data is', x)
Print ('Test Data is', y)

Produzione:

I dati del treno sono [[-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[1.61371127 0.65992405 -0.15005559… 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425… 1.18901653 -0.55547712
-0.63738713]
..
[-0.03955515 -1.60499282 0.22213377… -0.30917212 -0.46227529
-0.43449623]
[1.08589557 1.2031659 -0.6095122… -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976… 0.99204235 0.32169781
-0.66809045]]
I dati di prova sono [0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0]

Creazione del modello:

Model = decisionTreEClassifier (random_state = 0)
Cross_val_score (modello, x, y, cv = 10)

Produzione:

array ([0.9, 1. , 0.8, 1. , 1. , 0.9, 0.9, 1. , 0.9, 1. ])

Conclusione

Abbiamo discusso dei modelli di alberi decisionali in Sklearn che creano una struttura simile a un albero per classificare o prevedere le etichette di output. Dividono i nodi per ridurre la profondità dell'albero. Abbiamo anche visto i vari termini relativi agli alberi decisionali come nodo fogliare, nodi genitori, potatura, ecc. Quindi, in seguito abbiamo discusso dell'implementazione di Sklearn.