Está en la página 1de 67

Introduccion a DM

Clase 2.2 – 2022


Mg. Lic. Gastón Pezzuchi, MSc.
Clasificación
Conceptos Básicos y Técnicas
Clasificación: Definición

l Dada una colección de registros (conjunto de entrenamiento)


– Cada registro esta caracterizado por una tupla (x,y), donde x es el conjunto de atributos
e y es la etiqueta de clase
◆ x: atributo, predictor, variable independiente, entrada
◆ y: clase, respuesta, variable dependiente, salida

l Tarea:
– Aprender un modelo que mapea cada conjunto de atributos x en una de las etiquetas
predefinidas de clase y

Introduction to Data Mining, 2nd Edition 5


Ejemplos de Tareas de Clasificación

Tarea Conjunto de Atributos, x Etiqueta de Clase, y

Categorizar Features extraídas del correo spam o no-spam


correos electrónico (encabezado y
electrónicos contenido)

Identificar celulas Features extraídas de escaneos MRI Células malignas o benignas


tumorales

Catalogar Galaxias Features extraidas de imagenes Elípticas, espirales, o galaxias


obtenidas por telescopios irregulares.

Introduction to Data Mining, 2nd Edition 6


Aproximación General a la construcción de un Modelo de Clasificación

Tid Attrib1 Attrib2 Attrib3 Class Learning


1 Yes Large 125K No
algorithm
2 No Medium 100K No

3 No Small 70K No

4 Yes Medium 120K No


Induction
5 No Large 95K Yes

6 No Medium 60K No

7 Yes Large 220K No Learn


8 No Small 85K Yes Model
9 No Medium 75K No

10 No Small 90K Yes


Model
10

Training Set
Apply
Tid Attrib1 Attrib2 Attrib3 Class Model
11 No Small 55K ?

12 Yes Medium 80K ?

13 Yes Large 110K ? Deduction


14 No Small 95K ?

15 No Large 67K ?
10

Test Set

Introduction to Data Mining, 2nd Edition 7


Técnicas de Clasificación

Clasificadores Base
– Métodos basados en Arboles de Decisión
– Métodos Basados en Reglas
– Vecino Mas cercano
– Redes Neuronales
– Deep Learning
– Naïve Bayes y Redes de Creencias Bayesianas
– Support Vector Machines (Maquinas de Soporte Vectorial)

Clasificadores en Conjunto (Ensemble Classifiers)


– Boosting, Bagging, Random Forests

Introduction to Data Mining, 2nd Edition 8


Matriz de Confusión para un Clase Predicha
problema de 2 clases
clase = 1 clase = 0
Clase Conocida clase = 1 f11 f10
clase = 0 f01 f00

# 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐶𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠 𝑓11 + 𝑓00


𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = =
# 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝑓11 + 𝑓10 + 𝑓01 + 𝑓00

# 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐼𝑛𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠 𝑓10 + 𝑓01


𝑇𝑎𝑠𝑎 𝑑𝑒 𝑒𝑟𝑟𝑜𝑟 = =
# 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝑓11 + 𝑓10 + 𝑓01 + 𝑓00
Ejemplo de un Árbol de Decisión

Splitting Attributes
Home Marital Annual Defaulted
ID
Owner Status Income Borrower
1 Yes Single 125K No Home
2 No Married 100K No Owner
Yes No
3 No Single 70K No
4 Yes Married 120K No NO MarSt
5 No Divorced 95K Yes Single, Divorced Married
6 No Married 60K No
Income NO
7 Yes Divorced 220K No
< 80K > 80K
8 No Single 85K Yes
9 No Married 75K No NO YES
10 No Single 90K Yes
10

Training Data Model: Decision Tree

Introduction to Data Mining, 2nd Edition 10


Otro Ejemplo de un Árbol de Decisión

MarSt Single,
Married Divorced
Home Marital Annual Defaulted
ID
Owner Status Income Borrower
NO Home
1 Yes Single 125K No
Yes Owner No
2 No Married 100K No
3 No Single 70K No NO Income
4 Yes Married 120K No < 80K > 80K
5 No Divorced 95K Yes
NO YES
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No Puede existir mas de un árbol que
ajuste al mismo conjunto de datos!!!
10 No Single 90K Yes
10

Introduction to Data Mining, 2nd Edition 11


Aplicar el Modelo a los Datos de Testeo

Test Data
Comenzar desde la raíz del árbol
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married

Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 12


Aplicar el Modelo a los Datos de Testeo

Test Data
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married

Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 13


Aplicar el Modelo a los Datos de Testeo

Test Data
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married

Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 14


Aplicar el Modelo a los Datos de Testeo

Test Data
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married

Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 15


Aplicar el Modelo a los Datos de Testeo

Test Data
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married

Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 16


Aplicar el Modelo a los Datos de Testeo

Test Data
Home Marital Annual Defaulted
Owner Status Income Borrower
No Married 80K ?
Home 10

Yes Owner No

NO MarSt
Single, Divorced Married Asignar a “NO” por
defecto
Income NO
< 80K > 80K

NO YES

Introduction to Data Mining, 2nd Edition 17


Tarea de Clasificación de un Árbol de Decisión

Tid Attrib1 Attrib2 Attrib3 Class


Tree
1 Yes Large 125K No Induction
2 No Medium 100K No algorithm
3 No Small 70K No

4 Yes Medium 120K No


Induction
5 No Large 95K Yes

6 No Medium 60K No

7 Yes Large 220K No Learn


8 No Small 85K Yes Model
9 No Medium 75K No

10 No Small 90K Yes


Model
10

Training Set
Apply Decision
Tid Attrib1 Attrib2 Attrib3 Class
Model Tree
11 No Small 55K ?

12 Yes Medium 80K ?

13 Yes Large 110K ?


Deduction
14 No Small 95K ?

15 No Large 67K ?
10

Test Set

Introduction to Data Mining, 2nd Edition 18


Inducción de Arboles de Decisión

Varios Algoritmos:
– Algoritmo de Hunt (uno de los primeros)
– CART
– ID3, C4.5, C5.0
– SLIQ, SPRINT

Introduction to Data Mining, 2nd Edition 19


Estructura General del Algoritmo de Hunt

l Sea Dt el conjunto de registros de entrenamiento que ID


Home
Owner
Marital
Status
Annual Defaulted
Income Borrower
llegan a un nodo t 1 Yes Single 125K No
2 No Married 100K No

Procedimiento General:
3 No Single 70K No
l
4 Yes Married 120K No
– Si Dt contiene registros que pertenecen a la 5 No Divorced 95K Yes

misma clase yt, entonces t es un nodo hoja que 6 No Married 60K No

se etiqueta como yt 7 Yes Divorced 220K No


8 No Single 85K Yes
– Si Dt contiene registros que pertenecen a mas de 9 No Married 75K No
una clase, utilice un test de atributo para partir 10 No Single 90K Yes

los datos en subconjuntos mas pequeños.


10

Dt
Aplique recursivamente el procedimiento a cada
subconjunto.
?

Introduction to Data Mining, 2nd Edition 20


Algoritmo de Hunt
Home Marital Annual Defaulted
Home ID
Owner Status Income Borrower
Owner
1 Yes Single 125K No
Yes No
Defaulted = No 2 No Married 100K No
Defaulted = No Defaulted = No 3 No Single 70K No
(7,3)
(3,0) (4,3) 4 Yes Married 120K No

(a) (b) 5 No Divorced 95K Yes


6 No Married 60K No
7 Yes Divorced 220K No
Home
8 No Single 85K Yes
Owner
Home Yes No 9 No Married 75K No
Owner 10 No Single 90K Yes
Defaulted = No Marital 10

Yes No
Status
(3,0) Single,
Married
Defaulted = No Marital Divorced
Status
Defaulted = No
(3,0) Single,
Married
Annual
Divorced Income
(3,0)
Defaulted = Yes Defaulted = No < 80K >= 80K

Defaulted = No Defaulted = Yes


(1,3) (3,0)
(1,0) (0,3)
(c) (d)
Introduction to Data Mining, 2nd Edition 21
Algoritmo de Hunt
Home Marital Annual Defaulted
Home ID
Owner Status Income Borrower
Owner
1 Yes Single 125K No
Yes No
Defaulted = No 2 No Married 100K No
Defaulted = No Defaulted = No 3 No Single 70K No
(7,3)
(3,0) (4,3) 4 Yes Married 120K No

(a) (b) 5 No Divorced 95K Yes


6 No Married 60K No
7 Yes Divorced 220K No
Home
8 No Single 85K Yes
Owner
Home Yes No 9 No Married 75K No
Owner 10 No Single 90K Yes
Defaulted = No Marital 10

Yes No
Status
(3,0) Single,
Married
Defaulted = No Marital Divorced
Status
Defaulted = No
(3,0) Single,
Married
Annual
Divorced Income
(3,0)
Defaulted = Yes Defaulted = No < 80K >= 80K

Defaulted = No Defaulted = Yes


(1,3) (3,0)
(1,0) (0,3)
(c) (d)
Introduction to Data Mining, 2nd Edition 22
Algoritmo de Hunt
Home Marital Annual Defaulted
Home ID
Owner Status Income Borrower
Owner
1 Yes Single 125K No
Yes No
Defaulted = No 2 No Married 100K No
Defaulted = No Defaulted = No 3 No Single 70K No
(7,3)
(3,0) (4,3) 4 Yes Married 120K No

(a) (b) 5 No Divorced 95K Yes


6 No Married 60K No
7 Yes Divorced 220K No
Home
8 No Single 85K Yes
Owner
Home Yes No 9 No Married 75K No
Owner 10 No Single 90K Yes
Defaulted = No Marital 10

Yes No
Status
(3,0) Single,
Married
Defaulted = No Marital Divorced
Status
Defaulted = No
(3,0) Single,
Married
Annual
Divorced Income
(3,0)
Defaulted = Yes Defaulted = No < 80K >= 80K

Defaulted = No Defaulted = Yes


(1,3) (3,0)
(1,0) (0,3)
(c) (d)
Introduction to Data Mining, 2nd Edition 23
Algoritmo de Hunt
Home Marital Annual Defaulted
Home ID
Owner Status Income Borrower
Owner
1 Yes Single 125K No
Yes No
Defaulted = No 2 No Married 100K No
Defaulted = No Defaulted = No 3 No Single 70K No
(7,3)
(3,0) (4,3) 4 Yes Married 120K No

(a) (b) 5 No Divorced 95K Yes


6 No Married 60K No
7 Yes Divorced 220K No
Home
8 No Single 85K Yes
Owner
Home Yes No 9 No Married 75K No
Owner 10 No Single 90K Yes
Defaulted = No Marital 10

Yes No
Status
(3,0) Single,
Married
Defaulted = No Marital Divorced
Status
Defaulted = No
(3,0) Single,
Married
Annual
Divorced Income
(3,0)
Defaulted = Yes Defaulted = No < 80K >= 80K

Defaulted = No Defaulted = Yes


(1,3) (3,0)
(1,0) (0,3)
(c) (d)
Introduction to Data Mining, 2nd Edition 24
Decisiones de Diseño de un Algoritmo de Inducción de Arboles de Decisión

l Como se deben partir los registros de entrenamiento (split)?


– Método para especificar la condición de test
◆ depende del tipo de atributo
– Medida para evaluar la bondad de una condición de testeo

l Como debe para el procedimiento de split?


– Dejar de dividir si todos los registros pertenecen a la misma clase o tienen valores
idénticos de los atributos.
– Terminación temprana

Introduction to Data Mining, 2nd Edition 25


Métodos para expresar las condiciones de Testeo

l Dependen del tipo de atributo


– Binario
– Nominal
– Ordinal
– Continuo

l Dependen de la cantidad de formas de realizar el split


– Split de 2-vias
– Split Multi-via

Introduction to Data Mining, 2nd Edition 26


Condicion de Testeo para Atributos Nominales

Split Multi-vía:
Marital
– Utilizar tantas particiones como Status
valores distintos.

Single Divorced Married

Split Binario:
– Divide los valores en dos
subconjuntos
Marital Marital Marital
Status Status Status
OR OR

{Married} {Single, {Single} {Married, {Single, {Divorced}


Divorced} Divorced} Married}

Introduction to Data Mining, 2nd Edition 27


Condición de Testeo para Atributos Ordinales

l Split Multi-vía: Shirt


Size
– Utilizar tantas particiones como
valores distintos
Small
Medium Large Extra Large

l Split Binario: Shirt


Size
Shirt
Size

– Divide los valores en dos


subconjuntos
– Preserva la propiedad de orden {Small,
Medium}
{Large,
Extra Large}
{Small} {Medium, Large,
Extra Large}

entre los valores de los atributos Shirt


Size
Este agrupamiento
viola la propiedad
de orden

{Small, {Medium,
Large} Extra Large}
Introduction to Data Mining, 2nd Edition 28
Condición de Testeo para Atributos Continuos

Annual Annual
Income Income?
> 80K?
< 10K > 80K
Yes No

[10K,25K) [25K,50K) [50K,80K)

(i) Binary split (ii) Multi-way split

Introduction to Data Mining, 2nd Edition 29


Particionamiento Basado en Atributos Continuos

Diferentes formas de atacar el problema


– Discretizando a alguna forma de atributo ordinal o categórico
Se pueden construir rangos mediante mecanismos de intervalos iguales, frecuencia
igual (percentiles), clustering, etc.
◆ Estático – discretizar una vez al comienzo
◆ Dinámico – repetir en cada nodo

– Decisión Binaria: (A < v) or (A  v)


◆ considerar todos los posibles splits y encontrar el mejor.
◆ puede ser computacionalmente intensivo

Introduction to Data Mining, 2nd Edition 30


Como determinar el mejor split?

Antes de Partir: 10 registros de la clase 0,


10 registros de la clase 1

Gender Car Customer


Type ID

Yes No Family Luxury c1 c20


c10 c11
Sports
C0: 6 C0: 4 C0: 1 C0: 8 C0: 1 C0: 1 ... C0: 1 C0: 0 ... C0: 0
C1: 4 C1: 6 C1: 3 C1: 0 C1: 7 C1: 0 C1: 0 C1: 1 C1: 1

Cual condición de testeo es la mejor?


Introduction to Data Mining, 2nd Edition 31
Como determinar el mejor split

l Aproximación Voraz:
– Nodos con clases puras son preferidos.

l Se necesita de una medida de la impureza del nodo:

C0: 5 C0: 9
C1: 5 C1: 1

Alto nivel de impureza Bajo nivel de impureza

Introduction to Data Mining, 2nd Edition 32


Medidas de la Impureza de un Nodo

l Índice de Gini
GINI (t ) = 1 −  [ p( j | t )] 2

l Entropía
Entropy(t ) = − p( j | t ) log p( j | t )
j

l Error de Clasificación

Error (t ) = 1 − max P (i | t ) i

Introduction to Data Mining, 2nd Edition 33


Como encontrar el mejor Split

1. Calcular la medida de impureza (P) antes del Split.

2. Calcular la medida de impureza (M) después del Split.


l Calcular la medida de impureza para cada nodo hijo.
l M es la impureza ponderada de los hijos

3. Elegir la condición de testeo del atributo que produce la mayor ganancia.


Ganancia = Gain = P – M

o equivalentemente, la menor medida de impureza luego del Split (M)

Introduction to Data Mining, 2nd Edition 34


Encontrando el mejor Split
Antes del Split: C0 N00
P
C1 N01

A? B?
Yes No Yes No

Node N1 Node N2 Node N3 Node N4

C0 N10 C0 N20 C0 N30 C0 N40


C1 N11 C1 N21 C1 N31 C1 N41

M11 M12 M21 M22

M1 M2
Ganancia = P – M1 vs P – M2
Introduction to Data Mining, 2nd Edition 35
Medida de Impureza: GINI

El índice de Gini para un dado nodo t es:

GINI (t ) = 1 −  [ p( j | t )]2
j

(NOTA: p( j | t) es la frecuencia relativa de la clase j en el nodo t).

– Máximo (1 - 1/nc) cuando los registros están igualmente distribuidos entre todas
las clases, implicando la información menos interesante.
– Mínimo (0.0) cuando todos los registros pertenecen a una sola clase, implicando
la información mas interesante

Introduction to Data Mining, 2nd Edition 36


Medida de Impureza: GINI

Índice de Gini para un dado nodo t :

GINI (t ) = 1 −  [ p( j | t )]2
j

(NOTA: p( j | t) es la frecuencia relativa de la clase j en el nodo t).

– Para un problema de 2 clases (p, 1 – p):


◆ GINI = 1 – p2 – (1 – p)2 = 2p (1-p)

C1 0 C1 1 C1 2 C1 3
C2 6 C2 5 C2 4 C2 3
Gini=0.000 Gini=0.278 Gini=0.444 Gini=0.500

Introduction to Data Mining, 2nd Edition 37


Cálculo del Índice de Gini para un único Nodo

GINI (t ) = 1 −  [ p( j | t )]2
j

C1 0 P(C1) = 0/6 = 0 P(C2) = 6/6 = 1


C2 6 Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0

C1 1 P(C1) = 1/6 P(C2) = 5/6


C2 5 Gini = 1 – (1/6)2 – (5/6)2 = 0.278

C1 2 P(C1) = 2/6 P(C2) = 4/6


C2 4 Gini = 1 – (2/6)2 – (4/6)2 = 0.444

Introduction to Data Mining, 2nd Edition 38


Cálculo del Índice de Gini para una colección de Nodos

Cuando un nodo p se parte en k particiones (hijos)


k
ni
GINI split =  GINI (i )
i =1 n

donde, ni = cantidad de registros en el hijo i,


n = cantidad de registros en el nodo padre p.

Elegir el atributo que minimiza el promedio ponderado del


Índice de Gini de los nodos hijos

El Índice de Gini se utiliza en los algoritmos de inducción de


arboles de decisión CART, SLIQ, SPRINT
7/4/2022 Introduction to Data Mining, 2nd Edition 39
Atributos Binarios: Cálculo del Índice de GINI

Partir en dos particiones


Efecto de particiones ponderadas:
– Se buscan particiones grandes y puras.
Parent
B? C1 7
Yes No C2 5
Gini = 0.486
Node N1 Node N2
Gini(N1)
= 1 – (5/6)2 – (1/6)2 N1 N2 Gini Ponderado de N1 N2
= 0.278
C1 5 2 = 6/12 * 0.278 +
Gini(N2) C2 1 4 6/12 * 0.444
= 1 – (2/6)2 – (4/6)2 = 0.361
Gini=0.361
= 0.444 Ganancia = 0.486 – 0.361 = 0.125
7/4/2022 Introduction to Data Mining, 2nd Edition 40
Atributos Categóricos: Cálculo del Índice de GINI

l Para cada valor distinto, calcular los conteos de cada clase en el dataset
l Utilizar la matriz de conteo para tomar la decisión.

Split multi-vía Split Binario


(encontrar la mejor partición de valores)

CarType CarType CarType


{Sports, {Family,
Family Sports Luxury {Family} {Sports}
Luxury} Luxury}
C1 1 8 1 C1 9 1 C1 8 2
C2 3 0 7 C2 7 3 C2 0 10
Gini 0.163 Gini 0.468 Gini 0.167

Cual de estos es mejor?

7/4/2022 Introduction to Data Mining, 2nd Edition 41


Atributos Continuos: Cálculo del Índice de GINI

l Utilizar Decisiones Binarias Basándose en un valor. ID


Home Marital Annual
Defaulted
Owner Status Income
l Existen varias elecciones para el valor de partición 1 Yes Single 125K No
– Numero de valores posibles para el split 2 No Married 100K No
= Numero de valores distintos 3 No Single 70K No
l Cada valor de Split tiene una matriz de conteo asociado con él 4 Yes Married 120K No
– Las clases de conteo en cada una de las particiones, A < v 5 No Divorced 95K Yes
and A  v 6 No Married 60K No
l El método mas simple para elegir el mejor valor de v 7 Yes Divorced 220K No

– Para cada v, escanear la base de datos para encontrar la 8 No Single 85K Yes
matriz de conteo y calcular el índice de Gini 9 No Married 75K No

– Computacionalmente Ineficiente! Repite muchas veces el 10


10 No Single 90K Yes

mismo trabajo. Annual Income ?

≤ 80 > 80
Defaulted Yes 0 3
Defaulted No 3 4

7/4/2022 Introduction to Data Mining, 2nd Edition 42


Atributos Continuos: Calculo del índice de GINI...

l Cálculo eficiente: Para cada atributo,


– Ordenar los valores
– Linealmente escanear los valores, y en cada momento actualizar la matriz de conteo y calcular el
índice de GINI
– Elegir la ubicación del Split que obtiene el menor valor para el índice de GINI

Cheat No No No Yes Yes Yes No No No No


Annual Income
Valores Ordenados
60 70 75 85 90 95 100 120 125 220
Split Positions 55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

7/4/2022 Introduction to Data Mining, 2nd Edition 43


Atributos Continuos: Calculo del indice de GINI...

Cálculo eficiente: Para cada atributo,


– Ordenar los valores
– Linealmente escanear los valores, y en cada momento actualizar la matriz de conteo y calcular el
índice de GINI
– Elegir la ubicación del Split que obtiene el menor valor para el índice de GINI

Cheat No No No Yes Yes Yes No No No No


Annual Income
Valores Ordenados
60 70 75 85 90 95 100 120 125 220
Posicion del Split
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

7/4/2022 Introduction to Data Mining, 2nd Edition 44


Atributos Continuos: Calculo del indice de GINI...

Cálculo eficiente: Para cada atributo,


– Ordenar los valores
– Linealmente escanear los valores, y en cada momento actualizar la matriz de conteo y calcular el
índice de GINI
– Elegir la ubicación del Split que obtiene el menor valor para el índice de GINI

Cheat No No No Yes Yes Yes No No No No


Annual Income
Valores Ordenados
60 70 75 85 90 95 100 120 125 220
Posiciones del split
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

7/4/2022 Introduction to Data Mining, 2nd Edition 45


Atributos Continuos: Calculo del indice de GINI...

Cálculo eficiente: Para cada atributo,


– Ordenar los valores
– Linealmente escanear los valores, y en cada momento actualizar la matriz de conteo y calcular el
índice de GINI
– Elegir la ubicación del Split que obtiene el menor valor para el índice de GINI

Cheat No No No Yes Yes Yes No No No No


Annual Income
Sorted Values 60 70 75 85 90 95 100 120 125 220
Split Positions 55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

7/4/2022 Introduction to Data Mining, 2nd Edition 46


Atributos Continuos: Calculo del indice de GINI...

Cálculo eficiente: Para cada atributo,


– Ordenar los valores
– Linealmente escanear los valores, y en cada momento actualizar la matriz de conteo y calcular el
índice de GINI
– Elegir la ubicación del Split que obtiene el menor valor para el índice de GINI

Cheat No No No Yes Yes Yes No No No No


Annual Income
Sorted Values 60 70 75 85 90 95 100 120 125 220
Split Positions 55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

7/4/2022 Introduction to Data Mining, 2nd Edition 47


Medida de Impureza: Entropía

l La entropía en un dado nodo t:

Entropy(t ) = − p( j | t ) log p( j | t )
j

(NOTA: p( j | t) es la frecuencia relativa de la clase j en el nodo t).

◆ Máximo (log nc) cuando todos los registros están igualmente distribuidos entre todas las clases, implicando
la menor cantidad de información.
◆ Mínimo (0.0) cuando todos los registros pertenecen a la misma clase, implicando la máxima información.

– Los cálculos basados en entropía son similares a los cálculos del índice de GINI

7/4/2022 Introduction to Data Mining, 2nd Edition 48


Calculo de la Entropía para un único nodo

Entropy(t ) = − p( j | t ) log p( j | t )
j 2

C1 0 P(C1) = 0/6 = 0 P(C2) = 6/6 = 1


C2 6 Entropy = – 0 log 0 – 1 log 1 = – 0 – 0 = 0

C1 1 P(C1) = 1/6 P(C2) = 5/6


C2 5 Entropy = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65

C1 2 P(C1) = 2/6 P(C2) = 4/6


C2 4 Entropy = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92

7/4/2022 Introduction to Data Mining, 2nd Edition 49


Calculando la Ganancia de Información Después del Split

l Ganancia de Información:
 n 
GAIN = Entropy ( p) −   Entropy (i ) 
k
i

 n 
split i =1

Nodo padre, p es partido en k particiones;


ni es la cantidad de registros en la partición i

– Elegir el Split que obtenga la mayor reducción (maximiza la GANANCIA)

– Usada en los algoritmos de inducción de arboles de decisión ID3 y C4.5

7/4/2022 Introduction to Data Mining, 2nd Edition 50


Problema con una gran cantidad de particiones

Las medidas de impureza de los nodos tienden a preferir splits que resulten en una
gran cantidad de particiones, cada una de ellas pequeña pero pura.

Gender Car Customer


Type ID

Yes No Family Luxury c1 c20


c10 c11
Sports
C0: 6 C0: 4 C0: 1 C0: 8 C0: 1 C0: 1 ... C0: 1 C0: 0 ... C0: 0
C1: 4 C1: 6 C1: 3 C1: 0 C1: 7 C1: 0 C1: 0 C1: 1 C1: 1

– El ID de cliente tiene la mayor ganancia de información porque la entropía de


todos sus hijos es cero

7/4/2022 Introduction to Data Mining, 2nd Edition 51


Gain Ratio (Razon de Ganancia)

l Gain Ratio:

GAIN n n
GainRATIO = SplitINFO = −  log
Split k
i i
split
SplitINFO n n i =1

Nodo Padre, p se parte en k particiones


ni es el numero de registros en la partición i

– Ajusta la Ganancia de Información por la entropía de la partición (SplitINFO).


◆ Se penaliza una alta entropía de la partición (gran cantidad de pequeñas particiones)!!
– Lo utiliza el algoritmo C4.5
– Desinada para sobreponerse a las desventajas de la ganancia de información.

7/4/2022 Introduction to Data Mining, 2nd Edition 52


Gain Ratio

l Gain Ratio:

GAIN n n
GainRATIO = SplitINFO = −  log
Split k
i i
split
SplitINFO n n i =1

El nodo padre, p se parte en k particiones


ni es la cantidad de registros en la particion i

CarType CarType CarType


{Sports, {Family,
Family Sports Luxury {Family} {Sports}
Luxury} Luxury}
C1 1 8 1 C1 9 1 C1 8 2
C2 3 0 7 C2 7 3 C2 0 10
Gini 0.163 Gini 0.468 Gini 0.167

SplitINFO = 1.52 SplitINFO = 0.72 SplitINFO = 0.97

7/4/2022 Introduction to Data Mining, 2nd Edition 53


Medida de Impureza: Error de Clasificacion

l El Error de Clasificación en el nodo t :

Error (t ) = 1 − max P (i | t ) i

– Máximo (1 - 1/nc) cuando todos los registros están igualmente distribuidos entre
todas las clases, implicando la menor cantidad de información.
– Mínimo (0) cuando todos los registros pertenecen a una sola clase, implicando la
información mas interesante.

7/4/2022 Introduction to Data Mining, 2nd Edition 54


Calculando el error en único nodo

Error (t ) = 1 − max P (i | t ) i

C1 0 P(C1) = 0/6 = 0 P(C2) = 6/6 = 1


C2 6 Error = 1 – max (0, 1) = 1 – 1 = 0

C1 1 P(C1) = 1/6 P(C2) = 5/6


C2 5 Error = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6

C1 2 P(C1) = 2/6 P(C2) = 4/6


C2 4 Error = 1 – max (2/6, 4/6) = 1 – 4/6 = 1/3

7/4/2022 Introduction to Data Mining, 2nd Edition 55


Comparación entre las medidas de impureza

Para un problema de 2 clases:

7/4/2022 Introduction to Data Mining, 2nd Edition 56


Error de Clasificación vs. Índice de GINI

A? Parent
C1 7
Yes No
C2 3
Node N1 Node N2 Gini = 0.42

Gini(N1) N1 N2
= 1 – (3/3)2 – (0/3)2 Gini(Hijos)
C1 3 4 = 3/10 * 0
=0
C2 0 3 + 7/10 * 0.489
Gini(N2) Gini=0.342 = 0.342
= 1 – (4/7)2 – (3/7)2
= 0.489 Gini mejora pero el
error permanece
igual!!
7/4/2022 Introduction to Data Mining, 2nd Edition 57
Error de Clasificación vs. Índice de GINI

A? Parent
C1 7
Yes No
C2 3
Node N1 Node N2 Gini = 0.42

N1 N2 N1 N2
C1 3 4 C1 3 4
C2 0 3 C2 1 2
Gini=0.342 Gini=0.416

El error de clasificacion en los tres casos = 0.3 !

7/4/2022 Introduction to Data Mining, 2nd Edition 58


Clasificación basada en arboles de decisión
l Ventajas:
– Poco costosos para armar
– Extremadamente rápidos para clasificar registros no vistos.
– Fáciles de interpretar para arboles pequeños
– Robustos con relación al ruido (especialmente cuando se utilizan
métodos para evitar el sobre-ajuste)
– Pueden manejar fácilmente atributos redundantes o irrelevantes
(siempre que los mismos no interactúen)
l Desventajas:
– El espacio de arboles de decisión posibles es exponencialmente
grande. Las aproximaciones voraces son muchas veces incapaces de
encontrar el mejor árbol.
– No tiene en cuenta interacciones entre los atributos
– Cada frontera de decisión involucra únicamente a un solo atributo.

7/4/2022 Introduction to Data Mining, 2nd Edition 59


Algoritmo Esquemático (recursivo)

Sea E el conjunto de registros de entrenamiento y F el conjunto de atributos.


TreeGrowth(E,F)
1: if stopping_cond(E,F) = true then
2: leaf = createNode()
3: leaf.label = classify(E)
4: return leaf
5: else
6: root = createNode()
7: root.test_cond = find_best_Split(E,F)
8: let V = {v|v es un resultado posible de root.test_cond}
9: for each v  V do
10: Ev = {e| root.test.cond(e) = v y e  E}
11: child = TreeGrowth(Ev, F)
12: agregar child como un descendiente de root y etiquetar la arista (root → child) como v
13: end for
14: end if
15: return root
Características de una inducción de Árbol de Decisión

1- Es una aproximación no paramétrica.


2- Encontrar el árbol optimo es un problema NP-completo.
3- Las técnicas computacionales existentes son rápidas. El tiempo necesario
para clasificar un registro es muy rápido.
4- Son fáciles de interpretar si su tamaño no es muy complejo.
5- Su precisión es comparable con otros métodos disponibles.
6- Proveen una representación expresiva para representar funciones
discretas, pero no generalizan bien algunos problemas Booleanos.
Ejemplo Función de paridad para atributos Booleanos

Sean A, B, C y D cuatro atributos Booleanos.


Si la variable clase = paridad(A, B, C, D).

Introduction to Data Mining, 2nd Edition 62


Características de una inducción de Árbol de Decisión

7- Son robustos ante ruido.


8- No se ven afectados por atributos redundantes.
9- Problema de fragmentación de datos.
10- Un sub-árbol puede ser replicado muchas veces en un árbol de
decisión.
11- Con una única decisión de testeo no es posible resolver fronteras de
decisión oblicuas.
12- Las medidas de impureza tienen bajo impacto en la performance de los
algoritmos de inducción de arboles. Es mas importante la estrategia de
poda empleada.
Interacciones…

+ : 1000 instances Entropy (X) : 0.99


Entropy (Y) : 0.99
o : 1000 instances
Y

7/4/2022 Introduction to Data Mining, 2nd Edition 64


Interacciones

+ : 1000 instances Entropy (X) : 0.99


Entropy (Y) : 0.99
o : 1000 instances Entropy (Z) : 0.98
Y
Si se agrega Z como El atributo Z seria
un atributo Ruidoso elegido para el
generado a partir de
split!!!
una distribucion
uniforme
X

Z Z

X Y
7/4/2022 Introduction to Data Mining, 2nd Edition 65
Limitaciones de fronteras de decisión basadas en un único atributo

Tanto las clases positiva (+)


como negativa (o) fueron
generadas a partir de una
distribución Gaussiana sesgada
con centros en (8,8) y (12,12)
respectivamente.

7/4/2022 Introduction to Data Mining, 2nd Edition 66


Resumen

Aplicabilidad
Expresividad
Eficiencia Computacional
Valores Faltantes
Interacción entre Atributos
Atributos Irrelevantes
Atributos Redundantes
Splits Rectilíneos
Medidas de Impureza

Introduction to Data Mining, 2nd Edition 67

También podría gustarte