Definición
La validación cruzada o cross validation es una técnica utilizada para la evaluación de resultados de análisis estadísticos que garantiza la independencia entre el subconjunto de datos de entrenamiento y el de prueba.
La independencia es garantizada debido a la forma en que se construyen cada uno de los subconjuntos de datos de test y entrenamiento, ya que nunca se solapan resultados.
Una vez calculada la precisión de predicción de cada subconjunto de forma independiente se calcula la media de las previsiones y esa se utiliza como medida definitiva de la precisión del modelo estudiado.
En la siguiente figura se puede ver de forma visual como se forma cada subconjunto.
Muy utilizado para estimar la precisión de predicción de un modelo.
Ejemplo de validación cruzada
# Generar conjunto de datos datos <- data.frame(num=1:100, letra=rep(c("A","B","C","D","E","F","G","H","I","J"),10))
# Barajear el conjunto de datos ordenando aleatoriamente datos <- datos[sample(nrow(datos)),] # Definir el número iteraciones a realizar num_particiones <- 5 # Crear los N conjuntos del mismo tamaño folds <- cut(seq(1,nrow(datos)),breaks=num_particiones,labels=FALSE) # Realizar la validación cruzada N veces for(i in 1:num_particiones){ # Segmentar los datos cumpliendo con las particiones definidas testIndexes <- which(folds==i,arr.ind=TRUE) # Generar datos de test testData <- datos[testIndexes, ] # Generar datos de entrenamiento trainData <- datos[-testIndexes, ] # Usar tanto los datos de test como de entrenamiento para probar diferentes modelos predictivos print(testData$num) }
63 57 69 72 67 88 58 39 23 17 34 80 38 99 91 71 59 50 43 82 66 15 61 46 1 90 78 10 73 42 33 86 87 31 8 54 60 30 68 52 20 13 27 6 100 5 70 41 32 36 55 40 22 19 21 2 65 24 83 29 62 84 97 76 85 53 48 18 92 47 12 96 45 79 51 81 93 49 44 89 11 77 75 3 9 7 94 56 26 28 25 64 4 98 14 35 16 95 37 74
0 comentarios