Pasos de aprendizaje automático

9

¿Cuál de las siguientes opciones de conjunto de pasos es la correcta al crear un modelo predictivo?

Opción 1:

Primero elimine los predictores más evidentemente malos, y preprocese el resto si es necesario, luego entrene varios modelos con validación cruzada, elija los mejores, identifique los mejores predictores que cada uno ha utilizado, luego vuelva a entrenar esos modelos solo con esos predictores y evalúe la precisión nuevamente con validación cruzada, luego elija el mejor y capacítelo en el conjunto de entrenamiento completo usando sus predictores clave y luego úselo para predecir el conjunto de prueba.

Opcion 2:

Primero elimine los predictores más evidentemente malos, luego preprocese el resto si es necesario, luego use una técnica de selección de características como la selección de características recursivas (por ejemplo, RFE con rf) con validación cruzada, por ejemplo, para identificar el número ideal de predictores clave y cuáles son estos predictores son, luego entrenar diferentes tipos de modelos con validación cruzada y ver cuál da la mejor precisión con los principales predictores identificados anteriormente. Luego entrene el mejor de esos modelos nuevamente con esos predictores en el conjunto de entrenamiento completo y luego úselo para predecir el conjunto de prueba.

Alaska
fuente
1
¿Qué quiere decir con preprocesar el resto si es necesario ? ¿Es la limpieza de datos?
Dawny33
1
Quise preprocesar las características restantes que crees que son útiles. Por preprocesamiento me refiero a hacer escalado o transformaciones como log u otros si es necesario.
AK
Ahh, como esperaba :) De todos modos, ¡he escrito la respuesta con el flujo de trabajo que mi equipo y yo generalmente seguimos!
Dawny33

Respuestas:

16

Encontré ambas opciones ligeramente defectuosas. Entonces, esto es generalmente (muy ampliamente) cómo se ve un flujo de trabajo de modelado predictivo:

  • Limpieza de datos : toma más tiempo, pero cada segundo que pasa aquí vale la pena. Cuanto más limpios sean sus datos a través de este paso, menor será su tiempo total invertido.
  • División del conjunto de datos : el conjunto de datos se dividiría en conjuntos de entrenamiento y prueba, que se utilizarían para fines de modelado y predicción, respectivamente. Además, también sería necesario realizar una división adicional como un conjunto de validación cruzada.
  • Transformación y reducción: involucra procesos como transformaciones, escalas medias y medias, etc.
  • Selección de funciones: esto se puede hacer de muchas maneras, como la selección de umbral, la selección de subconjuntos, etc.
  • Diseño de modelo predictivo: diseñe el modelo predictivo en los datos de entrenamiento según las características que tenga a mano.
  • Validación cruzada:
  • Predicción final, validación
Dawny33
fuente
Creo que sus pasos coinciden con mi opción 2. Entiendo que, como parte del paso de Selección de características, podemos ejecutar una función de eliminación de características recursivas (RFE) utilizando bosques aleatorios, por ejemplo, con validación cruzada para determinar el mejor número de predictores y qué son y luego usan esos predictores para entrenar varios algoritmos con validación cruzada y comparar la precisión para obtener el mejor modelo que use esos mejores predictores. ¿Qué piensas?
AK
@AndrewKostandy Sí, el algoritmo de selección de subconjuntos para la selección de funciones casi funciona de la misma manera :)
Dawny33
De nada. Actualmente estoy aprendiendo para un examen en el que una de las preguntas estándar del profesor es "¿qué piensa primero después de obtener y limpiar los datos?" :-)
Martin Thoma
@ Dawny33 ¿No le gustaría realizar transformaciones, escalas, etc. antes de dividir su conjunto de datos en capacitación y pruebas?
Minu
1
¿Alguna razón por la que realizarías transformaciones variables y escalas solo a los datos de entrenamiento? ¿Cómo ajustaría entonces los datos de prueba para que coincidan? Sólo curioso.
Minu
3

El lugar donde la selección de características encuentra un lugar en su canalización depende del problema. Si conoce bien sus datos, puede seleccionar características basadas en este conocimiento manualmente. Si no lo hace, la experimentación con los modelos usando validación cruzada puede ser la mejor. La reducción de un número de características a priori con alguna técnica adicional como chi2 o PCA en realidad puede reducir la precisión del modelo.

En mi experiencia con la clasificación de texto con el clasificador SGD, por ejemplo, dejar las cien mil palabras codificadas como características binarias trajo mejores resultados en comparación con la reducción a unos pocos miles o cientos. El tiempo de entrenamiento es realmente más rápido con todas las funciones, ya que la selección de funciones es bastante lenta con mi conjunto de herramientas (sklearn) porque no es estocástico como SGD.

La multicolinealidad es algo a tener en cuenta, pero la interpretación de las características también puede ser importante.

Luego, las personas informan que obtienen el mejor resultado con conjuntos de modelos. Cada modelo captura una parte particular del espacio de información mejor que las demás. Eso también le impediría seleccionar las características antes de ajustar todos los modelos que incluiría en su conjunto.

Diego
fuente