Validación de modelos en aprendizaje automático supervisado

La validación del modelo es el proceso de evaluar un modelo capacitado en el conjunto de datos de prueba. Esto proporciona la capacidad de generalización de un modelo entrenado. Aquí proporciono un enfoque paso a paso para completar la primera iteración de la validación del modelo en minutos.

  • La receta básica para aplicar un modelo de aprendizaje automático supervisado es:
  • Elija una clase de modelo
  • Elija un modelo de parámetros hiper Ajuste el modelo a los datos de entrenamiento
  • Use el modelo para predecir etiquetas para nuevos datos

Es un proceso de Validación del modelo en cuatro sencillos y claros pasos. También es necesario todo un proceso antes de que lleguemos a su primer paso. Como recuperar toda la información que necesitamos de los datos para hacer un buen juicio al elegir un modelo de clase. También dando toques finales para confirmar los resultados posteriores.

Profundizaré en estos pasos y los desglosaré más.
  • Limpieza y disputa de datos.
  • Divida los datos en conjuntos de datos de entrenamiento y pruebas.
  • Defina las métricas para las que se optimiza el modelo. [19659010] Obtenga una estimación inicial rápida de las métricas.
  • Ingeniería de características para optimizar las métricas. ( Omita esto durante la primera pasada).
  • Preprocesamiento de datos.
  • Selección de características.
  • Selección de modelo.
  • Validación de modelo.
  • Interpreta los resultados.
  • Obtenga el mejor modelo y compárelo con el conjunto de datos de prueba.

Estaré usando el conjunto de datos de Repositorio de aprendizaje de máquina UCI . El conjunto de datos es del Centro de Servicio de Transfusión de Sangre en la ciudad de Hsin-Chu en Taiwán. Este es un problema de clasificación. La idea detrás de esto se extiende también a los problemas de regresión.

Limpieza y manipulación de datos.

El conjunto de datos del Centro de Servicio de Transfusión de Sangre es un conjunto de datos limpio. Este no será el caso para la mayoría de los otros conjuntos de datos. Este es el paso para inspeccionar y limpiar los datos, por ejemplo, el manejo de valores perdidos …

https://medium.com/media/e0cdfd02d7f2096e6d9181d63831ee64/href

Divide los datos en conjuntos de datos de entrenamiento y pruebas.

Hay muchas formas de obtener los conjuntos de datos de entrenamiento y prueba para la validación del modelo como:

  • Método de retención de 3 vías para obtener conjuntos de datos de entrenamiento, validación y prueba.
  • K-validación cruzada con conjunto de datos de prueba independiente.
  • La validación cruzada de Leave-one-out con un conjunto de datos de prueba independientes.

El blog de Sebastian Raschka tiene una buena referencia para determinar esto.

Haré uso de ] Validación cruzada de 5 veces con conjunto de datos de prueba independientes . Así que divida los datos en conjuntos de datos de entrenamiento y prueba.

https://medium.com/media/04b36140659e2bb84c95f515096dd8f5/href

Defina las métricas para las que se optimiza el modelo.

Las métricas utilizadas en clasificación y regresión los problemas varían El problema de clasificación usa métricas como precisión, precisión, memoria … El problema de regresión usa métricas como error absoluto medio, puntaje R2 …

Métricas de clasificación en scikit-learn

Métricas de regresión in scikit-learn

Ya que este es un problema de clasificación, usaré la puntuación de precisión aquí.

Obtenga una estimación rápida de las métricas iniciales.

La idea principal detrás de este paso es obtener la estimación de línea de base de las métricas que se está optimizando. Esta línea de base funcionará como referencia en pasos adicionales de validación de modelos. Hay varias formas de obtener la estimación de línea de base para el problema de clasificación. Estoy usando la clase mayoritaria para la predicción. El puntaje de precisión de línea de base es aproximadamente 77% .

https://medium.com/media/d1fa63e9497c57f1c168c5fbfd455195/href

Ingeniería de características para optimizar las métricas.

La ingeniería de características del proceso utilizando el conocimiento del dominio de los datos para crear características que hacen que los algoritmos de aprendizaje automático funcionen. La ingeniería de características es fundamental para la aplicación del aprendizaje automático, y es difícil y costosa.

De Wikipedia

Esto significa identificar las relaciones entre características independientes y dependientes. Esto es con la ayuda de gráficos como gráficos de par o matriz de correlación. Luego, las relaciones identificadas que podemos agregar como polinomios o características de interacción.

El paso de la ingeniería de características es el punto de entrada para sucesivas iteraciones. Este es un paso crítico y juega un papel más importante en las predicciones en comparación con la validación del modelo.

Como una solución rápida, podemos agregar algunas características polinomiales usando Características polinómicas en sci-kit learn .

Dominio El conocimiento del problema en cuestión será de gran utilidad para la ingeniería de características. Este es un tema mayor en sí mismo y requiere una gran inversión de tiempo y recursos.

Preprocesamiento de datos

El preprocesamiento de datos convierte las características en un formato más adecuado para los estimadores. En general, el modelo de aprendizaje automático prefiere la estandarización del conjunto de datos. Haré uso de RobustScaler para nuestro ejemplo.

Consulte la sección de datos de preprocesamiento de sci-kit learn para obtener información detallada.

Selección de características

Selección de características o la reducción de dimensionalidad en los conjuntos de datos ayuda a

  • Ya sea para mejorar las puntuaciones de precisión de los modelos

o

  • Para mejorar su rendimiento en conjuntos de datos de muy alta dimensión.

Usaré SelectKBest Método de selección de características univariadas. La función de puntuación utilizada para los problemas de clasificación y regresión variará.

Consulte la sección Selección de características de sci-kit learn para obtener información detallada.

Selección de modelo.

Ya que estamos trabajando con un problema de clasificación , Usaré el modelo LogisticRegression . Para problemas de regresión podemos usar LinearRegression o Ridge . La selección del modelo depende del problema en cuestión. Basándonos en la complejidad de los datos, podemos usar un modelo lineal simple o modelos avanzados.

Consulte la sección de Modelos lineales generalizados de sci-kit learn para obtener información detallada.

Hay una forma elegante de combinar por encima de los tres pasos utilizando el conducto de sci-kit learn. Pipeline aplica una lista de transformaciones antes del modelo final.

https://medium.com/media/abee2f5a4ba6c44fe905fbf1040aa515/href

Validación del modelo.

Hyper-parameters son parámetros que no son Aprendí dentro del modelo por sí mismo. Los hiperparámetros se pasan como argumentos al constructor de los pasos en tramitación. Sobre la base de la puntuación de validación cruzada, es posible obtener los mejores parámetros posibles.

Para el ajuste de parámetros múltiples GridSearchCV es una de las opciones. Realiza una búsqueda exhaustiva sobre los valores de parámetros especificados para el modelo. Aquí estamos pasando los parámetros de hiper a los pasos en canalización usando param_grid . cv se establece en 5 ya que debemos realizar una validación cruzada de 5 veces. puntuación se establece en precisión ya que queremos predecir la precisión del modelo.

Consulte sci-kit learn Afinando los parámetros de un estimador sección para obtener información detallada.

https://medium.com/media/ab83f8704369cef325931ad50995ff47/href

Interpretan los resultados.

GridSearchCV devuelve poca información importante como: [196590008] best_estimator_ estimador que dio la puntuación más alta. Usando esto, podemos obtener la información sobre las funciones seleccionadas.

  • best_score_, Puntuación promedio de validación cruzada del best_estimator. Para nuestro conjunto de problemas obtuvimos una mejor puntuación de 78% en nuestra primera iteración. Esto no parece mucho, pero ya hemos superado nuestra puntuación de precisión de referencia.
  • best_params_ configuración de parámetros que dio los mejores resultados en los datos de retención. Para los hiperparámetros que pasaron al modelo, la siguiente configuración dio los mejores resultados.

 

  1. ‘logisticregression__C’: 1.0
  2. ‘logisticregression__class_weight’: None
  3. ‘selectkbest__k’: 4

https: // medium .com / media / d33639a419cbfa327f64c1484fb5d24c / href

Esto finaliza la primera iteración de la validación del modelo. Ahora podemos volver y repetir el proceso a partir del paso de la ingeniería de características. Al final de cada iteración podemos verificar el cambio en la puntuación de precisión. Repita el procedimiento hasta alcanzar la puntuación de precisión deseada o las métricas elegidas.

Obtenga el mejor modelo y compárelo con el conjunto de datos de prueba.

Después de elegir el modelo final, verifique su rendimiento utilizando el conjunto de datos de prueba. Aquí obtenemos una puntuación de precisión de 75% en el conjunto de datos de prueba.

https://medium.com/media/051785dd6617f0415611cda9f371ab82/href

Tenga en cuenta que este blog es para proporcionar una introducción rápida en Validación del modelo de aprendizaje automático supervisado. La idea aquí es no obtener la mejor puntuación de métricas en la primera iteración. Utilice este enfoque para establecer la puntuación de las métricas de referencia. Mejore la validación de nuestro modelo en cada iteración.

Obtenga el cuaderno completo aquí .

Puede que encuentre interesantes otros blogs.

Analiza la proporción de retweet para determinar la influencia social.

¿Por qué permitimos que el tweet de Trump afecte nuestro estado de ánimo?

 


Aprendizaje automático supervisado: Validación de modelos, un enfoque paso a paso se publicó originalmente en Hacia la ciencia de datos en Medio, donde la gente continúa la conversación Destacando y respondiendo a esta historia.

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *