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 Ved Bruk Av Statsmodels | Enkel Lineær Regresjon
Lineær Regresjon med Python
course content

Kursinnhold

Lineær Regresjon med Python

Lineær Regresjon med Python

1. Enkel Lineær Regresjon
2. Multippel Lineær Regresjon
3. Polynomisk Regresjon
4. Velge den Beste Modellen

book
Bygge Lineær Regresjon Ved Bruk Av Statsmodels

I forrige kapittel brukte vi en funksjon fra NumPy for å beregne parameterne.
Nå skal vi bruke et klasseobjekt i stedet for funksjonen for å representere lineær regresjon. Denne tilnærmingen krever flere kodelinjer for å finne parameterne, men lagrer mye nyttig informasjon i objektet og gjør prediksjonen mer oversiktlig.

Bygging av en lineær regresjonsmodell

I statsmodels kan OLS-klassen brukes til å opprette en lineær regresjonsmodell.

Vi må først initialisere et OLS-klasseobjekt ved å bruke sm.OLS(y, X_tilde). Deretter trenes det ved å bruke fit()-metoden.

model = sm.OLS(y, X_tilde)
model = model.fit()

Som er ekvivalent med:

model = sm.OLS(y, X_tilde).fit()
Note
Merk

Konstruktøren til OLS-klassen forventer et spesifikt array X_tilde som input, slik vi så i Normal Equation. Derfor må du konvertere ditt X-array til X_tilde. Dette kan gjøres ved å bruke funksjonen sm.add_constant().

Finne parametere

Når modellen er trent, kan du enkelt få tilgang til parameterne ved å bruke attributtet params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Lage prediksjoner

Nye observasjoner kan enkelt predikeres ved å bruke predict()-metoden, men du må også forhåndsprosessere inputen for disse:

1234567891011121314151617
import statsmodels.api as sm import 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
copy

Hente sammendraget

Som du sikkert har lagt merke til, er det ikke like enkelt å bruke OLS-klassen som funksjonen polyfit(). Men det å bruke OLS har sine fordeler. Under treningen beregner den mye statistisk informasjon. Du kan få tilgang til denne informasjonen ved å bruke summary()-metoden.

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Det er mye statistikk. Vi vil diskutere de viktigste delene av tabellen i senere seksjoner.

question mark

Velg det FEILAKTIGE utsagnet.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 4

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

course content

Kursinnhold

Lineær Regresjon med Python

Lineær Regresjon med Python

1. Enkel Lineær Regresjon
2. Multippel Lineær Regresjon
3. Polynomisk Regresjon
4. Velge den Beste Modellen

book
Bygge Lineær Regresjon Ved Bruk Av Statsmodels

I forrige kapittel brukte vi en funksjon fra NumPy for å beregne parameterne.
Nå skal vi bruke et klasseobjekt i stedet for funksjonen for å representere lineær regresjon. Denne tilnærmingen krever flere kodelinjer for å finne parameterne, men lagrer mye nyttig informasjon i objektet og gjør prediksjonen mer oversiktlig.

Bygging av en lineær regresjonsmodell

I statsmodels kan OLS-klassen brukes til å opprette en lineær regresjonsmodell.

Vi må først initialisere et OLS-klasseobjekt ved å bruke sm.OLS(y, X_tilde). Deretter trenes det ved å bruke fit()-metoden.

model = sm.OLS(y, X_tilde)
model = model.fit()

Som er ekvivalent med:

model = sm.OLS(y, X_tilde).fit()
Note
Merk

Konstruktøren til OLS-klassen forventer et spesifikt array X_tilde som input, slik vi så i Normal Equation. Derfor må du konvertere ditt X-array til X_tilde. Dette kan gjøres ved å bruke funksjonen sm.add_constant().

Finne parametere

Når modellen er trent, kan du enkelt få tilgang til parameterne ved å bruke attributtet params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Lage prediksjoner

Nye observasjoner kan enkelt predikeres ved å bruke predict()-metoden, men du må også forhåndsprosessere inputen for disse:

1234567891011121314151617
import statsmodels.api as sm import 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
copy

Hente sammendraget

Som du sikkert har lagt merke til, er det ikke like enkelt å bruke OLS-klassen som funksjonen polyfit(). Men det å bruke OLS har sine fordeler. Under treningen beregner den mye statistisk informasjon. Du kan få tilgang til denne informasjonen ved å bruke summary()-metoden.

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Det er mye statistikk. Vi vil diskutere de viktigste delene av tabellen i senere seksjoner.

question mark

Velg det FEILAKTIGE utsagnet.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 4
some-alt