Esta puede ser una pregunta tonta, pero cuando se genera un modelo con cuidado y se usa algo como LOOCV
o (aún más importante) LGOCV
, ¿cuál es el beneficio de dividir los datos en trenes y conjuntos de pruebas si esto es esencialmente el paso de validación cruzada? lo hace de todos modos?
Leí algunas de las preguntas relacionadas y sugirieron que algunos de los métodos de validación cruzada (por ejemplo, lo que se describe aquí en el sitio de caret ) tienen el propósito de seleccionar las características . Pero en mi caso, estoy usando randomForest
( method = "rf"
) y kernlab
( method = svmRadial
), que no figuran en el grupo que intenta purgar predictores.
Entonces, mi pregunta es si uso algo como cross_val <- trainControl(method = "LGOCV", p = 0.8)
, ¿no es lo mismo que entrenar en el 80% de mis datos, probar el modelo resultante en el 20% restante y hacer eso una y otra vez para tener una idea de qué tan bien modelo está trabajando?
Si es así, ¿hay alguna necesidad de dividir mis datos en conjuntos de trenes / pruebas?
PD: en parte, pregunto porque estoy realizando modelos en prototipos DOE generados empíricamente (piense en productos duros en los que modificamos las entradas y luego utilizamos métodos de prueba para medir varios atributos sobre el prototipo).
Como tal, no tengo un gran conjunto de datos con muchos niveles de predictores superpuestos para modelar: a menudo ejecutamos una prueba en cada punto de interés del DOE, ya que la generación de datos es costosa en este caso. Por lo tanto, me gustaría usar todos los datos que pueda para un modelo preciso, pero quería comprobar aquí que no me estoy perdiendo algo obvio y que estoy haciendo un modelo pobre al no dividir las cosas.
Editar: En respuesta a la pregunta de @ topepo, estoy modelando atributos medidos físicamente de un compuesto en función del ajuste de las entradas químicas de la fórmula. No puedo hablar sobre mi aplicación real, pero inventaré un ejemplo basado en la formulación de pintura de látex para interiores. Estoy ejecutando experimentos diseñados donde mezclamos 4-5 productos químicos, tal vez jugamos con% de sólidos y una cantidad de tiempo para calentar la solución de polímero para ajustar el grado de polimerización.
Luego podríamos medir la reología, el peso molecular, la dureza del recubrimiento de pintura, la resistencia al agua, etc.
Tenemos réplicas decentes de varias variables, pero pocas réplicas verdaderas en el sentido de que cada nivel de DOE era exactamente el mismo. El conjunto total de datos es de ~ 80 observaciones y quizás 4-5 son repeticiones exactas. Hemos realizado 15 pruebas diferentes, y quizás se han realizado 5-6 de ellas para cada observación. Algunas de las respuestas están presentes para el 25-50% de los datos.
A partir de aquí, nos gustaría modelar los efectos de nuestros 7 predictores en las propiedades de salida y luego optimizar para apuntar a nuevos espacios de diseño que tengan más probabilidades de proporcionar las propiedades deseadas.
(De ahí mi pregunta AQUÍ . Una vez que tenga un modelo entrenado, sería bueno hacer el "reverso" y alimentar las respuestas deseadas para obtener la mejor conjetura sobre los posibles niveles de entrada para probar a continuación).
data_set1
, ¿qué considero el paso realizado por LGOCV
validación cruzada? Según mi lectura, supongo que 1) caret
itera a través de los parámetros de ajuste data_set1
y luego 2) mantiene esos parámetros fijos y 3) crea un "submodelo" usando parámetros del # 1 para cada p = 0.8
muestra data_set1
y prueba predicciones en el 0.2 restante para medir la precisión . ¿Es ese un resumen razonable?