English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
This article shares the specific code for implementing the decision tree classification algorithm in Python for everyone's reference, the specific content is as follows
1. Overview
Decision Tree (decision tree) - is a widely used classification algorithm.
Compared to the Bayesian algorithm, the advantage of decision trees is that the construction process does not require any domain knowledge or parameter setting.
In practical applications, decision trees are more suitable for exploratory knowledge discovery.
2. Algorithm idea
In通俗 terms, the idea of decision tree classification is similar to finding a partner. Imagine that a girl's mother wants to introduce a boyfriend to her daughter, and then the following conversation arises:
Daughter: How old is he?
Mother: 26.
Daughter: Is he handsome?
Mother: He's quite handsome.
Daughter: Is his income high?
Mother: Not very high, a medium situation.
Daughter: Is he a civil servant?
Mother: Yes, she works in the tax bureau.
Daughter: That's good, I'll go and see.
This girl's decision-making process is a typical classification tree decision.
Essence:Through age, appearance, income, and whether civil servant, the man is divided into two categories: see and not see.
Assuming that this girl's requirements for men are: under 30 years old, with a medium or above appearance, and high-income or above-medium-income civil servants, then this can be represented by the following diagram to show the girl's decision logic.
The diagram above fully expresses the strategy of this girl deciding whether to meet a date object, among which:
The green node indicates the judgment condition.
The orange node indicates the decision result.
The arrow indicates the decision path under different conditions of a judgment condition.
The red arrow in the diagram indicates the decision-making process of the girl in the above example.
This diagram can be considered as a decision tree, but it is said to be 'basically can be considered' because the decision conditions in the diagram are not quantified, such as high, medium, and low income, etc., and it cannot be considered a strict decision tree. If all conditions are quantified, it will become a real decision tree.
The key to the decision tree classification algorithm is to construct the best decision tree according to the 'prior data' to predict the category of unknown data.
Decision Tree: is a tree structure (it can be a binary tree or a non-binary tree). Each non-leaf node represents a test on a feature attribute, each branch represents the output of this feature attribute in a certain value range, and each leaf node stores a category. The process of making decisions using a decision tree is to start from the root node, test the corresponding feature attribute of the item to be classified, and select the output branch according to its value, until reaching the leaf node, and taking the category stored in the leaf node as the decision result.
3, costruzione dell'albero decisionale
Se ci sono i seguenti dati di campione per giudicare se la mela è buona o cattiva:
Campione Rosso Grande Buona mela
0 1 1 1
1 1 0 1
2 0 1 0
3 0 0 0
I campioni hanno 2 attributi, A0 rappresenta se è una mela rossa. A1 rappresenta se è una mela grande. Se si desidera costruire un albero decisionale automatico per giudicare se la mela è buona o cattiva.
Poiché i dati di questo esempio hanno solo 2 attributi, possiamo enumerare tutti gli alberi decisionali possibili costruiti, ovvero 2, come illustrato di seguito:
Chiaramente, l'albero decisionale che utilizza A0 (rosso) come base di divisione è migliore dell'albero decisionale che utilizza A1 (dimensione) come base di divisione.
Certo, questo è un riconoscimento intuitivo. Ma l'intuizione显然 non è adatto per la realizzazione del programma, quindi è necessario avere un esame quantitativo per valutare le prestazioni di questi due alberi.
Il metodo di esame quantitativo utilizzato per l'evaluazione dell'albero decisionale èCalcolare il guadagno di entropia dell'informazione per ogni situazione di divisione:
Se dopo la divisione dei dati con una proprietà selezionata l'entropia decresce di più, allora questa proprietà di divisione è la scelta ottimale
La base per la scelta della divisione delle proprietà (cioè la costruzione dell'albero decisionale):
In parole semplici, l'entropia è la misura di 'disordine' e 'confusione'.
Per comprendere attraverso il calcolo:
1, entropia dei dati di campione originale:
Numero totale di campioni: 4
Mela buona: 2
Mela cattiva: 2
Entropia: -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1
L'entropia è 1 rappresenta lo stato più confuso e disordinato.
2, calcolo del guadagno di entropia della divisione dei due alberi decisionali
L'albero 1 sceglie A0 come divisione iniziale, il calcolo dell'entropia dei sottostati dei vari nodi è il seguente:
I nodi fogliest 0, 1 hanno 2 esempi positivi, 0 esempi negativi. L'entropia è: e1 = -(2/2 * log(2/2) + 0/2 * log(0/2)) = 0.
I nodi fogliest 2, 3 hanno 0 esempi positivi, 2 esempi negativi. L'entropia è: e2 = -(0/2 * log(0/2) + 2/2 * log(2/2)) = 0.
Quindi la scelta di A0 divide l'entropia dell'informazione per ogni nodo sottostante in un peso ponderato della quota di entropia: E = e1*2/4 + e2*2/4 = 0.
Il guadagno di entropia dell'informazione della suddivisione A0 G(S, A0) = S - E = 1 - 0 = 1.
Di fatto, i nodi foglia dell'albero decisionale rappresentano che appartengono già alla stessa categoria, quindi l'entropia è sempre 0.
L'albero 2 sceglie A1 per la suddivisione, il calcolo dell'entropia di ciascun sotto-nodo è come segue:
I nodi figli 0, 2 hanno 1 esempio positivo e 1 esempio negativo. L'entropia è: e1 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1.
I nodi figli 1, 3 hanno 1 esempio positivo e 1 esempio negativo. L'entropia è: e2 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1.
Di conseguenza, l'entropia dell'informazione dopo la suddivisione A1 è il peso ponderato della quota di entropia di ogni sotto-nodo: E = e1*2/4 + e2*2/4 = 1. Questo significa che è la stessa di suddividere o non suddividere!
Il guadagno di entropia dell'informazione della suddivisione A1 G(S, A1) = S - E = 1 - 1 = 0.
Di conseguenza, prima di ogni divisione, dobbiamo solo calcolare la suddivisione con il guadagno di entropia dell'informazione più grande.
Il guadagno di entropia dell'informazione dell'A0 divisione è 1>Il guadagno di entropia dell'informazione dell'A1 divisione, quindi la divisione A0 è la scelta ottimale!!!
4、Guida all'algoritmo
Dopo la suddivisione della proprietà decisionale, l'entropia disordinata dei dati diventa sempre più bassa, ovvero l'entropia dell'informazione diventa sempre più piccola
5、Implementazione dell'algoritmo
Riassumiamo le proprietà nei dati
Confronta il guadagno di entropia dell'informazione dei dati suddivisi secondo una proprietà specifica e scegli la proprietà con il guadagno di entropia dell'informazione più grande come prima base di suddivisione, quindi continua a scegliere la seconda proprietà, ecc.
Questo è tutto il contenuto dell'articolo, speriamo che sia utile per la tua apprendimento e che tu supporti fortemente la guida di urlania.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il diritto d'autore spetta al proprietario originale, il contenuto è stato contribuito e caricato volontariamente dagli utenti di Internet, questo sito non detiene il diritto di proprietà, non è stato editato manualmente e non assume responsabilità per le relative responsabilità legali. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.