Bygge Lineær Regresjon Med NumPy
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 på innholdet:
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
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 våre til variabelen y
og funksjonsverdiene til X
, og lager et spredningsdiagram.
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()
Finne parametere
NumPy har en nyttig funksjon for å finne parameterne til lineær regresjon.
Lineær regresjon er en polynomregresjon av grad 1 (vi vil diskutere polynomregresjon i senere seksjoner). Derfor må vi sette deg=1
for å få parameterne for den lineære regresjonen.
Her er et eksempel:
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)
Hvis du ikke er kjent med syntaksen beta_1, beta_0 = np.polyfit(X,y,1)
, kalles dette oppakking. Hvis du har en iterator (for eksempel en liste, NumPy-array eller pandas-serie) som har to elementer, vil
a, b = my_iterator
være det samme som
a = my_iterator[0]
b = my_iterator[1]
Og siden returverdien fra funksjonen polyfit()
er et NumPy-array med to verdier, kan vi gjøre dette.
Lage prediksjoner
Nå kan vi plotte linjen og forutsi nye variabler ved hjelp av parameterne.
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()
Nå som vi har parameterne, kan vi bruke lineær regresjonslikningen til å forutsi nye verdier.
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)
Det er altså ganske enkelt å finne parameterne til lineær regresjon. Men noen biblioteker kan også gi deg tilleggsinformasjon.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 5.26
Bygge Lineær Regresjon Med NumPy
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 på innholdet:
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
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 våre til variabelen y
og funksjonsverdiene til X
, og lager et spredningsdiagram.
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()
Finne parametere
NumPy har en nyttig funksjon for å finne parameterne til lineær regresjon.
Lineær regresjon er en polynomregresjon av grad 1 (vi vil diskutere polynomregresjon i senere seksjoner). Derfor må vi sette deg=1
for å få parameterne for den lineære regresjonen.
Her er et eksempel:
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)
Hvis du ikke er kjent med syntaksen beta_1, beta_0 = np.polyfit(X,y,1)
, kalles dette oppakking. Hvis du har en iterator (for eksempel en liste, NumPy-array eller pandas-serie) som har to elementer, vil
a, b = my_iterator
være det samme som
a = my_iterator[0]
b = my_iterator[1]
Og siden returverdien fra funksjonen polyfit()
er et NumPy-array med to verdier, kan vi gjøre dette.
Lage prediksjoner
Nå kan vi plotte linjen og forutsi nye variabler ved hjelp av parameterne.
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()
Nå som vi har parameterne, kan vi bruke lineær regresjonslikningen til å forutsi nye verdier.
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)
Det er altså ganske enkelt å finne parameterne til lineær regresjon. Men noen biblioteker kan også gi deg tilleggsinformasjon.
Takk for tilbakemeldingene dine!