En construcción….
Figure 1: Learning curve
Figure 2: Bias-Variance tradeoff
Figure 3: Model Complexity
Genere una variable \(X\) e \(y\) que contengan 100 observaciones con las siguientes características:
\(X = 6 \cdot \text{Aleatorio}_1 - 3\)
\(y = 2 + X + 0.35 \cdot X^2 + 0.20 \cdot X^3 + \text{Aleatorio}_2\)
El parámetro \(\text{Aleatorio}_1\) se refiere a la función np.random.rand() y \(\text{Aleatorio}_2\) a la función np.random.randn(). Utilice una semilla igual a 42.
Vizualice los datos generados en (1).
Estime una regresión lineal con constante, luego:
Calcule las métricas RMSE (Root Mean Square Error) y \(R^2\).
Realice la predicción utilizando los parámetros \(\hat{\theta}\) encontrados en (3.a).
Agregue la predicción al gráfico generado en (2).
Estime una regresión polinomial con grados igual a 2, 3 y 30. Para cada estimación considere:
Almacene en una lista o DataFrame los coeficientes (\(\hat{\theta}\)).
Almacene en una lista o DataFrame las métricas:
Grafique los datos generados y la predicción por cada grado del polinomio.
A partir de lo encontrado en (4), comparé su resultados con la regresión lineal en términos visuales, coeficientes y métricas de performance.
Genere una función que permita visualizar la learning curves de cada estimación realizada hasta ahora. Discuta los resultados usando los conceptos de Underfitting y Overfitting.