Ciencia de datos : pendiente e intersección


Pendiente e intersección

Ahora explicaremos cómo encontramos la pendiente y el intercepto de nuestra función:

f(x) = 2x + 80

La siguiente imagen apunta a la Pendiente, que indica qué tan empinada es la línea, y la Intersección, que es el valor de y, cuando x = 0 (el punto donde la línea diagonal cruza el eje vertical). La línea roja es la continuación de la línea azul de la página anterior.

Función lineal

Encuentra la pendiente

La pendiente se define como la cantidad de calorías quemadas aumenta, si el pulso promedio aumenta en uno. Nos dice qué tan "empinada" es la línea diagonal.

Podemos encontrar la pendiente usando la diferencia proporcional de dos puntos del gráfico.

  • Si el pulso promedio es 80, el consumo de calorías es 240
  • Si el pulso promedio es 90, el consumo de calorías es 260

Vemos que si el pulso promedio aumenta en 10, el consumo de calorías aumenta en 20.

Slope = 20/10 = 2

La pendiente es 2.

Matemáticamente, la pendiente se define como:

Slope = f(x2) - f(x1) / x2-x1

f(x2) = Segunda observación de Calorie_Burnage = 260
f(x1) = Primera observación de Calorie_Burnage = 240
x2 = Segunda observación de Average_Pulse = 90
x1 = Primera observación de Average_Pulse = 80

Slope = (260-240) / (90 - 80) = 2

¡Sea consistente para definir las observaciones en el orden correcto! Si no, ¡la predicción no será correcta!

Usa Python para encontrar la pendiente

Calcula la pendiente con el siguiente código:

Ejemplo

def slope(x1, y1, x2, y2):
  s = (y2-y1)/(x2-x1)
  return s

print (slope(80,240,90,260))

Encuentra la intercepción

La intercepción se utiliza para afinar la capacidad de las funciones para predecir Calorie_Burnage.

La intersección es donde la línea diagonal cruza el eje y, si estuviera completamente dibujada.

El intercepto es el valor de y, cuando x = 0.

Aquí, vemos que si el pulso promedio (x) es cero, entonces el consumo de calorías (y) es 80.

Entonces, la intersección es 80.

A veces, la intersección tiene un significado práctico. A veces no.

¿Tiene sentido que el pulso promedio sea cero?

No, estarías muerto y ciertamente no quemarías ninguna caloría.

Sin embargo, necesitamos incluir el intercepto para completar la capacidad de la función matemática para predecir Calorie_Burnage correctamente.

Otros ejemplos donde la intersección de una función matemática puede tener un significado práctico:

  • Predecir los ingresos de los próximos años utilizando los gastos de marketing (¿Cuántos ingresos tendremos el próximo año, si los gastos de marketing son cero?). Es probable suponer que una empresa seguirá teniendo algunos ingresos aunque no gaste dinero en marketing.
  • Uso de combustible con la velocidad (¿Cuánto combustible usamos si la velocidad es igual a 0 mph?). Un automóvil que usa gasolina seguirá usando combustible cuando esté inactivo.


Encuentra la pendiente y la intersección usando Python

La np.polyfit()función devuelve la pendiente y el intercepto.

Si procedemos con el siguiente código, podemos obtener la pendiente y el intercepto de la función.

Ejemplo

import pandas as pd
import numpy as np

health_data = pd.read_csv("data.csv", header=0, sep=",")

x = health_data["Average_Pulse"]
y = health_data["Calorie_Burnage"]
slope_intercept = np.polyfit(x,y,1)

print(slope_intercept)

Ejemplo explicado:

  • Aísle las variables Average_Pulse (x) y Calorie_Burnage (y) de health_data.
  • Llame a la función np.polyfit().
  • El último parámetro de la función especifica el grado de la función, que en este caso es "1".

Consejo: funciones lineales = función de 1 grado. En nuestro ejemplo, la función es lineal, que está en el 1.grado. Eso significa que todos los coeficientes (los números) están en la potencia de uno.

Ahora hemos calculado la pendiente (2) y la intersección (80). Podemos escribir la función matemática de la siguiente manera:

Predecir Calorie_Burnage usando una expresión matemática:

f(x) = 2x + 80

Tarea:

Ahora, queremos predecir el consumo de calorías si el pulso promedio es 135.

Recuerda que el intercepto es una constante. Una constante es un número que no cambia.

Ahora podemos sustituir la entrada x con 135:

f(135) = 2 * 135 + 80 = 350

Si el pulso promedio es 135, el consumo de calorías es 350.


Definir la función matemática en Python

Aquí está exactamente la misma función matemática, pero en Python. La función devuelve 2*x + 80, con x como entrada:

Ejemplo

def my_function(x):
  return 2*x + 80

print (my_function(135))

Intenta reemplazar x con 140 y 150.


Trazar un nuevo gráfico en Python

Aquí, trazamos el mismo gráfico que antes, pero formateamos un poco el eje.

El valor máximo del eje y ahora es 400 y para el eje x es 150:

Ejemplo

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line'),
plt.ylim(ymin=0, ymax=400)
plt.xlim(xmin=0, xmax=150)

plt.show()

Ejemplo explicado

  • Importe el módulo pyplot de la biblioteca matplotlib
  • Trazar los datos de Average_Pulse contra Calorie_Burnage
  • kind='line'nos dice qué tipo de parcela queremos. Aquí, queremos tener una línea recta.
  • plt.ylim() y plt.xlim() nos dicen en qué valor queremos que el eje comience y se detenga.
  • plt.show() nos muestra la salida