validation - mineria - Validación cruzada en Weka
validacion cruzada mineria de datos (4)
Entonces, aquí está el escenario de nuevo: tienes 100 datos etiquetados
Usar el conjunto de entrenamiento
- Weka tomará 100 datos etiquetados
- aplicará un algoritmo para construir un clasificador a partir de estos 100 datos
- aplica ese clasificador OTRA VEZ en estos 100 datos
- le proporciona el rendimiento del clasificador (aplicado a los mismos 100 datos a partir de los cuales se desarrolló)
Use 10 veces CV
Weka toma 100 datos etiquetados
produce 10 conjuntos de igual tamaño. Cada conjunto se divide en dos grupos: 90 datos etiquetados se utilizan para el entrenamiento y 10 datos etiquetados se usan para las pruebas.
produce un clasificador con un algoritmo de 90 datos etiquetados y lo aplica en los 10 datos de prueba para el conjunto 1.
Hace lo mismo para el conjunto 2 a 10 y produce 9 clasificadores más
promedia el rendimiento de los 10 clasificadores producidos a partir de 10 grupos de igual tamaño (90 entrenamientos y 10 pruebas)
Déjame saber si eso responde tu pregunta.
Siempre he pensado por lo que leí que la validación cruzada se realiza así:
En la validación cruzada de k veces, la muestra original se divide aleatoriamente en k submuestras. De las k submuestras, una sola submuestra se retiene como los datos de validación para probar el modelo, y las submuestras k - 1 restantes se usan como datos de entrenamiento. El proceso de validación cruzada se repite k veces (los pliegues), con cada una de las k submuestras utilizadas exactamente una vez como datos de validación. Los resultados k de los pliegues se pueden promediar (o combinar de otro modo) para producir una sola estimación
Entonces se construyen k modelos y el último es el promedio de esos. En la guía de Weka está escrito que cada modelo siempre se construye utilizando TODO el conjunto de datos. Entonces, ¿cómo funciona la validación cruzada en Weka? ¿El modelo se construye a partir de todos los datos y la "validación cruzada" significa que se crean k fold, entonces se evalúa cada pliegue y los resultados finales son simplemente el resultado promediado de los pliegues?
Hubiera respondido en un comentario, pero mi reputación todavía no me permite:
Además de la respuesta aceptada de Rushdi, quiero enfatizar que los modelos que se crean para los conjuntos de plegamiento de validación cruzada se descartan una vez que se han llevado a cabo y promediado las mediciones de rendimiento.
El modelo resultante siempre se basa en el conjunto de entrenamiento completo, independientemente de las opciones de prueba. Como la MTA estaba solicitando una actualización del enlace citado, aquí está: http://list.waikato.ac.nz/pipermail/wekalist/2009-December/046633.html . Es una respuesta de uno de los mantenedores de WEKA, señalando exactamente lo que escribí.
Weka sigue la validación cruzada k-fold convencional que mencionaste aquí. Tiene el conjunto de datos completo, luego divídalo en k nos de conjuntos iguales (k1, k2, ..., k10 por ejemplo para 10 veces CV) sin superposiciones. Luego, en la primera ejecución, tome k1 a k9 como conjunto de entrenamiento y desarrolle un modelo. Usa ese modelo en k10 para obtener el rendimiento. Luego viene k1 a k8 y k10 como conjunto de entrenamiento. Desarrolle un modelo a partir de ellos y aplíquelo a k9 para obtener el rendimiento. De esta forma, use todos los pliegues donde cada pliegue como máximo 1 vez se use como conjunto de prueba.
Luego, Weka promedia las actuaciones y las presenta en el panel de resultados.
Creo que lo descubrí. Tome (por ejemplo) weka.classifiers.rules.OneR -x 10 -d outmodel.xxx
. Esto hace dos cosas:
- Crea un modelo basado en el conjunto de datos completo. Este es el modelo que se escribe en
outmodel.xxx
. Este modelo no se usa como parte de la validación cruzada. - Luego se ejecuta la validación cruzada. la validación cruzada implica la creación (en este caso) de 10 nuevos modelos con la capacitación y la prueba en segmentos de los datos como se ha descrito. La clave es que los modelos utilizados en la validación cruzada son temporales y solo se utilizan para generar estadísticas. No son equivalentes ni se usan para el modelo que se le da al usuario.