1 votos

¿Debo utilizar la regresión lineal en este caso?

Estoy haciendo un proyecto personal sobre regresión y espero que me puedan aconsejar sobre varios problemas. El conjunto de datos que tengo es sobre cocina, la forma es 180x9, y las 2 variables continuas son "prep_time" y "cook_time". Quiero predecir el cook_time en base a otras variables. He codificado en caliente otras variables categóricas y obtengo un total de ~30 características al final (y sólo prep_time es continua). Este es el conjunto de datos antes del procesamiento:

enter image description here

El modelo de referencia con regresión lineal, SVR y Random forest no funciona realmente bien (las puntuaciones absolutas de r2 son <0,1 para los 3 modelos). Pero cuando añadí una característica tiempo_total = tiempo_de_preparación+tiempo_de_cocción, y utilicé MinMaxscale en tiempo_de_preparación y tiempo_total, el modelo RF mejora hasta un r2 de ~0,3. Sin embargo, LinReg resulta en ~0 mse y 1.0 r2 en el prueba conjunto, sorprendentemente.

Por ello, intenté analizar más este modelo LR. Utilicé la función sklearn.feature_selection.SelectFromModel para obtener las características importantes de este modelo de regresión lineal, y muestra que sólo el prep_time y el total_time son importantes para el modelo. De hecho, el modelo entrenado utilizando sólo estas 2 variables funciona igual de bien. El VIF de estas 2 variables es de ~7,0, lo que implica multicolinealidad. Sin embargo, si elimino cualquiera de estas dos variables y entreno sólo con la otra característica, el modelo no funciona tan bien.

Mi pregunta es: ¿sigue siendo un buen modelo? W

Gracias.

3voto

Bruce ONeel Puntos 391

Sospecho que la cuestión es:

Pero cuando añadí una función total_time = prep_time + cook_time

Su variable de respuesta es cook_time. Así que no tiene sentido incluirla como predictor. Suponga que su modelo es algo así como:

$$y = x_1 + x_2 + x_3 + x_4$$

donde $y$ es el tiempo de cocción, y $x_1$ es el tiempo de preparación.

Así que introduzcamos otra variable para representar el tiempo total: $z = y + x_1$ , o $x_1 = z - y$ . Ahora sustituimos esto en el modelo y obtenemos:

$$y = z - y + x_2 + x_3 + x_4$$

Así que ahora tenemos $y$ en ambos lados de la ecuación del modelo. Esto va a conducir a un ajuste perfecto, lo que significa que $R^2$ será 1,0) y no habrá residuos (por lo que $MSE$ será cero).

Por otra parte, digamos que usted procedió con dicho modelo. Ahora, cuando se trata de hacer predicciones sobre datos nuevos (fuera de la muestra), para los que obviamente no se sabe cuál es el tiempo de cocción, ¿cómo se puede formar el total_time ¿para predecir en los nuevos datos?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X