Académique Documents
Professionnel Documents
Culture Documents
Índice
Introducción
Métricas
Validación de modelos
Optimización de parámetros
Introducción Métricas Validación de modelos Optimización de parámetros
Introducción
Introducción Métricas Validación de modelos Optimización de parámetros
Scikit learn
Scikit learn
1 ...
2 ...
3 ...
4 # l c . f i t (X . Gender )
5 # e n c o d i n g = l c . t r a n s f o r m (X . Gender )
6
7 e n c o d i n g = l c . f i t t r a n s f o r m (X . Gender )
8
9 ...
10 ...
11 ...
12
13 $ C l a s e s : [ ’ F ’ ’M’ ]
14 $ Valores o r i g i n a l e s : [ ’M’ ’ F ’ ’ F ’ . . . , ’ F ’ ’M’ ’M’ ]
15 $ Valores codificados : [1 0 0 . . . , 0 1 1]
Introducción Métricas Validación de modelos Optimización de parámetros
Métricas
Introducción Métricas Validación de modelos Optimización de parámetros
Métricas en scikit-learn
• Cuando estamos ajustando un modelo es necesario establecer
una métrica para determina como de ”bueno es nuestro
modelo”.
• La métrica dependerá del problema:
• Naturaleza de este: clasificación, regresión, clustering, ranking,
...
• Y del uso futuro que se le vaya a dar al modelo.
• En un modelo para determinar si un paciente debe ser operado
de urgencia es muy imporante reducir el falsos positivos (sobre
todo si dicha operación es de alto riesgo).
• En un modelo que determina que objetos hay dentro de un
imagen será interesante tener una probabilidad para cada
objeto.
• Diferentes métricas influyen en la importancia que el modelo
da a los atributos.
• También nos ayuda a parametrizar el modelo de la manera
más conveniente.
Introducción Métricas Validación de modelos Optimización de parámetros
Accuracy
#prediccionescorrectas
Accuracy = (1)
#totaldemuestras
TP + TN TP + TN
Accuracy = = (2)
TP + TN + FP + FN N
• Es la metrica más usada para clasificación y la más usada
incorrectamente.
• Solo útil cuando tenemos el mismo número de observaciones
de ambas clases
• y todas las predicciones sobre las clases son igualmente de
importantes.
Introducción Métricas Validación de modelos Optimización de parámetros
Accuracy
Accuracy
1 from s k l e a r n . m e t r i c s \
2 import accuracy score
3
4 acc = a c c u r a c y s c o r e ( y , e s t i m a t o r . p r e d i c t (X) )
5 p r i n t ( acc )
6
7 $ 0.56871443533484989
8
9 TP FP = a c c u r a c y s c o r e ( y , e s t i m a t o r . p r e d i c t (X) ,
n o r m a l i z e=F a l s e )
10 p r i n t ( TP FP )
11
12 $ 170504
Introducción Métricas Validación de modelos Optimización de parámetros
Accuracy
Accuracy Paradox
9850 + 0
Accuracy = = 0.98.5 = 98.5% (5)
9850 + 150
• Este modelo tiene una mejor medida de exactitud, sin
embargo, es un modelo inútil.
• ¿Por qué el accuracy general no es una buena métrica en
casos de datos desbalanceados?
• Las clases con mayor número de muestras dominarán el
resultado del cálculo de la métrica.
Introducción Métricas Validación de modelos Optimización de parámetros
Matriz de confusión
Matriz de confusión
1 from s k l e a r n . m e t r i c s i m p o r t c o n f u s i o n m a t r i x
2 m = c o n f u s i o n m a t r i x ( y , e s t i m a t o r . p r e d i c t (X) )
3
4 p r i n t (m)
5
6 $ a r r a y ( [ [ 43693 , 46993] ,
7 [ 82309 , 1 2 6 8 1 1 ] ] )
Introducción Métricas Validación de modelos Optimización de parámetros
Matriz de confusión
1 from s k l e a r n . m e t r i c s i m p o r t c o n f u s i o n m a t r i x
2 m = c o n f u s i o n m a t r i x ( y , e s t i m a t o r . p r e d i c t (X) )
3
4 # c r e a m o s un d a t a f r a m e con l a i n f o m a c i o n l a m a t r i z de
5 # c o n f u n s i ó n
6 m = pd . DataFrame ( d a t a={ ’N ’ : m. T [ 0 ] , ’P ’ : m. T [ 1 ] ,
7 ’ i n d e x ’ : [ ’N ’ , ’P ’ ] } )
8 m = m. s e t i n d e x (m[ ’ i n d e x ’ ] . v a l u e s )
9
10 d e l m[ ’ i n d e x ’ ]
11
12 p r i n t (m)
Introducción Métricas Validación de modelos Optimización de parámetros
Log-Loss
Log-Loss
1 from s k l e a r n . m e t r i c s i m p o r t l o g l o s s
2 l l = log loss (y , e s t i m a t o r . p r e d i c t p r o b a (X) )
3
4 print ( l l )
5
6 $ 1.8222485483381812
Introducción Métricas Validación de modelos Optimización de parámetros
Precision - Recall
F-Measure
precision ∗ recall
F1 = 2 ∗ (9)
precision + recall
• Se busca que esta métrica de un valor alto solo cuando la
precision y el recall sean altos.
Introducción Métricas Validación de modelos Optimización de parámetros
Metricas de ranking
Informe
1 from s k l e a r n . m e t r i c s i m p o r t c l a s s i f i c a t i o n r e p o r t
2 r e p o r t = c l a s s i f i c a t i o n r e p o r t ( y , e s t i m a t o r . p r e d i c t (X) )
3
4 print ( report )
5
6 $ precision recall f 1 −s c o r e support
7 $
8 $ 0 0.35 0.48 0.40 90686
9 $ 1 0.73 0.61 0.66 209120
10 $
11 $ avg / t o t a l 0.61 0.57 0.58 299806
Introducción Métricas Validación de modelos Optimización de parámetros
Resumen
Pred P Pred N
TP FN
Verd. P TP FP TPR =
TP + FN
FNR =
TP + FN
FP TN
Verd. N FN TN FPR =
FP + TN
FNR =
FP + TN
TP FN TPR
PPV = FOR = LR+ = LR+
TP + FP FN + TN FPR DOR =
FP TN FNR LR−
FDR = NPV = LR− =
FP + TP TN + FN TNR
Espacio ROC
• ROC (Receiver Operating Characteristic). Gráfico
bidimensional en el cual representamos en el eje Y el TPR y
en el eje X el FPR.
• Representa la relación entre beneficio (TPR) y coste (FPR).
ESPACIO ROC
PERFECTO
MEJOR
PEOR
Introducción Métricas Validación de modelos Optimización de parámetros
Espacio ROC
• Puntos importantes:
• (0,0): Representa un clasificador que nunca da como salida
una respuesta positiva. Falla en todos los positivos y acierta en
todos los negativos.
• (1,1): Representa el caso contrario. Siempre da una respuesta
positiva. Acierta todos los casos positivos, pero falla en todos
los negativos.
• (1,0): Representa a un clasificador perfecto. Acierta todos los
casos positivos y los negativos.
ESPACIO ROC
PERFECTO
MEJOR
PEOR
Introducción Métricas Validación de modelos Optimización de parámetros
Espacio ROC
• Un clasificador C1 es mejor que C2 si C1 está más cerca de
(1,0) que C2.
• Los clasificadores cerca del eje Y pueden ser vistos como
clasificadores conservativos. Solo dan una respuesta positiva
cuando tienen una fuerte evidencia de ello.
• Los clasificadores localizados en la zona superior derecha
pueden ser vistos como liberales. Necesitan una mı́nima
evidencia para clasificar positivamente una muestra.
ESPACIO ROC
PERFECTO
MEJOR
PEOR
Introducción Métricas Validación de modelos Optimización de parámetros
Espacio ROC
• La diagonal (x=y) representa una estrategia aleatoria. Por
ejemplo:
• Un clasificador que clasifique como positiva la mitad de las
muestras aleatoriamente se espera que clasifique correctamente
el 50% de las muestras positivas por lo que estará en el punto
(0.5, 0.5).
• Si clasifica aleatoriamente como positivas el 80% de las
muestras deberá encontrarse en el punto (0.8, 0.8).
ESPACIO ROC
PERFECTO
MEJOR
PEOR
Espacio ROC
PERFECTO
MEJOR
PEOR
Curva ROC
Validación de modelos
Introducción Métricas Validación de modelos Optimización de parámetros
Entrenamiento y validación
1 from s k l e a r n . m o d e l s e l e c t i o n i m p o r t
train test split
2
3 X train , X test , y train , y t e s t = \
4 t r a i n t e s t s p l i t (X , y , t e s t s i z e =0.33)
Dilema sesgo-varianza
• El error que comete nuestro modelo se puede descomponer en
dos tipos de errores:
• Error de sesgo: Es la media del error entre el valor predicho
por nuestro modelo y el valor real. Para conseguir dicha media
serı́a necesario entrenar el mismo modelo N veces con
diferentes datos. Medimos la generalidad del modelo respecto
a los datos.
• Error de varianza: La variabilidad en la predicción para una
muestra concreta. Medimos la estabilidad del modelo.
Introducción Métricas Validación de modelos Optimización de parámetros
Dilema sesgo-varianza
Validación cruzada
• ¿Como podemos entrenar nuestro modelo con diferentes
datos? Es lo que se conoce como validación cruzada:
Conjunto de validación
Conjunto de entrenamiento
Accuracy:
Validación cruzada
Validación cruzada
Validación cruzada
1 from s k l e a r n . m o d e l s e l e c t i o n i m p o r t c r o s s v a l s c o r e
2 from s k l e a r n . m o d e l s e l e c t i o n i m p o r t KFold
3
4 k f = KFold ( n s p l i t s =5)
5
6 p r i n t ( c r o s s v a l s c o r e ( e s t i m a t o r , X , y , c v=k f ) )
7 [ 0.33150734 0.08022311 0.03531764 0.05323443
0.123233]
Introducción Métricas Validación de modelos Optimización de parámetros
Optimización de parámetros
Introducción Métricas Validación de modelos Optimización de parámetros
Selección de modelos
Selección de modelos
1 from s k l e a r n . m o d e l s e l e c t i o n i m p o r t G r i d S e a r c h C V
2
3 e s t i m a t o r = L o g i s t i c R e g r e s s i o n ( f i t i n t e r c e p t =True , C
=10 , t o l =0.001)
4
5 p a r a m e t e r s = { ’C ’ : [ 1 , 1 0 , 2 0 ] , ’ t o l ’ : [ 0 . 1 , 0 . 0 1 ] }
6
7 c l f = G r i d S e a r c h C V ( e s t i m a t o r , p a r a m e t e r s , c v =5)
8 c l f . f i t (X , y )
9
10 print ( clf . grid scores )
11
12 [ mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 1 , ’ t o l ’ : 0 . 1 } ,
13 mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 1 , ’ t o l ’ : 0 . 0 1 } ,
14 mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 1 0 , ’ t o l ’ : 0 . 1 } ,
15 mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 1 0 , ’ t o l ’ : 0 . 0 1 } ,
16 mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 2 0 , ’ t o l ’ : 0 . 1 } ,
17 mean : 0 . 6 9 7 5 2 , std :0.00000 , params : { ’C ’ : 2 0 , ’ t o l ’ : 0 . 0 1 } ]
Introducción Métricas Validación de modelos Optimización de parámetros
Pipelines
Introducción Métricas Validación de modelos Optimización de parámetros
Pipelines