0% encontró este documento útil (0 votos)
20 vistas5 páginas

Evaluación de Modelo de Regresión Lineal

El documento describe el proceso de evaluación de un modelo de regresión lineal mediante validación cruzada y búsqueda de hiperparámetros, destacando que la normalización mejora el rendimiento del modelo. Se presentan métricas de precisión, como el R² y R² ajustado, que indican una fuerte correlación entre las predicciones y los valores reales, sugiriendo que el modelo es efectivo en la predicción de ganancias basadas en el gasto en I+D y la ubicación. La conclusión enfatiza que las ganancias de una startup dependen significativamente del gasto en I+D y que operar en California podría resultar en mayores beneficios en comparación con Florida y Nueva York.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas5 páginas

Evaluación de Modelo de Regresión Lineal

El documento describe el proceso de evaluación de un modelo de regresión lineal mediante validación cruzada y búsqueda de hiperparámetros, destacando que la normalización mejora el rendimiento del modelo. Se presentan métricas de precisión, como el R² y R² ajustado, que indican una fuerte correlación entre las predicciones y los valores reales, sugiriendo que el modelo es efectivo en la predicción de ganancias basadas en el gasto en I+D y la ubicación. La conclusión enfatiza que las ganancias de una startup dependen significativamente del gasto en I+D y que operar en California podría resultar en mayores beneficios en comparación con Florida y Nueva York.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

from sklearn.

model_selection import cross_val_score

accuracies = cross_val_score(lm,X_train,y_train,cv=5)
print(f"Accuracies obtained from 5-cross validation = {accuracies}")
print(f'Mean of all accuracies = {accuracies.mean()}')
print(f"Standard Deviation of accuracies = {accuracies.std()}")
Este código es usado para evaluar la precisión del modelo en un aprendizaje automático lo que
hace es que divide los datos del modelo en 5 grupos donde cada uno es entrenado con un método
matemático en este caso el código 2 calculando su capacidad para funcionar bien en datos
diferentes a aquellos con los que fue entrenado.

Accuracies obtained from 5-cross validation = [0.92253207 0.91428495 0.96311516


0.97224433 0.96787827]

Mean of all accuracies = 0.9480109545008517


Standard Deviation of accuracies = 0.02448150764411361

Estas puntuaciones representan la proporción de predicciones correctas realizadas por el modelo


en cada pliegue de los datos. Los valores oscilan entre 0,9142 (alrededor del 91%) y 0,9722
(alrededor del 97%), lo que indica un rendimiento generalmente bueno en todos los pliegues.

Este valor representa la precisión promedio del modelo en los 5 pliegues. En este caso, es de
aproximadamente 0,948, lo que equivale a alrededor del 95%. Esto sugiere que el modelo tiene un
buen rendimiento en datos no vistos en promedio.

La desviación estándar indica la variabilidad en las puntuaciones de precisión entre los pliegues.
Una desviación estándar baja, como 0,0245 en este caso, sugiere que las puntuaciones de
precisión son relativamente consistentes. Esto implica que el rendimiento del modelo es estable y
no fluctúa significativamente entre diferentes particiones de datos.

from sklearn.model_selection import GridSearchCV


grid_search = GridSearchCV(estimator=lm,param_grid={'normalize':[True,False]})
grid_search = grid_search.fit(X_train,y_train)
print(f"Best Parameter for our model is {grid_search.best_params_}")
print(f"Best score for the model is {grid_search.best_score_}")
Best Parameter for our model is {'normalize': True}
Best score for the model is 0.9420964176246608: El resultado indica que la normalización
de los datos mejora el rendimiento del modelo, y se obtiene una puntuación de validación de
0.9421, lo que significa que predice correctamente el valor objetivo en el 94.21% de los casos del
conjunto de validación.
 Mejor Parámetro: {'normalize': True} indica que la búsqueda por grid ha
determinado que el mejor rendimiento del modelo se obtiene cuando los datos están
normalizados (normalize=True). La normalización es una técnica de preprocesamiento
que transforma las características a una escala común, lo que puede mejorar el
comportamiento del modelo durante el entrenamiento.
 Mejor Puntuación: 0.9420964176246608 representa la mejor puntuación de
rendimiento obtenida por el modelo en el conjunto de datos de validación. El modelo
predice correctamente el valor objetivo en el 94.21% de los casos en el conjunto de validación.

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=True)


Según la normalización hecha este modelo La salida proporcionada muestra la configuración
inicial del modelo, no los resultados reales del proceso de entrenamiento.

#Now it's time to test the accuracy of the model on our Test Data
#this is very good accuracy on training set
lm.score(X_train,y_train)

El código que me proporcionaste evalúa la precisión del modelo de regresión lineal entrenado en
el conjunto de datos de entrenamiento. mide qué tan bien el modelo predice los valores objetivo
en el conjunto de datos que utilizó para aprender.
Esto significa que predice correctamente el valor objetivo en el 96.28% de los casos del conjunto
de entrenamiento. Un modelo con una precisión muy alta en el conjunto de entrenamiento podría
estar sobreajustado, lo que significa que el modelo aprende las características específicas de los
datos de entrenamiento pero no puede generalizar bien a datos nuevos y no vistos.

#Since we have already taken best parameter for our linear model.
#Now we can see how model performs on test dataset
y_pred = lm.predict(X_test)
data = {'y_test':y_test,'y_pred':y_pred.round(2)}
pd.DataFrame(data=data)

Este código te permite comparar los valores reales (y_test) con las predicciones del
modelo (y_pred) en el conjunto de prueba. Puedes analizar las diferencias entre los valores
para evaluar qué tan bien el modelo se ajusta a los datos nuevos y no vistos.

#coefficients of regression model


coeff = f'Profit = ({lm.intercept_} x Bias) '
for i,col in zip(range(3),df4.columns[[0,2,3]]):
coeff+=f'+\n ({lm.coef_[i]} x {col}) '

print(coeff)
Este código genera una representación legible de la ecuación del modelo de regresión lineal
entrenado, incluyendo el término de intercepción y los coeficientes de las variables
independientes.
 Profit: Es la variable dependiente que el modelo intenta predecir, en este caso, se refiere
a la ganancia.
 Bias (término de intercepto): 49491.03. Este valor representa la ganancia promedio
que se predice cuando todas las variables independientes son iguales a cero. En otras
palabras, si una empresa no gasta nada en I+D y no se encuentra en Florida ni en Nueva
York, el modelo predice una ganancia promedio de $49,491.03.
 R&D Spend (Gasto en I+D): 0.8578. Este coeficiente indica la relación entre el gasto
en I+D y la ganancia. Un aumento de una unidad en el gasto en I+D se asocia con un
aumento de $0.8578 en la ganancia prevista. En otras palabras, invertir en I+D se asocia
con un aumento en la ganancia esperada.
 State_Florida: -695.59. Este coeficiente indica la diferencia en la ganancia esperada
para las empresas ubicadas en Florida en comparación con la categoría de referencia (que
no se muestra explícitamente en la ecuación). Las empresas en Florida se asocian con una
ganancia $695.59 menor en promedio que la categoría de referencia.
 State_New York: -3010.15. Este coeficiente indica la diferencia en la ganancia
esperada para las empresas ubicadas en Nueva York en comparación con la categoría de
referencia. Las empresas en Nueva York se asocian con una ganancia $3010.15 menor en
promedio que la categoría de referencia.
plt.title('Residual Plot',size=20)
sns.residplot(y_test,y_pred,color='purple')
plt.xlabel('y_pred',size=15)
plt.ylabel('Residues',size=15)
Un diagrama de residuos ayuda a visualizar la relación entre los valores predichos y los residuos.
Idealmente, los residuos deberían estar dispersos aleatoriamente alrededor de la línea horizontal
en cero. Esto indica que los errores del modelo (diferencias entre los valores reales y los
predichos) son aleatorios e independientes de los valores predichos.
sns.scatterplot(y_test,y_pred)
plt.xlabel('y_test',size=15)
plt.ylabel('y_pred',size=15)
Si los puntos muestran una tendencia general hacia arriba de izquierda a derecha, sugiere una
correlación positiva entre y_test y y_pred. Esto significa que a medida que aumentan los
valores de y_test, los valores de y_pred también tienden a aumentar.
from sklearn import metrics
r2= metrics.r2_score(y_test,y_pred)
N,p = X_test.shape
adj_r2 = 1-((1-r2)*(N-1))/(N-p-1)
print(f'R^2 = {r2}')
print(f'Adjusted R^2 = {adj_r2}')

1. R² (Coeficiente de Determinación):
o Su rango va de 0 a 1, donde 1 indica un ajuste perfecto y 0 indica que no hay
relación lineal.
2. R² Ajustado:
o Esta métrica es una variante del R² que tiene en cuenta el número de
variables independientes en el modelo.
o El R² ajustado se suele utilizar cuando se comparan modelos con diferente
número de características, ya que penaliza a los modelos con más
características por su complejidad añadida.

Interpretación:

 Puntaje R² de 0.924: Esto indica una correlación positiva muy fuerte entre los
valores predichos (y_pred) y los valores reales (y_test). Sugiere que el modelo
explica el 92,42% de la varianza en la variable dependiente.
 Puntaje R² Ajustado de 0.886: Este puntaje R² ajustado es ligeramente inferior al
R², teniendo en cuenta el número de características en el modelo. Sigue indicando
una fuerte correlación positiva y sugiere que el modelo funciona bien incluso
considerando la complejidad del mismo.

En general, estas métricas sugieren que el modelo de regresión lineal funciona bien y
predice eficazmente la variable dependiente en función de las variables
independientes.

En resumen, el código calcula e imprime dos métricas (R² y R² ajustado) para evaluar
el rendimiento de un modelo de regresión lineal. Los resultados sugieren que el
modelo funciona bien y predice eficazmente la variable dependiente en función de las
variables independientes. Sin embargo, es importante considerar otros factores y
visualizar los datos para una evaluación completa.

9. Conclusión
Después de observar el modelo completo podemos concluir que:

1. Las ganancias de una startup dependen en gran medida de cuánto gastan en I+D, es decir,
investigación y desarrollo. Cuanto mayor es el gasto en I+D, mayor es el beneficio y viceversa.
2. Comenzar a operar en CALIFORNIA espera obtener más ganancias que operar en otros dos
estados, "Florida" y "Nueva York", suponiendo que el gasto en I+D de los tres estados sea el
mismo.

Entonces, según los datos proporcionados y nuestro modelo de aprendizaje automático, podemos
decir que es bueno iniciar un negocio en CALFORNIA (considere también otros factores que no
están cubiertos en el modelo).

También podría gustarte