Data Science - Helling en Intercept


Helling en onderschepping

Nu zullen we uitleggen hoe we de helling en het snijpunt van onze functie hebben gevonden:

f(x) = 2x + 80

De afbeelding hieronder wijst naar de helling - die aangeeft hoe steil de lijn is, en het snijpunt - wat de waarde is van y, wanneer x = 0 (het punt waar de diagonale lijn de verticale as kruist). De rode lijn is het vervolg van de blauwe lijn van vorige pagina.

Lineaire functie

Vind de helling

De helling wordt gedefinieerd als hoeveel calorieverbranding toeneemt, als de gemiddelde hartslag met één toeneemt. Het vertelt ons hoe "steil" de diagonale lijn is.

We kunnen de helling vinden door het proportionele verschil van twee punten uit de grafiek te gebruiken.

  • Als de gemiddelde hartslag 80 is, is de calorieverbranding 240
  • Als de gemiddelde puls 90 is, is de calorieverbranding 260

We zien dat als de gemiddelde hartslag met 10 toeneemt, de calorieverbranding met 20 toeneemt.

Slope = 20/10 = 2

De helling is 2.

Wiskundig wordt helling gedefinieerd als:

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

f(x2) = Tweede waarneming van Calorie_Burnage = 260
f(x1) = Eerste waarneming van Calorie_Burnage = 240
x2 = Tweede waarneming van Average_Pulse = 90
x1 = Eerste waarneming van Average_Pulse = 80

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

Wees consistent om de waarnemingen in de juiste volgorde te definiëren! Zo niet, dan klopt de voorspelling niet!

Python gebruiken om de helling te vinden

Bereken de helling met de volgende code:

Voorbeeld

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

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

Vind het onderscheppen

Het onderscheppen wordt gebruikt om het vermogen van de functies om Calorie_Burnage te voorspellen, te verfijnen.

Het snijpunt is waar de diagonale lijn de y-as kruist, als deze volledig zou zijn getekend.

Het snijpunt is de waarde van y, wanneer x = 0.

Hier zien we dat als de gemiddelde hartslag (x) nul is, het calorieverbruik (y) 80 is.

Het intercept is dus 80.

Soms heeft het onderscheppen een praktische betekenis. Soms niet.

Is het logisch dat de gemiddelde puls nul is?

Nee, je zou dood zijn en je zou zeker geen calorieën verbranden.

We moeten echter het intercept opnemen om het vermogen van de wiskundige functie om Calorie_Burnage correct te voorspellen, te voltooien.

Andere voorbeelden waarbij het onderscheppen van een wiskundige functie een praktische betekenis kan hebben:

  • De inkomsten voor volgend jaar voorspellen door gebruik te maken van marketinguitgaven (hoeveel inkomsten zullen we volgend jaar hebben als de marketinguitgaven nul zijn?). Er wordt waarschijnlijk aangenomen dat een bedrijf nog steeds wat inkomsten zal hebben, ook al besteedt het geen geld aan marketing.
  • Brandstofverbruik met snelheid (Hoeveel brandstof gebruiken we als de snelheid gelijk is aan 0 mph?). Een auto die benzine gebruikt, verbruikt nog steeds brandstof als hij inactief is.


Vind de helling en onderschep met Python

De np.polyfit()functie retourneert de helling en het snijpunt.

Als we doorgaan met de volgende code, kunnen we zowel de helling als het onderscheppen van de functie krijgen.

Voorbeeld

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)

Voorbeeld uitgelegd:

  • Isoleer de variabelen Average_Pulse (x) en Calorie_Burnage (y) van health_data.
  • Roep de functie np.polyfit() aan.
  • De laatste parameter van de functie specificeert de graad van de functie, in dit geval "1".

Tip: lineaire functies = 1.gradenfunctie. In ons voorbeeld is de functie lineair, wat in de 1.graad ligt. Dat betekent dat alle coëfficiënten (de getallen) in de macht van één zijn.

We hebben nu de helling (2) en het snijpunt (80) berekend. We kunnen de wiskundige functie als volgt schrijven:

Voorspel Calorie_Burnage met behulp van een wiskundige uitdrukking:

f(x) = 2x + 80

Taak:

Nu willen we het calorieverbruik voorspellen als de gemiddelde hartslag 135 is.

Onthoud dat het intercept een constante is. Een constante is een getal dat niet verandert.

We kunnen nu de invoer x vervangen door 135:

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

Als de gemiddelde hartslag 135 is, is het calorieverbruik 350.


Definieer de wiskundige functie in Python

Hier is exact dezelfde wiskundige functie, maar dan in Python. De functie retourneert 2*x + 80, met x als invoer:

Voorbeeld

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

print (my_function(135))

Probeer x te vervangen door 140 en 150.


Een nieuwe grafiek plotten in Python

Hier plotten we dezelfde grafiek als eerder, maar hebben we de as een beetje opgemaakt.

Max waarde van de y-as is nu 400 en voor x-as is 150:

Voorbeeld

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()

Voorbeeld uitgelegd

  • Importeer de pyplot-module van de matplotlib-bibliotheek
  • Zet de gegevens van Average_Pulse tegen Calorie_Burnage
  • kind='line'vertelt ons welk type perceel we willen. Hier willen we een rechte lijn hebben
  • plt.ylim() en plt.xlim() vertellen ons op welke waarde we willen dat de as begint en stopt.
  • plt.show() toont ons de uitvoer