Está en la página 1de 29

Sobre-ajuste

IDM 2021
Errores de Clasificacion

Errores de Entrenamiento (errores aparentes)


– Errores cometidos en el conjunto de entrenamiento

Errores de Testeo
– Errores cometidos en el conjunto de testeo

Errores de Generalización
– Error esperado de un modelo sobre una selección aleatoria de
registros de la misma distribución
Ejemplo

Problema de DOS clases:


+ : 5200 instancias
• 5000 instancias generadas
de una distribución
Gaussiana centrada en
(10,10)
• 200 instancias de RUIDO
agregadas

o : 5200 instancias
• Generadas de una
distribución uniforme

10 % de los datos son


empleados para
entrenamiento y 90 %
para testeo
Efecto de incrementar la cantidad de nodos en el Árbol de Decisión
Árbol de Decisión con cuatro nodos

Árbol de Decisión

Fronteras de decisión sobre los datos de


entrenamiento
Árbol de Decisión con 50 nodos

Árbol de Decisión

Fronteras de Decisión en los datos de


entrenamiento
Que arbol es mejor?

Árbol de decisión con 4 nodos

Que árbol es mejor?


Árbol de decisión con 50 nodos
Sobre-ajuste del modelo

Underfitting: (subajuste) cuando el modelo es demasiado simple y tanto los errores de


entrenamiento como de testeo son grandes
Overfitting: (sobreajuste) cuando el modelo es demasiado complejo, el error de
entrenamiento es pequeño pero el error de testeo es grande
Sobre-ajuste del modelo

Utilizando el doble de cantidad de instancias

• Si los datos de entrenamiento son “sub-representativos”, los errores de testeo


aumentan y los errores de entrenamiento disminuyen al incrementar la cantidad de
nodos.
• Incrementar el tamaño del conjunto de entrenamiento reduce la diferencia entre los
errores de entrenamiento y de testeo para un dado numero de nodos.
Razones para el Sobre-Ajuste

Tamaño limitado de entrenamiento

Alta Complejidad del Modelo


– Procedimiento de Comparaciones múltiples
Efecto del procedimiento de múltiples comparaciones

Consideremos la tarea de predecir si un conjunto Day 1 Up


de acciones va a subir/bajar en los próximos 10 Day 2 Down
días
Day 3 Down
Day 4 Up
Elección aleatoria:
Day 5 Down
P(correct) = 0.5 Day 6 Down
Day 7 Up
Si hacemos 10 elecciones aleatorias consecutivas: Day 8 Up
Day 9 Up
10  10  10 
  +   +   Day 10 Down
P(# correct  8) =  8   9  10 
= 0.0547
10
2
Efecto del procedimiento de múltiples comparaciones

Aproximación:
– Tomemos 50 analistas del mercado
– Cada analista efectúa 10 predicciones aleatorias
– Elija el analista que efectúe la mayor cantidad de predicciones
correctas

Probabilidad de que al menos UN analista efectúe correctamente POR LO


MENOS 8 predicciones
P(# correct  8) = 1 − (1 − 0.0547)50 = 0.9399
Efecto del procedimiento de múltiples comparaciones

Muchos algoritmos emplean la siguiente estrategia voraz (greedy):


– Modelo Inicial: M
– Modelo Alternativo: M’ = M  ,
donde  es un componente a ser agregado en el modelo (e.g., una condición de
testeo en un árbol de decisión)
– Mantener M’ si es una mejora…, (M,M’) > 

Muchas veces,  se elige de un conjunto de componentes alternativos,  = {1, 2, …,


k}

Si existen muchas alternativas disponibles, uno puede inadvertidamente agregar un


componente irrelevante en el modelo, resultando en un modelo sobre-ajustado
Efecto de las comparaciones múltiples - Ejemplo

Utilizando 100 variables de ruido adicionales


generadas de una distribución uniforme junto
con X e Y como atributos

Usar 30% de los datos para entrenamiento y


70 % para testeo
Usando solo X e Y como atributos
Sobreajuste

El sobreajuste genera arboles de decisión que son mas complejos de lo


necesario

El error de entrenamiento NO provee de un buen estimador de cuan


bueno será el árbol al clasificar registros no vistos previamente.

Necesitamos formas de estimar los errores de generalización.


Selección del Modelo

Se realiza durante la construcción del modelo


Su propósito es asegurar que el modelo no es excesivamente complejo
(para evitar el sobreajuste)
Necesitamos estimar el error de generalización
– Usando un conjunto de Validación
– Incorporando la Complejidad del Modelo
– Estimando las cotas estadísticas
Selección del Modelo:
Empleo del conjunto de Validación
Dividir el conjunto de entrenamiento en dos partes:
– Conjunto de entrenamiento:
◆ empleado para la construcción del modelo
– Conjunto de Validación:
◆ empleado para la estimación del error de generalización
◆ Nota: el conjunto de validación no es lo mismo que el conjunto de testeo

Desventaja:
– Hay menos datos disponibles para entrenamiento
Selección del Modelo:
Incorporación de la Complejidad del Modelo
Idea Base: La navaja de Occam
– Dados dos modelos con errores de generalización similares, uno debiera preferir
el modelo mas simple en relación con el modelo mas complejo

– Un modelo complejo tiene una mayor probabilidad de haber ajustado


accidentalmente los errores en los datos

– Se requiere incluir la complejidad del modelo al evaluar un modelo

Gen. Error(Model) = Train. Error(Model, Train. Data) +


x Complexity(Model)
Estimando la Complejidad de los Arboles de Decisión

Estimación Pesimista del Error para un árbol de decisión T con k nodos


hoja:

– err(T): Tasa de error en todos los registros de entrenamiento


– : hiper-parámetro de trade-off (similar al  )
◆ Costo relativo de agregar un nodo hoja
– k: cantidad de nodos hoja
– Ntrain: cantidad total de registros de entrenamiento
Estimacion de la Complejidad de un Arbol de Decision: Ejemplo

e(TL) = 4/24

+: 3 +: 5 +: 1 +: 3 +: 3 e(TR) = 6/24
-: 0 -: 2 -: 4 -: 0 -: 6

+: 3 +: 2 +: 0 +: 1 +: 3 +: 0 =1
-: 1 -: 1 -: 2 -: 2 -: 1 -: 5

Decision Tree, TL Decision Tree, TR

egen(TL) = 4/24 + 1*7/24 = 11/24 = 0.458

egen(TR) = 6/24 + 1*4/24 = 10/24 = 0.417


Estimando la Complejidad de los Arboles de Decisión

Estimado de Resustitución:
– Emplea el error de entrenamiento como una estimación optimista del error de
generalización
– Se lo suele denominar estimación optimista del error

e(TL) = 4/24

e(TR) = 6/24

+: 3 +: 5 +: 1 +: 3 +: 3
-: 0 -: 2 -: 4 -: 0 -: 6

+: 3 +: 2 +: 0 +: 1 +: 3 +: 0
-: 1 -: 1 -: 2 -: 2 -: 1 -: 5

Decision Tree, TL Decision Tree, TR


Minimum Description Length (MDL)
A?
X y Yes No
X y
X1 1 0 B? X1 ?
X2 0 B1 B2
X2 ?
X3 0 C? 1
A C1 C2 B X3 ?
X4 1
0 1 X4 ?
… …
Xn
… …
1
Xn ?

Cost(Model,Data) = Cost(Data|Model) + x Cost(Model)


– Costo es el numero de bits necesarios para la codificación.
– Busca por el modelo menos costoso.
Cost(Data|Model) codifica el error de clasificación incorrecto.
Cost(Model) emplea la codificación de los nodos (cantidad de hijos) mas codificación
por la condición de split.
Estimación de las Cotas Estadísticas

z2 / 2 e(1 − e) z2 / 2


e+ + z / 2 + 2
e' ( N , e,  ) = 2 N N 4 N
+: 5 1+
z2 / 2
-: 2 N

Antes del Split: e = 2/7, e’(7, 2/7, 0.25) = 0.503

e’(T) = 7  0.503 = 3.521


+: 3 +: 2
-: 1 -: 1
Después del Split:

e(TL) = 1/4, e’(4, 1/4, 0.25) = 0.537

e(TR) = 1/3, e’(3, 1/3, 0.25) = 0.650

e’(T) = 4  0.537 + 3  0.650 = 4.098

Por lo tanto, NO PARTIR…


Selección de Modelo para Arboles de Decisión
Pre-Poda (Pre-Pruning) (Regla de terminación temprana)
– Parar el algoritmo antes de que alcance un árbol completamente crecido
– Condiciones típicas de parada para un nodo:
◆ PARAR si todas las instancias pertenecen a la misma clase
◆ PARAR si todos los valores del atributo son los mismos
– Condiciones mas restrictivas:
◆ PARAR si la cantidad de instancias es menor que un umbral especificado por el usuario
◆ PARAR si la distribución de clases de las instancias es independiente de los atributos disponibles (e.g.,
usando un test  2 )
◆ PARAR si la expansión del nodo actual no mejora una medida de impureza (e.g., Gini o ganancia de
información).
◆ PARAR si el error estimado de generalización cae dentro de ciertos umbrales
Selección de Modelo para Arboles de Decisión

Post-Poda (Post-pruning)
– Hacer crecer completamente el árbol
– Reemplazo de sub-árbol
◆ Recortar los nodos de un árbol de decisión de abajo hacia arriba (bottom-up)
◆ Si el error de generalización mejora luego del recorte, reemplazar el sub-árbol
por un nodo hoja
◆ La etiqueta de clase del nodo hoja queda determinada por la clase
mayoritaria de las instancias en el subárbol.
– Crecimiento de los sub-arboles
◆ Reemplazar los subárboles con la rama mas frecuentemente empleada
Ejemplo de Post-Poda
Error de Entrenamiento (Antes del Split) = 10/30

Class = Yes 20 Error Pesimista = (10 + 0.5)/30 = 10.5/30

Class = No 10 Error de Entrenamiento (Después del Split) = 9/30

Error = 10/30 Error Pesimista (Después del Split)


= (9 + 4  0.5)/30 = 11/30
PODAR!
A?

A1 A4
A2 A3

Class = Yes 8 Class = Yes 3 Class = Yes 4 Class = Yes 5


Class = No 4 Class = No 4 Class = No 1 Class = No 1
Ejemplo de Post-Poda
Decision Tree:
depth = 1 :
| breadth > 7 : class 1
| breadth <= 7 :
| | breadth <= 3 : Simplified Decision Tree:
| | | ImagePages > 0.375 : class 0
| | | ImagePages <= 0.375 : depth = 1 :
| | | | totalPages <= 6 : class 1
| ImagePages <= 0.1333 : class 1
| | | | totalPages > 6 :
| | | | | breadth <= 1 : class 1
Subtree | ImagePages > 0.1333 :
| | | | | breadth > 1 : class 0 Raising | | breadth <= 6 : class 0
| | width > 3 : | | breadth > 6 : class 1
| | | MultiIP = 0:
| | | | ImagePages <= 0.1333 : class 1 depth > 1 :
| | | | ImagePages > 0.1333 : | MultiAgent = 0: class 0
| | | | | breadth <= 6 : class 0 | MultiAgent = 1:
| | | | | breadth > 6 : class 1
| | | MultiIP = 1:
| | totalPages <= 81 : class 0
| | | | TotalTime <= 361 : class 0 | | totalPages > 81 : class 1
| | | | TotalTime > 361 : class 1
depth > 1 :
| MultiAgent = 0:
| | depth > 2 : class 0
| | depth <= 2 : Subtree
| | | MultiIP = 1: class 0
| | | MultiIP = 0:
Replacement
| | | | breadth <= 6 : class 0
| | | | breadth > 6 :
| | | | | RepeatedAccess <= 0.0322 : class 0
| | | | | RepeatedAccess > 0.0322 : class 1
| MultiAgent = 1:
| | totalPages <= 81 : class 0
| | totalPages > 81 : class 1
Evaluacion del Modelo

Proposito:
– Estimar la performance del clasificador en datos no vistos previamente (conjunto
de testeo)

Holdout
– Reservar k% para entrenamiento y (100-k)% para testeo
– Submuestreo aleatorio: Holdout repetido

Cross validation
– Partir el conjunto en k conjuntos disjuntos
– k-fold: entrenar en k-1 particiones y testear en la remanente
– Leave-one-out: k=n
Ejemplo de Cross-validation

3-fold cross-validation

También podría gustarte