Estoy desarrollando un modelo de bosque aleatorio para predecir transacciones fraudulentas con tarjetas de crédito. He hecho una división de entrenamiento y prueba en mi conjunto de datos, y finalmente he elegido un modelo a través de diferentes métricas, incluyendo la precisión, la recuperación y el AUC. Antes, he tenido problemas debido a conjuntos de datos extremadamente desequilibrados (sólo un 2% de transacciones fraudulentas). Después de un sobremuestreo, he utilizado un conjunto de datos 50%/50% fraude/no fraude para entrenar mi modelo. Ahora, este modelo, y su clasificador ajustado, se utilizarán en modo de producción. ¿Es legítimo utilizar este clasificador, entrenado con un conjunto de datos equilibrado, aunque las transacciones que vaya a clasificar sean en su mayoría no fraudulentas? ¿No estará sesgado hacia la clasificación de transacciones como fraudulentas?
EDITAR:
Para evaluar mi modelo (implementado en scikit-learn) estaba utilizando las puntuaciones obtenidas de la división train test proporcionada como método integrado. Me di cuenta de que esto podría estar proporcionando puntuaciones optimistas de precisión, recall y AUC, y probablemente estaba sobreajustando el modo. Por lo tanto, decidí utilizar scikit-learn k-fold cross validation. Los resultados obtenidos con este método son mucho peores. Por ejemplo, la recuperación solía ser del 69% cuando se evaluaba el modelo con los datos de prueba, pero es del 18% cuando se utiliza la validación cruzada de 5 pliegues (media de las puntuaciones de recuperación por iteración). Esto mejora un poco si modifico el parámetro class_weight a {0:0.99, 1:0.01}, pero creo que esto no tiene sentido, ya que penaliza los errores en la clasificación de 0 como 0 y no al revés, es decir, para los eventos más infrecuentes (1 o positivos). ¿Significa esto que mi modelo está sobreajustado? ¿Qué medida es más precisa para evaluar el rendimiento de mi modelo en el mundo real? ¿Tiene sentido utilizar la validación cruzada con bosques aleatorios?