aggiornamento: Abbiamo introdotto un’applicazione interattiva di apprendimento per l’apprendimento automatico / AI, >> Controlla gratuitamente ora <<
Importa le librerie richieste
import numpy as np
import pandas as pd
eps = np.finfo(float).eps
from numpy import log2 as log
‘eps’ qui è il più piccolo numero rappresentabile. A volte otteniamo log(0) o 0 nel denominatore, per evitare ciò useremo questo.
Definire il dataset:
Creare pandas dataframe :
Ora proviamo a ricordare i passi per creare un albero decisionale….
1.compute the entropy for data-set2.for every attribute/feature:
1.calculate entropy for all categorical values
2.take average information entropy for the current attribute
3.calculate gain for the current attribute3. pick the highest gain attribute.
4. Repeat until we get the tree we desired
- trovare l’Entropia e poi il Guadagno di Informazione per dividere l’insieme dei dati.
Definiremo una funzione che prende in classe (vettore variabile target) e trova l’entropia di quella classe.
Qui la frazione è ‘pi’, è la proporzione di un numero di elementi in quel gruppo scisso rispetto al numero di elementi nel gruppo prima della scissione (gruppo padre).
2 .Ora definiamo una funzione {ent} per calcolare l’entropia di ogni attributo :
conserviamo l’entropia di ogni attributo con il suo nome :
a_entropy = {k:ent(df,k) for k in df.keys()}
a_entropy
3. calcolare il guadagno informativo di ogni attributo :
definire una funzione per calcolare IG (infogain) :
IG(attr) = entropia del dataset – entropia dell’attributo
def ig(e_dataset,e_attr):
return(e_dataset-e_attr)
salvare IG di ogni attr in un dict :
#entropy_node = entropy of dataset
#a_entropy = entropy of k(th) attrIG = {k:ig(entropy_node,a_entropy) for k in a_entropy}
come possiamo vedere outlook ha il più alto info gain di 0.24 , quindi selezioneremo outook come nodo a questo livello per la divisione.
Ora per procedere il nostro albero useremo la ricorsione
Ripetiamo la stessa cosa per i sottoalberi fino ad ottenere l’albero.
Costruiamo un albero di decisione basato su questo. Di seguito il codice completo.
visita pytholabs.com per corsi incredibili
.