Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Decision Trees Un problème d’apprentissage supervisé

Etant donné :
- Unlangage pour représenter les exemples ℒ" : features (x,y)
- Un espace d’instances #, représentables dans ce langage
- Un langage d’hypothèses ℒℎ (une fonction de # ↦ & )

On cherche :
h ∈ ℒℎ tq pour tout ") = +), -) , ℎ ") ≈ /)

[These slides were created by Dan Klein, Pieter Abbeel, Sergey Levine. All CS188 materials are at http://ai.berkeley.edu.]

Inductive Learning (Science) Inductive Learning


§ Simplest form: learn a function from examples
§ A target function: f
§ Examples: input-output pairs (x, f(x))
§ E.g. x is an email and f(x) is spam / ham
§ E.g. x is a house and f(x) is its selling price

§ Problem:
§ Given a hypothesis space H
§ Given a training set of examples xi
§ Find a hypothesis h(x) such that h ~ f

§ Includes:
§ Classification (outputs = class labels)
§ Regression (outputs = real numbers)
Méthodologie en Apprentissage Inductif Modelling a learning problem : Features

• Construire/ajuster h pour qu’elle s’accorde


avec f sur l’ensemble d’apprentissage

• Par exemple, ajustement de courbes:

• Rasoir d’Ockham: pour une même


performance sur l’ensemble d’apprentissage;
préférer l’hypothèse la plus simple

Decision Trees Decision Trees


§ Compact representation of a function:
§ Truth table
§ Conditional probability table
§ Regression values

§ True function
§ Realizable: in H
Decision Tree Learning Choosing an Attribute
§ Aim: find a small tree consistent with the training examples § Idea: a good attribute splits the examples into subsets that are (ideally) “all positive” or
§ Idea: (recursively) choose “most significant” attribute as root of (sub)tree “all negative”

§ So: we need a measure of how “good” a split is, even if the results aren’t perfectly
separated out

Learning&simplest(decision&tree&is&NPThard&
Expressiveness of DTs

§ Can express any function of the features • Learning&the&simplest&(smallest)&decision&tree&is&


an&NPTcomplete&problem&[Hyafil&&&Rivest&’76]&&
• Resort&to&a&greedy&heurisGc:&
– Start&from&empty&decision&tree&
– Split&on&next(best(a1ribute((feature)(
– Recurse&

§ However, we hope for compact trees


Spli^ng:&choosing&a&good&aIribute& Measuring&uncertainty&

Would we prefer to split on X1 or X2?


• Good&split&if&we&are&more&certain&about&
X1 X2 Y
T T T
classificaGon&a_er&split&
T F T – DeterminisGc&good&(all&true&or&all&false)&
X1 X2 T T T – Uniform&distribuGon&bad&
t f t f
T F T – What&about&distribuGons&in&between?&
Y=t : 4 Y=t : 1 Y=t : 3 Y=t : 2
Y=f : 0 F T T
Y=f : 3 Y=f : 1 Y=f : 2
F F F P(Y=A) = 1/2 P(Y=B) = 1/4 P(Y=C) = 1/8 P(Y=D) = 1/8
F T F
Idea: use counts at leaves to define
F F F
probability distributions, so we can P(Y=A) = 1/4 P(Y=B) = 1/4 P(Y=C) = 1/4 P(Y=D) = 1/4
measure uncertainty!

Entropy& High,&Low&Entropy&
Entropy&H(Y)&of&a&random&variable&Y
• “High&Entropy”&&
– Y&is&from&a&uniform&like&distribuGon&
Entropy&of&a&coin&flip& – Flat&histogram&
– Values&sampled&from&it&are&less&predictable&
More uncertainty, more entropy!
• “Low&Entropy”&&
Entropy&

Information Theory interpretation: – Y&is&from&a&varied&(peaks&and&valleys)&


H(Y) is the expected number of bits
needed to encode a randomly distribuGon&
drawn value of Y (under most – Histogram&has&many&lows&and&highs&
efficient code)
– Values&sampled&from&it&are&more&predictable&
Probability&of&heads&
(Slide from Vibhav Gogate)
Entropy&of&a&coin&flip&

Entropy&Example& CondiGonal&Entropy&

Entropy&
CondiGonal&Entropy&H( Y |X)&of&a&random&variable&Y&condiGoned&on&a&
random&variable&X

Probability&of&heads&

X1 X2 Y
P(Y=t) = 5/6 Example: X1
X1 X2 Y t f T T T
P(Y=f) = 1/6 T F T
T T T P(X1=t) = 4/6 Y=t : 4 Y=t : 1
T F T P(X1=f) = 2/6 Y=f : 0 T T T
H(Y) = - 5/6 log2 5/6 - 1/6 log2 1/6 Y=f : 1
T T T T F T
= 0.65 T F T F T T
H(Y|X1) = - 4/6 (1 log2 1 + 0 log2 0)
F T T - 2/6 (1/2 log2 1/2 + 1/2 log2 1/2) F F F
F F F = 2/6

InformaGon&gain& Entropy
• Decrease&in&entropy&(uncertainty)&a_er&spli^ng&
§ General answer: if prior is <p1,…,pn>:
§ Information is the expected code length

1 bit

X1 X2 Y
In our running example: T T T
IG(X1) = H(Y) – H(Y|X1) T F T
§ Also called the entropy of the distribution 0 bits
= 0.65 – 0.33 T T T § More uniform = higher entropy
T F T § More values = higher entropy
§ More peaked = lower entropy
IG(X1) > 0 ! we prefer the split! F T T
F F F 0.5 bit
Information Gain Next Step: Recurse
§ Back to decision trees! § Now we need to keep growing the tree!
§ For each split, compare entropy before and after § Two branches are done (why?)
§ Difference is the information gain
§ Problem: there’s more than one distribution after split! § What to do under “full”?
§ See what examples are there…

§ Solution: use expected entropy, weighted by the number of examples

Example: Learned Tree En TP : IRIS

§ Decision tree learned from these 12 examples:

§ Substantially simpler than “true” tree : A more


complex hypothesis isn't justified by data
Final Tree Critère de Gini

X[2] <= 2.45


gini = 0.667
samples = 150 !"#" & = 1 − ) 4(5|&)7
value = [50, 50, 50]
False
True

où p(j|E) est la probabilité pour un exemple de E d’appartenir à la


X[3] <= 1.75
gini = 0.0
gini = 0.5
samples = 50
samples = 100
value = [50, 0, 0]
value = [0, 50, 50]
classe j
X[2] <= 4.95 X[2] <= 4.85
gini = 0.168 gini = 0.043
samples = 54 samples = 46
value = [0, 49, 5] value = [0, 1, 45]
Si E est séparé par l’attribut A en k classes C1 … Ck
-
X[3] <= 1.65 X[3] <= 1.55 X[0] <= 5.95 #"
!"#"$ (&) = ) !"#"(.")
gini = 0.0
gini = 0.041 gini = 0.444 gini = 0.444
samples = 43
#
samples = 48 samples = 6 samples = 3
value = [0, 0, 43]
value = [0, 47, 1] value = [0, 2, 4] value = [0, 1, 2]
*+,
X[2] <= 5.45
gini = 0.0 gini = 0.0 gini = 0.0 gini = 0.0 gini = 0.0
gini = 0.444
samples = 47 samples = 1 samples = 3 samples = 1 samples = 2
samples = 3
Gain (réduction de l’impureté) : !/"# &, 1 = !"#" & − !"#"$ (&)
value = [0, 47, 0] value = [0, 0, 1] value = [0, 0, 3] value = [0, 1, 0] value = [0, 0, 2]
value = [0, 2, 1]

gini = 0.0 gini = 0.0


samples = 2 samples = 1
value = [0, 2, 0] value = [0, 0, 1]

Erreur de classification Vs. Index de Gini Comparaison

A?
Gini(N1) Gini(N2)
Yes No
= 1 – (3/3)2 – (0/3)2 = 1 – (4/7)2 – (3/7)2
=0 = 0.490
Node N1 Node N2

Gini(Children)
= 3/10 * 0
+ 7/10 * 0.49
= 0.343

L’index de Gini baisse de .42 à .343 alors que l’erreur de


classification reste à 30%.
Performance measurement

How do we know that h ≈ f ?

• Use theorems of computational/statistical learning theory


• Try h on a new test set of examples
(use same distribution over example space as training set) 1. Évaluation d’un modèle
Learning curve = % correct on test set as a function of training set size

48

1.2 Jeux d’entraînement et de test 1.2 Jeux d’entraînement et de test


— Erreur de généralisation : erreur que l’on peut attendre sur de nouvelles — Erreur de généralisation : erreur que l’on peut attendre sur de nouvelles
données (la définition formelle fait appel à l’espérance) données (la définition formelle fait appel à l’espérance)
— Elle est estimée en mettant de côté une partie des données :
— On sépare les données en un jeu d’entraînement et un jeu de test
(typiquement, 80%–20%)

52 52
1.2 Jeux d’entraînement et de test Règle d’or
— Erreur de généralisation : erreur que l’on peut attendre sur de nouvelles
données (la définition formelle fait appel à l’espérance)
— Elle est estimée en mettant de côté une partie des données :
— On sépare les données en un jeu d’entraînement et un jeu de test
(typiquement, 80%–20%) NE PAS TOUCHER au jeu de test
Jeu de données sauf pour évaluer l’erreur de généralisation du modèle

Entraînement Test

— Le jeu d’entraînement (train set) sert à apprendre le modèle


— Le jeu de test sert à estimer l’erreur de généralisation du modèle
52 53

1.3 Validation croisée 1.3 Validation croisée

— La validation croisée (cross-validation) permet :


— d’utiliser toutes les données pour l’entraînement et pour la validation Jeu de données
— d’obtenir une performance moyenne (+/- écart-type) moins sensible au
choix du jeu de test
— On sépare le jeu de données en K blocs (folds)
En pratique, K=5 ou K=10 le plus souvent (équilibre entre le nombre
d’expériences et la taille de chaque jeu d’entraînement)
— On utilise tour à tour chacun des blocs comme jeu de validation et l’union
des autres comme jeu d’entraînement
K scores de performance ⇥ performance de généralisation du modèle

54
1.3 Validation croisée 1.3 Validation croisée

Jeu de données Jeu de données

Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5

Test 1 Entraînement 1

1.3 Validation croisée 1.3 Validation croisée

Jeu de données Jeu de données

Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5

Test 1 Entraînement 1 Perf 1 Test 1 Entraînement 1 Perf 1


..
.
Entraînement 5 Test 5 Perf 5
1.3 Validation croisée 1.4 Évaluation d’un modèle (classification)

Jeu de données — Pourcentage d’erreur : proportion d’observations mal classifiées

Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5

Test 1 Entraînement 1 Perf 1


.. Perf
. géné
Entraînement 5 Test 5 Perf 5

55 56

1.4 Évaluation d’un modèle (classification) 1.4 Évaluation d’un modèle (classification)

— Pourcentage d’erreur : proportion d’observations mal classifiées


— Pourcentage d’erreur : proportion d’observations mal classifiées — Problème : cas où les classes ne sont pas équilibrées
— Problème : cas où les classes ne sont pas équilibrées Exemple : détection de fraude
Exemple : détection de fraude — 99% des observations ne sont pas des fraudes
— 99% des observations ne sont pas des fraudes — Un modèle qui prédit toujours « non » a un pourcentage d’erreur de 1%.
— Un modèle qui prédit toujours « non » a un pourcentage d’erreur de 1%. — Matrice de confusion (confusion matrix)

Classe réelle
0 1
Classe 0 Vrais Négatifs (TN) Faux Négatifs (FN)
prédite 1 Faux Positifs (FP) Vrais Positifs (TP)

56 56

You might also like