Lineaire Regressie Bouwen met Hulp van NumPy
Je weet al wat eenvoudige lineaire regressie is en hoe je de lijn vindt die het beste bij de gegevens past. Je doorloopt nu alle stappen voor het bouwen van een lineaire regressie voor een echte dataset.
Gegevens laden
We hebben een bestand, simple_height_data.csv
, met de gegevens uit onze voorbeelden. We laden het bestand en bekijken het:
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
De dataset bevat twee kolommen: de eerste is 'Father'
, wat de invoerfeature is, en de tweede is 'Height'
, wat onze doelvariabele is.
We wijzen onze doelwaarden toe aan de variabele y
en de featurewaarden aan X
en maken een spreidingsdiagram.
12345678910import pandas as pd import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Parameters bepalen
NumPy heeft een handige functie om de parameters van lineaire regressie te bepalen.
Lineaire regressie is een polynomiale regressie van graad 1 (we bespreken polynomiale regressie in latere secties). Daarom moeten we deg=1
instellen om de parameters voor de lineaire regressie te verkrijgen.
Hier volgt een voorbeeld:
12345678910import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Als u niet bekend bent met de syntaxis beta_1, beta_0 = np.polyfit(X,y,1)
, dit wordt unpacking genoemd. Als u een iterator heeft (bijvoorbeeld een lijst, NumPy-array of pandas-serie) met twee elementen, dan is schrijven
a, b = my_iterator
hetzelfde als
a = my_iterator[0]
b = my_iterator[1]
En aangezien de returnwaarde van de functie polyfit()
een NumPy-array met twee waarden is, mogen we dit op deze manier doen.
Voorspellingen maken
Nu kunnen we de lijn plotten en nieuwe variabelen voorspellen met behulp van de parameters.
123456789101112import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Nu we de parameters hebben, kunnen we de lineaire regressievergelijking gebruiken om nieuwe waarden te voorspellen.
1234567891011import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Het is dus vrij eenvoudig om de parameters van de lineaire regressie te verkrijgen. Sommige bibliotheken kunnen echter ook extra informatie geven.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
What extra information can other libraries provide for linear regression?
Can you explain how to interpret the parameters beta_0 and beta_1?
How can I evaluate the performance of this linear regression model?
Awesome!
Completion rate improved to 5.26
Lineaire Regressie Bouwen met Hulp van NumPy
Veeg om het menu te tonen
Je weet al wat eenvoudige lineaire regressie is en hoe je de lijn vindt die het beste bij de gegevens past. Je doorloopt nu alle stappen voor het bouwen van een lineaire regressie voor een echte dataset.
Gegevens laden
We hebben een bestand, simple_height_data.csv
, met de gegevens uit onze voorbeelden. We laden het bestand en bekijken het:
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
De dataset bevat twee kolommen: de eerste is 'Father'
, wat de invoerfeature is, en de tweede is 'Height'
, wat onze doelvariabele is.
We wijzen onze doelwaarden toe aan de variabele y
en de featurewaarden aan X
en maken een spreidingsdiagram.
12345678910import pandas as pd import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Parameters bepalen
NumPy heeft een handige functie om de parameters van lineaire regressie te bepalen.
Lineaire regressie is een polynomiale regressie van graad 1 (we bespreken polynomiale regressie in latere secties). Daarom moeten we deg=1
instellen om de parameters voor de lineaire regressie te verkrijgen.
Hier volgt een voorbeeld:
12345678910import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Als u niet bekend bent met de syntaxis beta_1, beta_0 = np.polyfit(X,y,1)
, dit wordt unpacking genoemd. Als u een iterator heeft (bijvoorbeeld een lijst, NumPy-array of pandas-serie) met twee elementen, dan is schrijven
a, b = my_iterator
hetzelfde als
a = my_iterator[0]
b = my_iterator[1]
En aangezien de returnwaarde van de functie polyfit()
een NumPy-array met twee waarden is, mogen we dit op deze manier doen.
Voorspellingen maken
Nu kunnen we de lijn plotten en nieuwe variabelen voorspellen met behulp van de parameters.
123456789101112import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Nu we de parameters hebben, kunnen we de lineaire regressievergelijking gebruiken om nieuwe waarden te voorspellen.
1234567891011import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Het is dus vrij eenvoudig om de parameters van de lineaire regressie te verkrijgen. Sommige bibliotheken kunnen echter ook extra informatie geven.
Bedankt voor je feedback!