Modelos basados en arbolesModelos basados en arboles Francisco J. Mart n Mateos Jos e L. Ruiz Reina...
Transcript of Modelos basados en arbolesModelos basados en arboles Francisco J. Mart n Mateos Jos e L. Ruiz Reina...
Modelos basados en arboles
Francisco J. Martın MateosJose L. Ruiz ReinaJuan Galan Paez
Dpto. Ciencias de la Computacion e Inteligencia ArtificialUniversidad de Sevilla
Razonamiento Asistido por Computador, 2018-2019
Parte I
Clasificacion usando arboles de decision
Clasificacion usando arboles de decision
• Decidir si ir a un restaurante desde el trabajo• Tipo de cocina
• Categorica• Discreta
• Distancia a la que se encuentra
• Numerica• Continua
• Admite Cheque Gourmet
• Booleano
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
〈italiana,0.5 km,sı〉
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
〈mercado,2 km,no〉
Clasificacion usando arboles de decision
Comida
italiana mercado asiatica
< 1kmnosı ≥ 1km
Distancia
Sı No
SıCheque Gourmet
SıNo
〈asiatica,2 km,sı〉
Parte II
Aprendizaje de arboles de decision
Aprendizaje de arboles de decision
• Conjunto de entrenamiento: S• Criterio de separacion: S =⇒ S1, . . . ,Sr
S
Atributo
v1 vr
S1 Sr
Aprendizaje de arboles de decision
• Conjunto de entrenamiento: S• Criterio de separacion: S =⇒ S1, . . . ,Sr
S
Atributo
v1 vr
S1 Sr
en
vi
SiCategorıa
Si
Aprendizaje de arboles de decision
• Conjunto de entrenamiento: S• Criterio de separacion: S =⇒ S1, . . . ,Sr
S
Atributo
v1 vr
S1 Sr
vi
Si = ∅Categorıa
mayoritaria enS
Parte III
Criterios de separacion
Criterios de separacion
• Conjunto de instancias: S• Criterio de separacion: S =⇒ S1, . . . ,Sr
• Tienen en cuenta un unico atributo• Atributos discretos: Identificar su valor• Atributos continuos: Establecer una cota
• Cotas: Cambios en el valor de clasificacion
Criterios de separacion
• Conjunto de instancias: S• Criterio de separacion: S =⇒ S1, . . . ,Sr• Medida del grado de dispersion: µ(S)
• Minimizarr∑
i=1
|Si ||S|
µ(Si )
Parte IV
Cuantificando el grado de dispersion I
Cuantificando el grado de dispersion I
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Sp = {e ∈ S tales que e ∈ Cp}• Tasa de error
• Clase mayoritaria en S: Cp• Medida del grado de dispersion en S:
T (S) = 1− |Sp||S|
Cuantificando el grado de dispersion I
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Sp = {e ∈ S tales que e ∈ Cp}• Indice de Gini
• Distribucion de clases en S: p1, . . . , pk
pj =|Sj ||S|
• Medida del grado de dispersion en S:
G (S) =k∑
j=1
pj(1− pj)
Cuantificando el grado de dispersion I
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Sp = {e ∈ S tales que e ∈ Cp}• Indice de Gini
• Distribucion de clases en S: p1, . . . , pk
pj =|Sj ||S|
• Medida del grado de dispersion en S:
G (S) =k∑
j=1
pj(1− pj)
Cuantificando el grado de dispersion I
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Sp = {e ∈ S tales que e ∈ Cp}• Indice de Gini
• Distribucion de clases en S: p1, . . . , pk
pj =|Sj ||S|
• Medida del grado de dispersion en S:
G (S) =k∑
j=1
pj −k∑
j=1
pj2
Cuantificando el grado de dispersion I
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Sp = {e ∈ S tales que e ∈ Cp}• Indice de Gini
• Distribucion de clases en S: p1, . . . , pk
pj =|Sj ||S|
• Medida del grado de dispersion en S:
G (S) = 1−k∑
j=1
pj2
Parte V
Cuantificando el grado de dispersion II
Cuantificando el grado de dispersion II
• Conjunto de instancias: S• Categorıas de clasificacion: C1, . . . , Ck• Distribucion de clases en S: p1, . . . , pk• Grado de entropıa
• Medida del grado de dispersion en S:
E (S) = −k∑
j=1pj 6=0
pj log2(pj)
Cuantificando el grado de dispersion II
• Conjunto de instancias: S• Criterio de separacion: S =⇒ S1, . . . ,Sr• Ganancia de informacion
• Reduccion en la entropıa:
E (S)−r∑
i=1
|Si ||S|
E (Si )
• Maximizar la ganancia de informacion
Parte VI
Algoritmos de aprendizaje
Algoritmos de aprendizaje
• ID3• Atributos categoricos• Minimiza el grado de entropıa
• C4.5 (Sucesor de ID3)• Atributos categoricos y numericos• Instancias con atributos indefinidos• Maximiza la ganancia de informacion
• CART• Atributos numericos• Implementado en scikit-learn
CART
• CART: Classification and Regression Trees
• Solo atributos numericos• Criterio de separacion:
• Para cada atributo considera todos los posibles valores• Nodos binarios (dos ramas)• Cada nodo esta representado por un atributo y un valor de
corte• El mismo atributo puede aparecer en mas de un nodo
• Medida de dispersion o impureza:• Gini (por defecto)• Ganancia de la informacion
• Decision final:• Clasificacion: votacion• Regresion: media
CART
Parte VII
Sobreajuste
Sobreajuste
• Objetivo del aprendizaje:• Obtener patrones extrapolables a situaciones desconocidas
• Aprendizaje con sobreajuste:• No se han aprendido patrones generales• Se han memorizado instancias• Conocimiento no extrapolable
• Sobreajuste en arboles de decision
• Arboles con complejidad (o profundidad) elevadas.
• Medidas para reducir el sobreajuste• Reducir la complejidad del modelo• Ensamble de clasificadores (Ensemble learning)
Sobreajuste
Sobreajuste
Parte VIII
Reduciendo la complejidad: prepoda
Reduciendo la complejidad: prepoda
• Conjuntos de instancias demasiado pequenos o sesgados
• Podado durante el aprendizaje
• Criterios de separacion innecesarios
• La proporcion de la clase dominante es muy alta
• La proporcion de ejemplos con respecto al total es muy baja
CART - prepoda y sobreajuste
• Nodos binarios
• Mas de un nodo por atributo• Sin limitar el crecimiento del arbol (la complejidad del
modelo):• Riesgo de sobreajuste muy elevado
• Metodos frecuentes de prepoda:• Limitar la profundidad• Limitar el numero de ejemplos en una hoja• Limitar el numero de hojas del arbol• Limitar el numero de ejemplos mınimos necesarios para
ramificar
Parte IX
Reduciendo el sobreajuste: postpoda
Reduciendo el sobreajuste: postpoda
• Podado a posteriori• Arbol de decision aprendido• Conjunto de validacion
• Repetir mientras haya mejoras• Reemplazar los nodos internos por
nodos hoja• Rendimiento en el conjunto de validacion• Continuar con el arbol que mejora el rendimiento
• En Scikit-learn no disponemos de metodos de postpoda.
Parte X
Ensemble learning
Analogıa en Psicologıa - Sabidurıa de las masas
• Sabidurıa de las masas• Funciona solo ante determinadas condiciones
• Poblacion heterogenea:• Expertos• Conocimiento medio• Desconocimiento total
• Opinion promedio de alta precision
Ensemble learning
Ensemble learning
• Requisitos:• Poblacion de modelos heterogenea• Algoritmos sencillos
• Diversificacion de modelos:• Diversicacion de los algoritmos• Diversificacion de los datos
• Tecnicas de ensamblado• Bagging• Boosting• Stacking
Ensamble de arboles: Random forest
• Leo Breiman (2001)
• Bagging: Bootstrap aggregating
• Conjunto de CARTs• CARTs completamente desarrollados
• Permitimos (y queremos) sobreajuste
• Diversificacion: anade aleatoriedad en los datos• Dos nuevos conceptos:
• Bootstrapping• Random CART
• Idea intuitiva:• Crear individuos expertos solo en una parte del problema• Tomar la opinion mayoritaria como cierta
Bootstrapping
• Metodo de remuestreo estadıstico
• Bradley Efron (1979)
• Permite aproximar la distribucion de la poblacion original(normalmente desconocida)• Idea:
• Generar nuevos conjuntos de datos a partir del original• Tamano igual o inferior• Muestreo con reemplazamiento• Para un numero elevado de muestras, el promedio de las
muestras se comporta como el promedio de la poblacionoriginal
Bootstrapping
Bootstrapping
• To lift himself up by his bootstraps
Random CART
• Cada nodo (corte binario) solo puede usar un subconjunto delos atributos• Valores tıpicos:
• round(sqrt(D))• round(log2(x))
• Esta idea forma parte de los denominados Random SubspaceMethods
• No se establecen lımites al crecimiento• Reduce el tiempo de computacion
• Menor tiempo de computo al elegir el mejor corte
Random Forest
• Obtencion de nuevos conjuntos de entranamiento mediantebootstrapping• Objetivo: Evitar el sobrejuste, especialmente sobre instancias
’raras’
• Entrenar un Random Cart sobre cada uno de estos conjuntosde entrenamiento• Prediccion para una nueva instancia de datos:
• Realizar una prediccion sobre la nueva instancia de datos concada arbol
• La prediccion final: la mas votada
• Idea intuitiva: cada rCART (weak learner) sacara el maximopartido de una parte de los datos. La votacion mayoritariaaportara una prediccion mas robusta (elimina ruido)
Gradient boosting
• Jerome H. Friedman (1999)
• Ensamblado de arboles mediante Boosting• Boosting:
• Ensamblado secuencial de modelos• Idea: Con cada nuevo modelo intentamos pulir las deficiencias
de los anteriores
• Gradient boosted regression trees:• Se generan arboles de decision de forma secuencial• Cada arbol intenta reducir el error cometido por los anteriores• En cada iteracion (construccion de un nuevo arbol)
priorizamos las instancias peor clasificadas por los anteriores
Gradient boosting - Algoritmo
• Partimos de un modelo inicial o valor constante• En cada Iteracion:
• Calculamos el residuo de la respuesta (el error cometido encada instancia)
• Entrenamos un nuevo arbol usando el residuo como respuesta• Optimizamos el peso del nuevo arbol (arbol completo u hojas)
• Controlando la complejidad:• Tasa de aprendizaje (learning rate)• Profundidad
• Arboles muy sencillos. Limitamos mucho la profundidad (e.g.3-5)
Conclusiones
• CART• Rapidos y sencillos. Facilitan la interpretabilidad• No generalizan bien. Tienden al sobreajuste
• Random Forests• Robustos ante sobreajuste, buena capacidad de generalizacion• Configuracion de hiperparametros sencilla• Paralelismo trivial (arboles independientes)
• Gradient Boosting• Puede conseguir algo mas de precision que Random Forests• Configuracion de hiperparametros muy sensible• Tienen cierto riesgo de sobreajuste
Parte XI
Modelos basados en arboles en
scikit-learn
Arboles de decision
• Tipo de problema• DecisionTreeClassifier• DecisionTreeRegressor
• Medidas de dispersion• Clasificacion: gini (por defecto) o entropy• Regresion: mse (por defecto) o mae
• Control de complejidad:• max depth• max leaf nodes• min samples leaf• min samples split
Random Forest
• Tipo de problema• RandomForestClassifier• RandomForestRegressor
• Medidas de dispersion• Clasificacion: gini (por defecto) o entropy• Regresion: mse (por defecto) o mae
• Principales parametros a ajustar:• n estimators• max features• max depth• max features
Gradient boosting
• Tipo de problema• GradientBoostingClassifier• GradientBoostingRegressor
• Medidas de dispersion• Clasificacion: gini (por defecto) o entropy• Regresion: mse (por defecto) o mae
• Ademas proporcionamos una funcion de perdida (lossfunction) a optimizar• Principales parametros a ajustar:
• n estimators• learning rate• max depth
Parte XII
Bibliografıa
Bibliografıa
• Charu C. AggarwalData Mining: The Textbook (Springer, 2015)• Cap. 10: “Data Classification”
• Andreas C. Muller y Sarah GuidoIntroduction to Machine Learning with Python (O’Really,2017)• Cap. 2: “Supervised Learning”