Así que estamos trabajando en un proyecto de aprendizaje automático en el trabajo y es la primera vez que estoy trabajando con un equipo real en esto. Obtuve muy buenos resultados con un modelo que utiliza el siguiente pipeline de SKLearn:
Datos -> LabelEncoder -> MinMaxScaler (entre 0-1) -> PCA (paso de 130 columnas a 50 componentes principales que cubren la varianza) -> MLPRegressor
Uno de mis colegas mencionó que normalmente no debería usar LabelEncoder para codificar los datos de entrenamiento, ya que está pensado para codificar la variable objetivo. He investigado un poco y ahora entiendo por qué
LabelEncoder sólo no es una buena opción, ya que aporta una ordenación de las diferentes clases.
Sin embargo, mi colega mencionó que en este caso no debería haber mucha diferencia ya que estoy usando una red neuronal (~MLPRegressor). Mi pregunta es - (si tiene razón - es él?) ¿por qué? Básicamente me elogió diciendo que esto normalmente sería una mala idea pero en este caso debería funcionar.
Intentaré pasarme a la codificación de un solo punto (actualmente sólo estoy atascado con ella porque me quedo sin memoria al hacer PCA en tantas columnas, pero esa es otra cuestión y haré una investigación al respecto por separado), pero por ahora me gustaría saber si usar este tipo de codificación puede dar lugar a resultados inexactamente buenos (estoy teniendo una puntuación r^2 de alrededor de 0,9 y mi jefe literalmente no se cree que haya conseguido un resultado tan bueno jaja).