Fondamenti di classificazione e regressione degli alberi (CART)

PC: All-Time Journal

Potresti aver usato modelli ad albero per molto tempo o un principiante, ma ti sei mai chiesto come funziona e come è diverso da altri algoritmi? Qui, condivido una breve delle mie intese.

CART è anche un modello predittivo che aiuta a trovare una variabile basata su altre variabili etichettate. Per essere più chiari, i modelli ad albero prevedono il risultato ponendo una serie di domande if-else. Ci sono due vantaggi principali nell’utilizzo di modelli ad albero,

  1. Sono in grado di catturare la non linearità nel set di dati.
  2. Non è necessario standardizzare i dati quando si utilizzano modelli ad albero. Perché non calcolano alcuna distanza euclidea o altri fattori di misurazione tra i dati. Solo se-altro.

Dadi e bulloni di alberi

Schema ad albero decisionale (PC: DataCamp)

Sopra mostrato è un’immagine del classificatore dell’albero decisionale, ogni round è noto come Nodi. Ogni nodo avrà una clausola if-else basata su una variabile etichettata. Sulla base di questa domanda ogni istanza di input verrà diretta / instradata a uno specifico nodo foglia che dirà la previsione finale. Ci sono tre tipi di nodi,

  1. il Nodo Radice: non ha alcun nodo padre, e dà due nodi figli in base alla domanda
  2. Nodo Interno: avrà un nodo padre, e dà due nodi figli
  3. Nodo Foglia: sarà anche un nodo padre, ma non avere figli nodi

Il numero di livelli di noi è noto come il max_depth. Nel diagramma sopra max_depth = 3. All’aumentare di max_depth, aumenterà anche la complessità del modello. Mentre ci alleniamo se lo aumentiamo, l’errore di allenamento diminuirà sempre o rimarrà lo stesso. Ma a volte può aumentare l’errore di test. Quindi dobbiamo essere esigenti quando selezioniamo il max_depth per un modello.

Un altro fattore interessante sul Nodo è il guadagno di informazioni(IR). Questo è un criterio utilizzato per misurare la purezza di un Nodo. La purezza viene misurata in base a quanto intelligente un nodo può dividere gli elementi. Diciamo che sei in un Nodo e vuoi andare a sinistra oa destra. Ma hai elementi che appartengono a entrambe le classi alla stessa quantità (50-50) in ogni nodo. Quindi la purezza di entrambe le classi è bassa perché non sai quale direzione scegliere. Uno deve essere più alto dell’altro per prendere una decisione. questo è misurato utilizzando IR,

Equazione di IG per Albero di Classificazione(PC: DataCamp)

Equazione di IG per Albero di Regressione(PC: Campo dati)

Come dice il nome stesso, l’obiettivo di CART è prevedere a quale classe appartiene un’istanza di input in base ai suoi valori etichettati. Per fare questo farà Regioni decisionali utilizzando i confini decisionali. Immagina di avere un set di dati 2D,

PC: DataCamp

in questo modo, separerà il nostro set di dati multidimensionali in regioni decisionali basate sulle domande if-else su ciascun nodo. I modelli di carrello possono trovare regioni decisionali più accurate rispetto ai modelli lineari. E le regioni decisionali per CARRELLO sono in genere di forma rettangolare perché, solo una caratteristica coinvolta in ogni nodo nel processo decisionale. Si può visualizzare qui sotto,

PC: DataCamp

penso che sia abbastanza di introduzione, vediamo alcuni esempi su come costruire il CARRELLO modelli Scikit imparare.

Albero di classificazione

#use a seed value for reusability 
SEED = 1 # Import DecisionTreeClassifier from sklearn.tree
from sklearn.tree import DecisionTreeClassifier# Instantiate a DecisionTreeClassifier
# You can specify other parameters like criterion refer sklearn documentation for Decision tree. or try dt.get_params()dt = DecisionTreeClassifier(max_depth=6, random_state=SEED)# Fit dt to the training set
dt.fit(X_train, y_train)# Predict test set labels
y_pred = dt.predict(X_test)# Import accuracy_score
from sklearn.metrics import accuracy_score# Predict test set labels
y_pred = dt.predict(X_test)# Compute test set accuracy
acc = accuracy_score(y_pred, y_test)
print("Test set accuracy: {:.2f}".format(acc))

Albero di regressione

# Import DecisionTreeRegressor from sklearn.tree
from sklearn.tree import DecisionTreeRegressor# Instantiate dt
dt = DecisionTreeRegressor(max_depth=8,
min_samples_leaf=0.13,
random_state=3)# Fit dt to the training set
dt.fit(X_train, y_train)# Predict test set labels
y_pred = dt.predict(X_test)# Compute mse
mse = MSE(y_test, y_pred)# Compute rmse_lr
rmse = mse**(1/2)# Print rmse_dt
print('Regression Tree test set RMSE: {:.2f}'.format(rmse_dt))

Spero che questo articolo sia utile, se avete discussioni o suggerimenti si prega di lasciare una nota privata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Previous post Conservazione e decapaggio dell’aglio nell’aceto di sidro di mele
Next post Rifiuti biomedici