Vous êtes sur la page 1sur 53

Introducción Métricas Validación de modelos Optimización de parámetros

Introducción a Scikit Learn

David Solı́s Martı́n

Dpto. Ciencias de la Computación e Inteligencia Artificial

Ampliación de Inteligencia Artificial, 2017-2018


Introducción Métricas Validación de modelos Optimización de parámetros

Í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

• Es una librerı́a / framework desarrollada en Python y C++


orientada al aprendizaje automático (machine learning).
• Un poco de historia
• Inicialmente desarrollada por David Cournapeau durante el
Google summer code en 2007
• Later Matthieu Brucher se une al proyecto y la usa como parte
de su tésis.
• En 2010 INRIA (Institut national de recherche en informatique
et en automatique) lidera el proyecto y publica la primera
release.
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn

• Muy bien estructurado.


• Otras librerı́as se basan en dicha estructura para que estas
pueden usarse junto a sklearn.
• Muy bien documentado. Incluye referencias a artı́culos en las
que se basa las implementaciones.
• Tiene un comunidad de desarrolladores muy activa.
• Posee un colección muy amplia de algoritmos.

Nota: Para la lectura, escritura y manipulaciones genéricas


de los conjuntos de datos usar pandas, numpy y scipy
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Estructura

Procesado Ingeniería Puesta


Agregación Entrenamiento
de de de y en
Datos Datos Atributos evaluación producción
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Estructura

• Algunos de los paquetes más importantes:


• linear model, ensemble, neighbors, neural networks:
Algoritmos agrupados según su naturaleza.
• metrics. Con un conjunto de funciones para evaluar la calidad
de nuestros modelos. Metricas en función del tipo de
problema: clustering, clasificación, regresión, ...
• model selection. Funciones orientadas a crear divisiones de
los datos en entrenamiento y validación para controlar el
sobreajuste.
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Estructura

• Hay dos tipos de clases principales:


• Las que derivan de TransformerMixin. Clases que manipulan
los datos, para realizar una transformación o generar nuevos
atributos.
• fit. Estas clases también se entrenan previamente.
• transform. Realizar la transformación. Recibe el conjunto de
datos X y devuelve el conjunto X’.
• fit transform. Método de ayuda que llama a los anteriores
métodos secuencialmente.
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Ejemplo

• Por ejemplo, este dataset:

• tiene atributos codificados con texto (como el género, el


status y el dı́a de la semana) y también hay fechas.
• Todos los algoritmos en sklearn trabajan con datos numérico,
por lo que tenemos que codificar esos tipos de datos a
numérico.
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Ejemplo


Para el caso de los atributos categoricos codificados como texto
podemos usar, por ejemplo, la clase LabelEncoder:
1 from s k l e a r n . p r e p r o c e s s i n g \
2 import LabelEncoder
3
4 l c = LabelEncoder ()
5 l c . f i t (X . Gender )
6
7 # a cada c a t e g o rı́ a l e a s i g n a e l ı́ n d i c e d e l a r r a y
8 p r i n t ( ” C l a s e s : %s ” % l c . c l a s s e s )
9 p r i n t ( ” V a l o r e s o r i g i n a l e s : %s ” % X . Gender . v a l u e s )
10
11 e n c o d i n g = l c . t r a n s f o r m (X . Gender )
12
13 p r i n t ( ” V a l o r e s c o d i f i c a d o s : %s ” % e n c o d i n g )
14
15 $ C l a s e s : [ ’ F ’ ’M’ ]
16 $ Valores o r i g i n a l e s : [ ’M’ ’ F ’ ’ F ’ . . . , ’ F ’ ’M’ ’M’ ]
17 $ Valores codificados : [1 0 0 . . . , 0 1 1]
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Ejemplo

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

Scikit learn - Estructura

• Hay dos tipos de clases principales:


• Las que derivan de BaseEstimator. Todos los algoritmos de
aprendizaje. Los métodos más importantes:
• fit. Para entrenar el modelo. Recibe dos parámetros X e y. X
conjunto de datos en forma tabular (filas=muestras,
columnas=atributos) e y es la variable respuesta (la que se
quiere predecir)
• predict. Realiza la predicción de un modelo previamente
entrenado. Solo recibe un conjunto X de muestras usados
para recibir
• predict proba. Idem al anterior pero la respuesta se obtiene
como probabilidades.
Introducción Métricas Validación de modelos Optimización de parámetros

Scikit learn - Ejemplo


1 from s k l e a r n . l i n e a r m o d e l \
2 import L o g i s t i c R e g r e s s i o n
3
4 # c r e a m o s e l modelo
5 estimator = LogisticRegression ()
6
7 # a j u s t a m o s e l modelo
8 estimator . f i t ( X train , y)
9
10 # obtenemos l a p r e d i c c i o n e s
11 pred = estimator . p r e d i c t ( X test )
12
13 p r i n t ( pred )
14 p r i n t ( type ( pred ) )
15
16 [0 0 1 . . . , 1 0 0]
17 < c l a s s ’ numpy . n d a r r a y ’>

¡Cuidado!, las predicciones obtenidas son un array de numpy no


una lista de python.
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

Métricas para clasificación

• Los problemas de clasificación son los más comunes y en lo


que más métricas se han desarollado. Las más importantes:
• Matriz de confusión. Para determinar en que clases falla el
modelo y con que clases las confunde.
• Precisión, recall, f1-score, soporte. Son ratios entre los
grupos de (FP, FN, TP, TN) tomados por parejas.
• Accuracy (exactitud). Promedio de acierto.
• LogLoss. Evalua las probabilidades para cada categorı́a.
• Area bajo la curva (AUC). Mide la habilidad de un modelo
para discriminar entre clases positivas y negativas.
Introducción Métricas Validación de modelos Optimización de parámetros

Tipos de error en clasificación binaria

• Verdaderos positivos (TP): Aquellas muestras con clase


positiva que han sido clasificadas como positivas (clasificadas
correctamente)
• Verdaderos negativo (TN): Aquellas muestras con clase
negativa que han sido clasificadas como negativas
(clasificadas correctamente)
• Falsos positivos (FP): Aquellas muestras con clase positiva
que han sido clasificadas como negativas (clasificadas
incorrectamente)
• Falsos negativos (FN): Aquellas muestras con clase negativa
que han sido clasificadas como positivas (clasificadas
incorrectamente)
Introducción Métricas Validación de modelos Optimización de parámetros

Tipos de error en clasificación binaria


FALSO POSITIVO FALSO NEGATIVO
Introducción Métricas Validación de modelos Optimización de parámetros

Accuracy

• Mide el porcentaje de acierto.

#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

• Ejemplo: Supongamos que tenemos 170504 muestras


positivas y 129302 negativas. Nuestro modelo clasifica
correcamente 126811 de las muestras positivas y 82309 de las
muestras negativas.
126811 + 43693
Accuracy = = 0.5687 = 56.87% (3)
170504 + 129302
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Ejemplo: Supongamos que tenemos 9850 muestras negativas


y 150 positivas. Nuestro modelo clasifica correcamente 9700
de las muestras negativas y 50 de las muestras positivas.
9700 + 50
Accuracy = = 0.98 = 98.0% (4)
9850 + 150
Introducción Métricas Validación de modelos Optimización de parámetros

Accuracy Paradox

• Ejemplo: Supongamos ahora que nuestro modelo siempre


dada una respuesta negativa (modelo trivial):

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

• La matriz de confusión nos muestra más información de las


clasificaciones correctas e incorrectas por clase.
• Con los datos del ejemplo anterior:

• Con la matriz de confusión podemos extraer más información


del comportamiento del modelo por clase:
• ¿En que clase se equivoca más?
• Dada un clase, ¿en que grado se confunde con la otra clase?
• ¿Que clase tiene mayor precisión?
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 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

• Se usa cuando la predicción obtenida es una probabilidad.


• Es válida tanto para clasificación binaria como multiclase
(más de 2 clases).
N
1 X
−y log(p) − (1 − y ) log(1 − p). (6)
N
i=1
• No solo se busca optimizar el número de aciertos, sino
también la seguridad con que el modelo acierta.
• Cuando la predicción es perfecta esta métrica is 0 (cuanto
menor mejor).
• Minimizar el log-loss implica maximizar el accuracy
generalmente.
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Estas métricas responden a las siguientes preguntas.


• De todas las muestras clasificadas como positivas, ¿que
porcentaje es correctamente clasificado?
TP
Precision = (7)
TP + FP
• También llamada PPV (positive predictive value)
• De todas las muestras positivas, ¿que porcentaje es
correctamente clasificado?
TP
Recall = (8)
TP + FN
• Muchos otros nombres: sensitivy, hit rate y TPR (true positive
rate)
Introducción Métricas Validación de modelos Optimización de parámetros

F-Measure

• Es la media armónica de precision y recall:

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

• Estas métricas son muy utlizadas en sitemas de ranking. Por


ejemplo, el buscador de google.
• Un motor de búsqueda puede ser visto como un clasificador
binario: dado un término de búsqueda el documento Dx
es relevante para la búsqueda
• Las métricas anteriores pueden ser interpretadas como
probabilidades en vez de como proporciones:
• Precision: probabilidad de que un documento devuelto en la
búsqueda sea relevante.
• Recall: probabilidad de un documento relevante sea devuelto
en la búsqueda.
Introducción Métricas Validación de modelos Optimización de parámetros

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

• P0 : Positive • R: Rate • D: Discovery


• N: Negative • V: Value
• O: Odds
• F: False
• P1 : Predictive
• T: True • L: Likelihood
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Un clasificador, para salir de la diagonal debe explotar


algún tipo de información extraida de los datos.
Introducción Métricas Validación de modelos Optimización de parámetros

Espacio ROC

• Un clasificador localizado por debajo de la diagonal es peor


que cualquier clasificador aleatorio (¿o no?).
• Si negamos la respuesta del clasificador, tendremos un
clasificador en la parte superior de la diagonal.
ESPACIO ROC

PERFECTO

MEJOR

PEOR

• Un clasificador sobre la diagonal no tiene información sobre


las clases. Sin embargo, un clasificador por debajo de la
diagonal, si la tiene pero la está aplicando incorrectamente.
Introducción Métricas Validación de modelos Optimización de parámetros

Curva ROC

• Algunos algoritmos dan como respuesta un valor numérico


que indica el grado de seguridad de que una instancia
pertenezca a una clase.
• Naive Bayes, Redes Neuronales, Random Forest, etc.
• Estos clasificadores probabilisticos pueden ser convertidos a
discretos aplicando un umbral.
• Si aplicamos este umbral gradualemente podemos trazar un
curva en el espacio ROC para ”un solo clasificador”.
Introducción Métricas Validación de modelos Optimización de parámetros

Area bajo la curva (AUC)

• El area bajo la curva ROC siempre va entre 0 y 1.


• Bajo la diagonal hay un area de 0.5, por tanto ningún
clasificador debe dar un AUC inferior a 0.5.
• Propiedades:
• Es equivalente a la probibilidad de dar un mayor score a una
muestra positiva que a una negativa tomadas aleatoriamente.

P(score(x + ) > score(x − )) (10)

• El coeficiente de Gini es dos veces el area entre la diagonal y la


curva.
Gini = (2 ∗ AUC ) − 1 (11)
Introducción Métricas Validación de modelos Optimización de parámetros

Validación de modelos
Introducción Métricas Validación de modelos Optimización de parámetros

Entrenamiento y validación

• En el enfoque clásico los datos se dividen en datos de


entrenamiento y datos de validación y test en un ratio 7:3
aproximadamente.
• Entrenamos con un 70% de los datos.
• Validamos nuestro modelo con el 30% restante.

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)

• ¿Como sabemos que el 30% de los datos que hemos reservado


son representativos de la realidad? ¿Podrı́a existir otra
subvidisión mejor?
• Hemos desaprovechado un 30% de los datos para entrenar.
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Modelos muy simples: alto sesgo.


• Modelos muy complejos: alta varianza.

• Tenemos que buscar un equilibrio entre el sesgo y la varianza


del modelo.
Introducción Métricas Validación de modelos Optimización de parámetros

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

Modelo 1 Modelo 2 Modelo 3 Modelo 10

Accuracy:

Acurracy final: Media(Modelo1, Modelo2, ..., Modelo10)


Desviación : Std(Modelo1, Modelo2, ..., Modelo10)

• Si divido el conjunto de entranamiento en N partes. Cada una


de esas partes (fold) se usará para validar y el resto para
entrenar.
• Si creamos 10 folds, tendremos que entrenar 10 modelos.
Cada modelo se entrerá con el 90% por de los datos y se
validará con un 10%.
Introducción Métricas Validación de modelos Optimización de parámetros

Validación cruzada

• La función cross val score entrenará un modelo por cada


fold y calculará la validación de cada uno:
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
3 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 =5) )
4 [ 0.33150734 0.08022311 0.03531764 0.05323443
0.123233]

• Para calcular el score cada modelo debe realizar las


predicciones de su fold. A estas predicciones se les conoce
como predicciones out of fold.
Introducción Métricas Validación de modelos Optimización de parámetros

Validación cruzada

• En el ejemplo anterior pasamos el número de folds. Lo


habitual es trabajar siempre con los mismo folds.
• Para ello scikit learn tiene varias clases, en función de la
extrategia de validación cruzada para crear los folds:
• KFold. Crea los folds aleatoriamente.
• StratifiedKFold. Para casos con clases desbalanceadas
(muchos más positivos que negativos). Los folds mantendrán
la misma propoción de clases.
• LeaveOneOut. Solo se deja un muestra para validar. Creará
tantos modelos como muestras haya en nuestro conjunto de
datos.
• LeavePOut. Se dejan P muestras para validar.
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Los algoritmos suelen tener un conjunto de parámetros amplio.


• La selección de modelos consiste en determina que conjunto
de parámetros es más aconsejable.
• En scikit learn tenemos dos clases para realizar la optimización
de parámetros:
• RandomizedSearchCV. Entrena modelos seleccionando los
parámetros de manera aleatoria. Se le especifica el rango de
cada parámetro a estudiar.
• GridSearchCV. Se le especifica que valores de cada parámetro
estudiar y genera todas las combinaciones entre parámetros
posibles.
Introducción Métricas Validación de modelos Optimización de parámetros

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

• Un pipeline es una secuencia de transformadores seguidas de


un único estimador.
• La clase Pipeline extiende de BaseEstimator por lo que
tendrá los mismo métodos que cualquier modelo (fit, predict,
predict proba).
• El resulado de entrenar un pipeline es un modelo que
posteriormente podremos aplicar a nuevos datos:
• Los transformadores habrán aprendido como realizar las
transformaciones con nuevos datos.
• El estimador estará entrenado para predecir con los datos de
entrada previamente transformados.

Vous aimerez peut-être aussi