Me cuesta pensar en la forma correcta de plantear el siguiente problema: digamos que un juego de dados (como Yahtzee) consiste en lanzar hasta 5 dados de 6 caras en tres rondas. Después de las tres rondas, se otorga una puntuación basada en el patrón al que se ajusta el dado. En la primera ronda, se lanzan los cinco dados. En las rondas siguientes, se pueden retener algunos dados y lanzar el resto en un esfuerzo por confirmar un patrón de puntuación más alto. (Por ejemplo, sacas 3 dados iguales y ahora quieres tirar los dos restantes para obtener 4 o 5 iguales).
Me gustaría crear un modelo de aprendizaje automático (por diversión) para entrenar y determinar qué dados retener y qué dados tirar en una ronda determinada para mejorar el patrón. Como variables de entrada, se da el estado S (1-6) de cada uno de los cinco dados, una decisión D de tirar o no construida de (0 o 1) para cada uno de los cinco dados (codificado binario de 0-31), y puedo generar un conjunto de entrenamiento que comprenda la información anterior más los resultados simulados R. Así que en resumen, cada observación en el conjunto de entrenamiento contendrá un vector de valores iniciales de los dados S, una máscara de bits de qué dados tirar D, un vector simulado de valores finales de los dados R, y +1 si esto mejoró el patrón y -1 si no mejoró.
¿Cuál es la mejor manera de plantear este problema? Si estoy prediciendo D, parece que el modelo debería ser D~S, pero esto ignora R. Si incluyo R, y entreno en D~S+R, ¿cómo puedo predecir los resultados sabiendo sólo D?