Búsqueda de sitios web

Compare modelos y seleccione el mejor utilizando el paquete Caret R


El paquete Caret R le permite construir fácilmente muchos tipos de modelos diferentes y ajustar sus parámetros.

Después de crear y ajustar muchos tipos de modelos, es posible que desee conocer y seleccionar el mejor modelo para poder utilizarlo para hacer predicciones, tal vez en un entorno operativo.

En esta publicación, descubrirá cómo comparar los resultados de varios modelos utilizando el paquete caret R.

Pon en marcha tu proyecto con mi nuevo libro Machine Learning Mastery With R, que incluye tutoriales paso a paso y los archivos de código fuente de R para todos los ejemplos.

Empecemos.

Comparar modelos de aprendizaje automático

Mientras trabaja en un problema, se decidirá por uno o varios modelos de buen rendimiento. Después de ajustar los parámetros de cada uno, querrás comparar los modelos y descubrir cuáles son los de mejor y peor rendimiento.

Es útil tener una idea de la distribución de los modelos, tal vez uno pueda mejorarse o se pueda dejar de trabajar en uno que claramente funciona peor que los demás.

En el siguiente ejemplo, comparamos tres modelos sofisticados de aprendizaje automático en el conjunto de datos sobre diabetes de los indios Pima. Este conjunto de datos es un resumen de una colección de informes médicos e indica la aparición de diabetes en el paciente dentro de cinco años.

Puede obtener más información sobre el conjunto de datos aquí:

  • Archivo de conjunto de datos.
  • Detalles del conjunto de datos

Los tres modelos construidos y ajustados son la cuantificación de vectores de aprendizaje (LVQ), el aumento de gradiente estocástico (también conocido como máquina potenciada por gradiente o GBM) y la máquina de vectores de soporte (SVM). Cada modelo se ajusta automáticamente y se evalúa mediante 3 repeticiones de validación cruzada de 10 veces.

La semilla de número aleatorio se establece antes de entrenar cada algoritmo para garantizar que cada algoritmo obtenga las mismas particiones y repeticiones de datos. Esto nos permite comparar manzanas con manzanas en los resultados finales. Alternativamente, podríamos ignorar esta preocupación y aumentar el número de repeticiones a 30 o 100, usando la aleatoriedad para controlar la variación en la partición de datos.

Una vez que se entrenan los modelos y se encuentra una configuración de parámetros óptima para cada uno, se recopilan los resultados de precisión de cada uno de los mejores modelos. Cada modelo "ganador" tiene 30 resultados (3 repeticiones de validación cruzada 10 veces). El objetivo de comparar resultados es comparar las distribuciones de precisión (30 valores) entre los modelos.

Esto se hace de tres maneras. Las distribuciones se resumen en términos de percentiles. Las distribuciones se resumen como diagramas de caja y finalmente las distribuciones se resumen como diagramas de puntos.

Ejemplo de comparación de resultados de modelos utilizando el paquete Caret R:

# load the library
library(mlbench)
library(caret)
# load the dataset
data(PimaIndiansDiabetes)
# prepare training scheme
control <- trainControl(method="repeatedcv", number=10, repeats=3)
# train the LVQ model
set.seed(7)
modelLvq <- train(diabetes~., data=PimaIndiansDiabetes, method="lvq", trControl=control)
# train the GBM model
set.seed(7)
modelGbm <- train(diabetes~., data=PimaIndiansDiabetes, method="gbm", trControl=control, verbose=FALSE)
# train the SVM model
set.seed(7)
modelSvm <- train(diabetes~., data=PimaIndiansDiabetes, method="svmRadial", trControl=control)
# collect resamples
results <- resamples(list(LVQ=modelLvq, GBM=modelGbm, SVM=modelSvm))
# summarize the distributions
summary(results)
# boxplots of results
bwplot(results)
# dot plots of results
dotplot(results)

A continuación se muestra la tabla de resultados al resumir las distribuciones para cada modelo.

Models: LVQ, GBM, SVM 
Number of resamples: 30 

Accuracy 
      Min. 1st Qu. Median   Mean 3rd Qu.   Max. NA's
LVQ 0.5921  0.6623 0.6928 0.6935  0.7273 0.7922    0
GBM 0.7013  0.7403 0.7662 0.7665  0.7890 0.8442    0
SVM 0.6711  0.7403 0.7582 0.7651  0.7890 0.8961    0

Kappa 
       Min. 1st Qu. Median   Mean 3rd Qu.   Max. NA's
LVQ 0.03125  0.1607 0.2819 0.2650  0.3845 0.5103    0
GBM 0.32690  0.3981 0.4638 0.4663  0.5213 0.6426    0
SVM 0.21870  0.3889 0.4167 0.4520  0.5003 0.7638    0

Si necesita hacer afirmaciones sólidas sobre qué algoritmo es mejor, también puede utilizar pruebas de hipótesis estadísticas para demostrar estadísticamente que las diferencias en los resultados fueron significativas.

Algo así como una prueba t de Student si los resultados se distribuyen normalmente o una prueba de suma de rangos si se desconoce la distribución.

Resumen

En esta publicación, descubrió cómo puede usar el paquete caret R para comparar los resultados de varios modelos diferentes, incluso después de que se hayan optimizado sus parámetros. Viste tres formas en que se pueden comparar los resultados: en una tabla, en un diagrama de caja y en un diagrama de puntos.

Los ejemplos de esta publicación son independientes y puedes copiarlos y pegarlos fácilmente en tu propio proyecto y adaptarlos a tu problema.

Artículos relacionados