Estoy tratando de ajustar un modelo SVM en datos de retorno de acciones de series temporales, prediciendo una señal de compra, retención o venta de la acción. Estoy usando una validación cruzada de 10 veces (usando el paquete R caret
), y obtengo puntuaciones de precisión y recuperación muy altas. Sin embargo, cuando pruebo el modelo en una nueva muestra, el rendimiento es mucho peor (es decir, un 40% de precisión en la nueva muestra frente a un 80% de precisión en el cv de 10 veces). Pensaba que el proceso de cv evitaría el sobreajuste, pero los resultados sugieren lo contrario. ¿Alguien puede aportar alguna idea sobre lo que puede estar ocurriendo aquí y alguna forma de solucionarlo? ¡¡¡Gracias!!!
Respuestas
¿Demasiados anuncios?Los datos de las series temporales del mercado de valores no son una observación independiente. Por lo tanto, el uso de la validación cruzada no elimina toda la información asociada debido a la correlación con otras observaciones. Puede obtener estadísticas de validación cruzada para datos de series temporales:
- Ajustar el modelo a los datos $y_1,\dots,y_t$ y que $\hat{y}_{t+1}$ denotan la previsión de la siguiente observación. A continuación, calcule el error ( $e_{t+1}^*=y_{t+1}-\hat{y}_{t+1}$ ) para la observación de la previsión.
- Repita el paso 1 para $t=m,\dots,n-1$ donde m es el número mínimo de observaciones necesarias para ajustar el modelo. (¿Cómo sabrá $m$ ? Tendrás que trazar la curva de aprendizaje y determinar el número mínimo de muestras que se necesitan para que tu modelo converja).
- Calcule el MSE a partir de $e_{m+1}^*,\dots,e_{n}^*.$
Parece que no has entendido lo que hace CV. CV es un evaluación técnica para evaluar el rendimiento de un clasificador determinado, cuando el tamaño de la muestra no es lo suficientemente grande como para establecer un conjunto de pruebas. La CV ayuda a evitar el sobreajuste sólo de forma indirecta, ya que le permite evaluar el rendimiento de determinadas configuraciones de parámetros de un clasificador determinado (como la SVM en su caso), y le permite elegir una con la métrica más alta de su elección (por ejemplo, exactitud, precisión, etc.). Para ello se suele emplear el CV interno.
Dada la situación que has presentado, diría que el rendimiento de tu sistema de clasificación (combinación de características, selección de características y clasificador) es sólo del 40%, que es lo que representa el verdadero rendimiento de generalización. La precisión del 80% que has observado es sólo la métrica media de los distintos pliegues, si caret se comporta de forma similar a las cajas de herramientas típicas.
Tal vez, si nos proporciona el código exacto, podamos ofrecerle pistas más específicas.