Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Lineaire Regressie Bouwen | Sectie
Essentiële Supervised Learning

bookLineaire Regressie Bouwen

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:

123456
import 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
copy

Het 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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Parameters vinden

Voor het implementeren van lineaire regressie in Scikit-learn gebruiken we de klasse LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parameters

De klasse LinearRegression heeft verschillende parameters die bepalen hoe het model wordt gefit.

  • fit_intercept (standaard=True): Bepaalt of de intercept (bias) voor dit model wordt berekend. Indien ingesteld op False, wordt er geen intercept gebruikt in de berekeningen (d.w.z. data wordt verwacht gecentreerd te zijn).
  • copy_X (standaard=True): Indien True, wordt X gekopieerd; anders kan het worden overschreven.
  • n_jobs (standaard=None): Het aantal taken dat wordt gebruikt voor de berekening. Dit levert alleen snelheidswinst op voor n_targets > 1 en voldoende grote problemen. None betekent 1 tenzij in een joblib.parallel_backend context. -1 betekent gebruik van alle processors.
  • positive (standaard=False): Indien ingesteld op True, worden de coëfficiënten geforceerd positief te zijn. Deze optie wordt alleen ondersteund voor dichte arrays.

Veelgebruikte methoden

  • fit(X, y): Het lineaire model fitten.
  • predict(X): Voorspellen met het lineaire model.
  • score(X, y): Geeft de determinatiecoëfficiënt van de voorspelling terug.

Attributen

  • coef_: Geschatte coëfficiënten voor het lineaire regressieprobleem.
  • intercept_: Onafhankelijke term in het lineaire model.

In Scikit-learn gebruiken we de LinearRegression-klasse uit de module linear_model. In tegenstelling tot NumPy definiëren we hier de graad niet; deze klasse is specifiek ontworpen voor lineaire modellen. We gebruiken de .fit()-methode om de parameters te berekenen.

Hier is een voorbeeld:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Opmerking

Als u niet bekend bent met de syntaxis model.intercept_ en model.coef_, dit is een conventie binnen Scikit-learn. Attributen die worden berekend (geleerd) tijdens het trainingsproces eindigen altijd met een underscore _ (bijvoorbeeld intercept_, coef_). De intercept_ is een enkele waarde, terwijl coef_ een array is die de coëfficiënten voor elke feature bevat (bij eenvoudige lineaire regressie bevat deze slechts één item).

Voorspellingen maken

Nu kunnen we de lijn plotten en nieuwe variabelen voorspellen met het getrainde model.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Nu we het getrainde model hebben, kunnen we de .predict()-methode gebruiken om nieuwe waarden te voorspellen.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Het verkrijgen van de parameters van de lineaire regressie is vrij eenvoudig. Sommige bibliotheken kunnen echter ook extra informatie verschaffen.

question mark

Welke klasse wordt gebruikt om lineaire regressie te implementeren in Scikit-learn?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookLineaire Regressie Bouwen

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:

123456
import 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
copy

Het 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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Parameters vinden

Voor het implementeren van lineaire regressie in Scikit-learn gebruiken we de klasse LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parameters

De klasse LinearRegression heeft verschillende parameters die bepalen hoe het model wordt gefit.

  • fit_intercept (standaard=True): Bepaalt of de intercept (bias) voor dit model wordt berekend. Indien ingesteld op False, wordt er geen intercept gebruikt in de berekeningen (d.w.z. data wordt verwacht gecentreerd te zijn).
  • copy_X (standaard=True): Indien True, wordt X gekopieerd; anders kan het worden overschreven.
  • n_jobs (standaard=None): Het aantal taken dat wordt gebruikt voor de berekening. Dit levert alleen snelheidswinst op voor n_targets > 1 en voldoende grote problemen. None betekent 1 tenzij in een joblib.parallel_backend context. -1 betekent gebruik van alle processors.
  • positive (standaard=False): Indien ingesteld op True, worden de coëfficiënten geforceerd positief te zijn. Deze optie wordt alleen ondersteund voor dichte arrays.

Veelgebruikte methoden

  • fit(X, y): Het lineaire model fitten.
  • predict(X): Voorspellen met het lineaire model.
  • score(X, y): Geeft de determinatiecoëfficiënt van de voorspelling terug.

Attributen

  • coef_: Geschatte coëfficiënten voor het lineaire regressieprobleem.
  • intercept_: Onafhankelijke term in het lineaire model.

In Scikit-learn gebruiken we de LinearRegression-klasse uit de module linear_model. In tegenstelling tot NumPy definiëren we hier de graad niet; deze klasse is specifiek ontworpen voor lineaire modellen. We gebruiken de .fit()-methode om de parameters te berekenen.

Hier is een voorbeeld:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Opmerking

Als u niet bekend bent met de syntaxis model.intercept_ en model.coef_, dit is een conventie binnen Scikit-learn. Attributen die worden berekend (geleerd) tijdens het trainingsproces eindigen altijd met een underscore _ (bijvoorbeeld intercept_, coef_). De intercept_ is een enkele waarde, terwijl coef_ een array is die de coëfficiënten voor elke feature bevat (bij eenvoudige lineaire regressie bevat deze slechts één item).

Voorspellingen maken

Nu kunnen we de lijn plotten en nieuwe variabelen voorspellen met het getrainde model.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Nu we het getrainde model hebben, kunnen we de .predict()-methode gebruiken om nieuwe waarden te voorspellen.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Het verkrijgen van de parameters van de lineaire regressie is vrij eenvoudig. Sommige bibliotheken kunnen echter ook extra informatie verschaffen.

question mark

Welke klasse wordt gebruikt om lineaire regressie te implementeren in Scikit-learn?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 3
some-alt