Descripción
El package ‘caret’ de R (abreviatura de Classification And REgression Training) permite la creación de modelos predictivos. Entre las principales funcionalidades que proporciona se encuentra la creación de conjuntos de entrenamiento y de test para la validación de modelos de Machine learning, el preprocesamiento y Feature selection.
El uso de conjuntos diferentes para el entrenamiento y evaluación de clasificadores es absolutamente necesario para no crear clasificadores que sufran de overfitting y, por el contrario, que generalicen bien delante de datos nuevos nunca vistos anteriormente.
Enlace al recurso
http://topepo.github.io/caret/index.html
Ejemplo de uso
El siguiente ejemplo muestra cómo partiendo de un conjunto de datos, es posible dividirlo en un conjunto de entrenamiento y otro de test.
El código para realizar dicha partición es el siguiente (se han numerado las líneas para mejorar su lectura):
1 # cargar el package 2 library(caret) 3 set.seed(998) 4 5 # creación del conjunto de entrenamiento y test 6 inTraining <- createDataPartition(DATA, p = .75, list = FALSE) 7 training <- DATA[ inTraining,] 8 testing <- DATA[-inTraining,]
DATA es la estructura o data.frame que almacena los datos (leídos de un fichero CSV, por ejemplo).
Después de cargar el package mediante la línea 2, en la línea 3 se inicializa el generador de números aleatorios, para garantizar que la separación entre el conjunto de test y train se realice de forma aleatoria pero controlada para poder repetir exactamente el mismo experimento si es necesario. En la línea 6, mediante la función createDataPartition de caret, dividiremos el 75 % del conjunto como entrenamiento y el 25 % restante se usará como test.
Finalmente, las líneas 7 y 8 permiten la asignación en las variables de training y testing de los conjuntos de entrenamiento y test, respectivamente, aprovechando las capacidades del lenguaje R para la manipulación de listas.
Enlaces relacionados
Conjuntos de entrenamiento, test y validación: https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets
Overfitting: https://en.wikipedia.org/wiki/Overfitting