Ciencia de datos : caso de regresión lineal
Caso: Usar Duración + Pulso Promedio para Predecir Calorie_Burnage
Cree una tabla de regresión lineal con Average_Pulse y Duration como variables explicativas:
Ejemplo
import pandas as pd
import statsmodels.formula.api as smf
full_health_data = pd.read_csv("data.csv", header=0, sep=",")
model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results
= model.fit()
print(results.summary())
Ejemplo explicado:
- Importe la biblioteca statsmodels.formula.api como smf. Statsmodels es una biblioteca estadística en Python.
- Utilice el conjunto full_health_data.
- Cree un modelo basado en Mínimos cuadrados ordinarios con smf.ols(). Observe que la variable explicativa debe escribirse primero entre paréntesis. Utilice el conjunto de datos full_health_data.
- Al llamar a .fit(), obtiene los resultados variables. Esto contiene mucha información sobre el modelo de regresión.
- Llame a summary() para obtener la tabla con los resultados de la regresión lineal.
Producción:
La función de regresión lineal se puede reescribir matemáticamente como:
Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194
Redondeado a dos decimales:
Calorie_Burnage = Average_Pulse * 3.17 +
Duration * 5.84 - 334.52
Definir la función de regresión lineal en Python
Defina la función de regresión lineal en Python para realizar predicciones.
¿Qué es Calorie_Burnage si:
- ¿El pulso promedio es de 110 y la duración de la sesión de entrenamiento es de 60 minutos?
- ¿El pulso promedio es de 140 y la duración de la sesión de entrenamiento es de 45 minutos?
- ¿El pulso promedio es de 175 y la duración de la sesión de entrenamiento es de 20 minutos?
Ejemplo
def Predict_Calorie_Burnage(Average_Pulse,
Duration):
return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)
print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))
Las respuestas:
- El pulso promedio es de 110 y la duración de la sesión de entrenamiento es de 60 minutos = 365 Calorías
- El pulso promedio es de 140 y la duración de la sesión de entrenamiento es de 45 minutos = 372 Calorías
- El pulso promedio es de 175 y la duración de la sesión de entrenamiento es de 20 minutos = 337 Calorías
Accede a los Coeficientes
Mira los coeficientes:
- Calorie_Burnage aumenta en 3,17 si Average_Pulse aumenta en uno.
- Calorie_Burnage aumenta en 5,84 si la duración aumenta en uno.
Acceda al valor P
Mire el valor P para cada coeficiente.
- El valor P es 0,00 para Average_Pulse, Duration y Intercept.
- El valor de p es estadísticamente significativo para todas las variables, ya que es inferior a 0,05.
Así que aquí podemos concluir que Average_Pulse and Duration tiene una relación con Calorie_Burnage.
R-cuadrado ajustado
Hay un problema con R-cuadrado si tenemos más de una variable explicativa.
R-squared casi siempre aumentará si agregamos más variables y nunca disminuirá.
Esto se debe a que estamos agregando más puntos de datos alrededor de la función de regresión lineal.
Si agregamos variables aleatorias que no afectan Calorie_Burnage, corremos el riesgo de concluir erróneamente que la función de regresión lineal se ajusta bien. El R-cuadrado ajustado se ajusta a este problema.
Por lo tanto, es mejor mirar el valor de R-cuadrado ajustado si tenemos más de una variable explicativa.
El R-cuadrado ajustado es 0,814.
El valor de R-Squared siempre está entre 0 y 1 (0% a 100%).
- Un valor alto de R-Squared significa que muchos puntos de datos están cerca de la línea de función de regresión lineal.
- Un valor bajo de R-Squared significa que la línea de la función de regresión lineal no se ajusta bien a los datos.
Conclusión: ¡El modelo se ajusta bien al punto de datos!
¡Felicidades! Ahora ha terminado el módulo final de la biblioteca de ciencia de datos.