Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA Y CIENCIAS
Aprendizaje Estadístico
Raúl Pezoa
Aprendizaje Estadístico
Supongamos que tenemos una base con datos con ventas y el monto
destinado a promoción en radio, TV y periódicos.
1 head ( A d v e r t i s i n g )
2 # TV r a d i o newspaper s a l e s
3 # 1 230.1 37.8 69.2 2 2 . 1
4 #2 44.5 39.3 45.1 10.4
5 #3 1 7 . 2 45.9 69.3 9.3
6 #4 1 5 1 . 5 41.3 58.5 18.5
7 #5 180.8 10.8 58.4 12.9
8 #6 8.7 48.9 75.0 7.2
Y = ƒ (X ) + ϵ
]︀2
E(Y − Ŷ )2 = E ƒ (X ) + ϵ − ƒ̂ (X )
[︀
]︀2
= ƒ (X ) − ƒ̂ (X ) + Var(ϵ)
[︀
⏟ ⏞ ⏟ ⏞
Reducible Irreducible
donde
– Var(ƒ̂ (0 )): Varianza del estimador de ƒ̂ cuando es estimado
sobre diferentes sets de entrenamiento. Métodos muy flexibles
o con muchos grados de libertad tienen alta varianza.
– Bias(ƒ̂ (0 )): Error introducido por una posible simplificación en
la forma funcional de ƒ , por e.g. asumirla lineal. Métodos muy
flexibles o con muchos grados de libertad tienen poco bias.
Descomponiendo Error
Y qué pasa con clasificación?
⎧
⎨1 si y 6= ŷ
con (y 6= ŷ ) =
⎩0 si y = ŷ
• Qué pasa si hay alguna clase muy minoritaria?
Validación
Validación I
• Hemos hablado sobre problema con ajustar y evaluar modelo
sobre un único conjunto.
Y = β0 + β1 X + ϵ
RSS = e2 + . . . + e2
1 n
Regresión Lineal Simple II
⎧
⎨1 si = B
2 =
⎩0 si 6= B
y modelo queda
⎧
⎨β 0 + β 1 + ϵ si = A
⎪
⎪
y = β0 + β1 1 + β2 2 + ϵ = β0 + β2 + ϵ si = B
⎪
β0 + ϵ si = C
⎪
⎩
Extensiones III
Es decir, agregamos interceptos específicos para dos grupos. En
general, siempre habrá n − 1 interceptos, con n número de
niveles. Al grupo sin intercepto lo llamamos nivel basal.
• Interacciones Consideremos el modelo estándar de dos varia-
bles
Y = β0 + β1 X1 + β2 X2 + ϵ
Y = β0 + β1 X1 + β2 X2 + β3 X1 X2 + ϵ
= β0 + (β1 + β3 X2 ) X1 + β2 X2 + ϵ
Extensiones IV
Y = β0 + β1 X1 + β2 X 2 + ϵ
1
1
Cp = (RSS + 2dσ̂ 2 )
n
Indicadores de bondad de ajuste II
1
BIC = (RSS + log(n)dσ̂ 2 )
n
dado que log(n) > 2 para n > 7, casi siempre BC penaliza
más que Cp y AC el número de predictores, por lo que selec-
ciona modelos más pequeños.
• Finalmente, definimos el R2 ajustado, que corrige el hecho que
R2 siempre aumenta con número de variables
RSS/ (n − d − 1)
R2 ajustado = 1 −
TSS/ (n − 1)
Una posible forma : Elegir el mejor subset I
1 d f <− f r e a d ( " Wage . c s v " , sep = " ; " , dec = " , " )
2
3 l i b r a r y ( leaps )
4 r e g f i t . f u l l = r e g s u b s e t s ( wage∼. , d a t a = df , nvmax = 1 6 )
5 r e g . summary <− summary ( r e g f i t . f u l l )
6
7 # G r a f i c a m o s e v o l u c i o n cp , b i c y r 2 a j u s t a d o segun numero de v a r i a b l e s
8 l i b r a r y ( ggplot2 )
9 q p l o t ( 1 : 1 6 , r e g . summary $ cp )
10 q p l o t ( 1 : 1 6 , r e g . summary $ b i c )
11 q p l o t ( 1 : 1 6 , r e g . summary $ a d j r 2 )
12
13 #Vemos g r a f i c a m e n t e c u a l e s e l mejor modelo segun cada i n d i c a d o r
14 plot ( r e g f i t . full , scale =" adjr2 " )
15 p l o t ( r e g f i t . f u l l , s c a l e = " Cp " )
16 plot ( r e g f i t . full , scale =" bic " )
Una posible forma: Forward Stepwise Selection I
1 l i b r a r y ( leaps )
2 r e g f i t . fw = r e g s u b s e t s ( wage∼. , d a t a = df , method = " f o r w a r d " , nvmax = 1 6 )
3 r e g . summary <− summary ( r e g f i t . fw )
4
5 # G r a f i c a m o s e v o l u c i o n cp , b i c y r 2 a j u s t a d o segun numero de v a r i a b l e s
6 l i b r a r y ( ggplot2 )
7 q p l o t ( 1 : 1 6 , r e g . summary $ cp )
8 q p l o t ( 1 : 1 6 , r e g . summary $ b i c )
9 q p l o t ( 1 : 1 6 , r e g . summary $ a d j r 2 )
10
11 #Vemos g r a f i c a m e n t e c u a l e s e l mejor modelo segun cada i n d i c a d o r
12 p l o t ( r e g f i t . fw , s c a l e = " a d j r 2 " )
13 p l o t ( r e g f i t . fw , s c a l e = " Cp " )
14 p l o t ( r e g f i t . fw , s c a l e = " b i c " )
Una posible forma: Backward Stepwise Selection I
1 l i b r a r y ( leaps )
2 r e g f i t . bw= r e g s u b s e t s ( wage∼. , d a t a = df , method = " backward " , nvmax = 1 6 )
3 r e g . summary <− summary ( r e g f i t . bw )
4
5 # G r a f i c a m o s e v o l u c i o n cp , b i c y r 2 a j u s t a d o segun numero de v a r i a b l e s
6 l i b r a r y ( ggplot2 )
7 q p l o t ( 1 : 1 6 , r e g . summary $ cp )
8 q p l o t ( 1 : 1 6 , r e g . summary $ b i c )
9 q p l o t ( 1 : 1 6 , r e g . summary $ a d j r 2 )
10
11 #Vemos g r a f i c a m e n t e c u a l e s e l mejor modelo segun cada i n d i c a d o r
12 p l o t ( r e g f i t . bw , s c a l e = " a d j r 2 " )
13 p l o t ( r e g f i t . bw , s c a l e = " Cp " )
14 p l o t ( r e g f i t . bw , s c a l e = " b i c " )
Enfoques más modernos I
k − k
̃k =
sd(k )
1 l i b r a r y ( glmnet )
2 d f <− f r e a d ( " c r e d i t . c s v " , sep = " ; " , dec = " , " )
3 x = model . m a t r i x ( L i m i t∼. , d a t a = d f ) [ , − 1 ]
4 y= df $ L i m i t
5
6 # Por defecto , glmnet n o r m a l i z a v a r i a b l e s
7 # p a r a c a m b i a r e s t o , a g r e g a r s t a n d a r d i z e = FALSE
8 modelo . r i d g e = g l m n e t ( x , y , a l p h a =0 , nlambda =200)
9 p l o t ( modelo . r i d g e , x v a r = " lambda " , l a b e l = T )
10
11 # modelo . r i d g e almacena l o s c o e f p a r a cada uno de
12 # l o s p o s i b l e s lambdas , l o s i g u i e n t e e s p a r a o b t e n e r
13 # l o s c o e f p a r a e l p r i m e r lambda
14 c o e f ( modelo . r i d g e ) [ , 1 ]
15
16 # v a l i d a m o s p a r a v e r c u a l e s e l mejor lambda
17 c v . o u t = c v . g l m n e t ( x , y , a l p h a =0 , nlambda =200)
18 p l o t ( cv . out )
19 mejorlambda = c v . o u t $ lambda . min
20 coef ( cv . out )
LASSO I
1 l i b r a r y ( glmnet )
2 l i b r a r y ( data . t a b l e )
3 d f <− f r e a d ( " c r e d i t . c s v " , sep = " ; " , dec = " , " )
4 x = model . m a t r i x ( L i m i t∼. , d a t a = d f ) [ , − 1 ]
5 y= df $ L i m i t
6
7 # Por defecto , glmnet n o r m a l i z a v a r i a b l e s
8 # p a r a c a m b i a r e s t o , a g r e g a r s t a n d a r d i z e = FALSE
9 modelo . l a s s o = g l m n e t ( x , y , a l p h a = 1 , nlambda =200)
10 p l o t ( modelo . l a s s o , x v a r = " lambda " , l a b e l = T )
11
12 # v a l i d a m o s p a r a v e r c u a l e s e l mejor lambda
13 c v . o u t = c v . g l m n e t ( x , y , a l p h a = 1 , nlambda =200)
14 p l o t ( cv . out )
15 mejorlambda = c v . o u t $ lambda . min
16 coef ( cv . out )
Clasificación
Regresiones Logísticas
Clasificación
• Una regresión lineal como las vistas asume que la variable de-
pendiente Y es cuantitativa.
• Sin embargos, en muchos contextos, la variable a predecir puede
ser cualitativa:
– Un paciente llega a un hospital con un set de síntomas, ¿qué
nivel de riesgo presenta?
– Un sitio web de un banco debe decidir si una transacción es frau-
dulenta o no, basado en, por ejemplo, transacciones históricas.
• Estos problemas son de clasificación, nos olvidamos de regre-
sión.
¿Por qué no usar regresión lineal? I
η = β0 + β1 X
1 1
p(X ) = =
1 + e− η 1 + e − β0 − β1 X
Regresión Logística III
p(X )
(︃ )︃
log = β0 + β1 X
1 − p(X )
1 l i b r a r y ( data . t a b l e )
2 e n t r <− f r e a d ( " D e t e c c i o n F r a u d e . c s v " , sep = " ; " , dec = " , " )
3
4 r e g l o g <− glm ( f r a u d e∼monto , d a t a = e n t r , f a m i l y = b i n o m i a l ( ) )
5 summary ( r e g l o g )
6
7 # probabilidades estimadas
8 e n t r $ p r o b e s t i m a d a s <− r e g l o g $ f i t t e d . v a l u e s
9 # probamos con una p r o b a b i l i d a d de c o r t e 0 . 5
10 e n t r $ p r e d i c c i o n <− i f e l s e ( e n t r $ p r o b e s t i m a d a s > = 0 . 5 , 1 , 0 )
11
12 # p o r c e n t a j e de a c i e r t o ( a c c u r a c y )
13 l e n g t h ( which ( e n t r $ f r a u d e == e n t r $ p r e d i c c i o n ) ) * 100 / nrow ( e n t r )
14
15 # p e r o hay mas t i p o s de e r r o r e s
16 t a b l e ( pred = e n t r $ p r e d i c c i o n , t r u e = e n t r $ f r a u d e )
Tipos de predicciones I
0.75
Indicador
Valor
F1
0.50
Sens
Spec
0.25
0.00
2
F1 =
1 1
+
Sensibilidad Especificidad
Selección de Variables en RL
– Early Stopping
K-Nearest Neighbors (KNN)
KNN I
• Como vimos para regresión logística, la idea es en general esti-
mar la probabilidad de ocurrencia Prob(Y = 1|X ) = p(X ).
• Posteriormente, definiríamos una regla de clasificación, i.e. se
predice Y = 1 si p(X ) > p0 .
• La dificultad radica, claramente, en estimar p(X ).
• Una forma natural, pero no paramétrica de hacerlo es a través
de los K vecinos más cercanos.
KNN II
cls
c
y
3 v
4 5 6 7 8
x
K=1
Evolución frontera con K
cls
c
y
3 v
4 5 6 7 8
x
K=3
Evolución frontera con K
cls
c
y
3 v
4 5 6 7 8
x
K = 40
Evolución frontera con K
• Pareciera por tanto, que más es mejor casi siempre. Pero es-
tamos olvidando algo: ¿con cuántos datos está ajustando el
The Curse of Dimesionality
• Método no paramétrico.
• En este caso, no estimamos probabilidades (en principio), direc-
tamente declaramos una clase.
• ¿Cómo llegamos a dicha predicción? A través de decisiones
binarias.
Árboles de Decisión
¿Es un cliente
usual?
Sí No
¿Cuántos productos
¿Hora de la visita?
ha visto?
¿Lleva más de 3
¿Duración de visita? productos en el ¿Duración de visita? ¿Hora de la visita?
carro?
... ...
¿Cómo funcionan?
Em = 1 − ḿx(ρmk )
k
Nzq Nder
G (j, s) = (Dp ) − (Dzq ) − (Dder )
Np Np
con
– Dp : Datos del nodo padre.
– Dzq , Dder : Datos del split izquierdo y derecho respectivamente.
– Np , Nzq , Nder : Número de datos.
– : E o G.
Classification Error vs Gini III
1 100 1 100
G = − · − ·0
4 200 2 200
=0
Classification Error vs Gini V
100 100
G = 0.375 − · 0.5 − ·0
200 200
= 0.125
¿Cómo lo ajustamos? I
1 l i b r a r y ( randomForest )
2
3 b a g g i n g = r a n d o m F o r e s t ( S a l e s∼. , d a t a = df , mtry = f l o o r ( s q r t ( n c o l ( d f ) ) ) , i m p o r t a n c e = T )
4 bagging
5
6 #o s i m p l e m e n t e
7 b a g g i n g = r a n d o m F o r e s t ( S a l e s∼. , d a t a = df , i m p o r t a n c e = T )
8 bagging
Boosting
• Otro método de ensamble, parecido a bagging.
donde α es
α = ln((1 − e )/ e )
ep(α ) = (1 − e )/ e
B
∑︁
V1 = α (C (j ) = 1)
=1
β0 + β1 + β2 y = 0
β0 + β1 + β2 y + β3 z = 0
β0 + β1 X1 + . . . + βp Xp > 0
β0 + β1 X1 + . . . + βp Xp < 0
Hiperplano III
Clasificación Usando Hiperplano I
o equivalentemente
ḿx M
β0 ,...,βp
p
∑︁
s.a. β2 = 1
j
j=0
y β0 + β1 1 + . . . + βp p ≥ M ∀
(︀ )︀
Caso No Separable I
ϵ ≥ 0
– Lineal
– Radial, K = exp(− γ(|| − b||2 )
– Polinomial K = (γ · b + 1)q , con q el grado
– Sigmoidal K = tnh(γ · b + 1)
Support Vector Machine III
¿Intuición sobre γ? I
γ = 1. Fuente: chrisalbon.com
Evolución Frontera con γ III
C = 1. Fuente: chrisalbon.com
Evolución Frontera con C II