Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bygge Lineær Regresjon | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Grunnleggende Overvåket Læring

bookBygge Lineær Regresjon

Du kjenner allerede til hva enkel lineær regresjon er og hvordan man finner linjen som passer best til dataene. Nå skal du gå gjennom alle trinnene for å bygge en lineær regresjon for et virkelig datasett.

Laste inn data

Vi har en fil, simple_height_data.csv, med dataene fra eksemplene våre. Vi skal laste inn filen og se nærmere på den:

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

Datasettet har to kolonner: den første er 'Father', som er inndatafunksjonen, og den andre er 'Height', som er vår målvariabel.

Vi tilordner målverdiene til variabelen y og funksjonsverdiene til X, og lager et spredningsdiagram.

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

Finne parametere

For å implementere lineær regresjon i Scikit-learn, bruker vi klassen LinearRegression.

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

Parametere

Klassen LinearRegression har flere parametere som styrer hvordan modellen tilpasses.

  • fit_intercept (standard=True): Bestemmer om konstantleddet (bias) skal beregnes for denne modellen. Hvis satt til False, brukes ikke konstantledd i beregningene (dvs. data forventes å være sentrert).
  • copy_X (standard=True): Hvis True, kopieres X; ellers kan den bli overskrevet.
  • n_jobs (standard=None): Antall jobber som skal brukes til beregningen. Dette gir kun hastighetsforbedring for n_targets > 1 og tilstrekkelig store problemer. None betyr 1 med mindre det er i en joblib.parallel_backend-kontekst. -1 betyr bruk av alle prosessorer.
  • positive (standard=False): Når satt til True, tvinges koeffisientene til å være positive. Dette alternativet støttes kun for tette matriser.

Vanlige metoder

  • fit(X, y): Tilpass den lineære modellen.
  • predict(X): Prediker ved bruk av den lineære modellen.
  • score(X, y): Returnerer forklaringsgraden (determinasjonskoeffisienten) for prediksjonen.

Attributter

  • coef_: Estimerte koeffisienter for lineær regresjon.
  • intercept_: Konstantledd i den lineære modellen.

I Scikit-learn bruker vi LinearRegression-klassen fra linear_model-modulen. I motsetning til NumPy definerer vi ikke graden her; denne klassen er spesifikt laget for lineære modeller. Vi bruker .fit()-metoden for å beregne parameterne.

Her er et eksempel:

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
Merk

Dersom du ikke er kjent med syntaksen model.intercept_ og model.coef_, er dette en konvensjon i Scikit-learn. Attributter som beregnes (læres) under treningsprosessen ender alltid med en understrek _ (f.eks. intercept_, coef_). intercept_ er en enkeltverdi, mens coef_ er et array som inneholder koeffisientene for hver funksjon (i enkel lineær regresjon har den kun ett element).

Lage prediksjoner

Nå kan vi plotte linjen og forutsi nye variabler ved å bruke den trente modellen.

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

Nå som vi har den trente modellen, kan vi bruke .predict()-metoden for å forutsi nye verdier.

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

Det er altså ganske enkelt å hente ut parameterne til en lineær regresjon. Men noen biblioteker kan også gi deg tilleggsinformasjon.

question mark

Hvilken klasse brukes for å implementere lineær regresjon i Scikit-learn?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

bookBygge Lineær Regresjon

Sveip for å vise menyen

Du kjenner allerede til hva enkel lineær regresjon er og hvordan man finner linjen som passer best til dataene. Nå skal du gå gjennom alle trinnene for å bygge en lineær regresjon for et virkelig datasett.

Laste inn data

Vi har en fil, simple_height_data.csv, med dataene fra eksemplene våre. Vi skal laste inn filen og se nærmere på den:

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

Datasettet har to kolonner: den første er 'Father', som er inndatafunksjonen, og den andre er 'Height', som er vår målvariabel.

Vi tilordner målverdiene til variabelen y og funksjonsverdiene til X, og lager et spredningsdiagram.

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

Finne parametere

For å implementere lineær regresjon i Scikit-learn, bruker vi klassen LinearRegression.

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

Parametere

Klassen LinearRegression har flere parametere som styrer hvordan modellen tilpasses.

  • fit_intercept (standard=True): Bestemmer om konstantleddet (bias) skal beregnes for denne modellen. Hvis satt til False, brukes ikke konstantledd i beregningene (dvs. data forventes å være sentrert).
  • copy_X (standard=True): Hvis True, kopieres X; ellers kan den bli overskrevet.
  • n_jobs (standard=None): Antall jobber som skal brukes til beregningen. Dette gir kun hastighetsforbedring for n_targets > 1 og tilstrekkelig store problemer. None betyr 1 med mindre det er i en joblib.parallel_backend-kontekst. -1 betyr bruk av alle prosessorer.
  • positive (standard=False): Når satt til True, tvinges koeffisientene til å være positive. Dette alternativet støttes kun for tette matriser.

Vanlige metoder

  • fit(X, y): Tilpass den lineære modellen.
  • predict(X): Prediker ved bruk av den lineære modellen.
  • score(X, y): Returnerer forklaringsgraden (determinasjonskoeffisienten) for prediksjonen.

Attributter

  • coef_: Estimerte koeffisienter for lineær regresjon.
  • intercept_: Konstantledd i den lineære modellen.

I Scikit-learn bruker vi LinearRegression-klassen fra linear_model-modulen. I motsetning til NumPy definerer vi ikke graden her; denne klassen er spesifikt laget for lineære modeller. Vi bruker .fit()-metoden for å beregne parameterne.

Her er et eksempel:

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
Merk

Dersom du ikke er kjent med syntaksen model.intercept_ og model.coef_, er dette en konvensjon i Scikit-learn. Attributter som beregnes (læres) under treningsprosessen ender alltid med en understrek _ (f.eks. intercept_, coef_). intercept_ er en enkeltverdi, mens coef_ er et array som inneholder koeffisientene for hver funksjon (i enkel lineær regresjon har den kun ett element).

Lage prediksjoner

Nå kan vi plotte linjen og forutsi nye variabler ved å bruke den trente modellen.

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

Nå som vi har den trente modellen, kan vi bruke .predict()-metoden for å forutsi nye verdier.

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

Det er altså ganske enkelt å hente ut parameterne til en lineær regresjon. Men noen biblioteker kan også gi deg tilleggsinformasjon.

question mark

Hvilken klasse brukes for å implementere lineær regresjon i Scikit-learn?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3
some-alt