Lineaire 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:
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
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.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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 opFalse, wordt er geen intercept gebruikt in de berekeningen (d.w.z. data wordt verwacht gecentreerd te zijn).copy_X(standaard=True): IndienTrue, 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.Nonebetekent 1 tenzij in eenjoblib.parallel_backendcontext.-1betekent gebruik van alle processors.positive(standaard=False): Indien ingesteld opTrue, 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:
1234567891011121314from 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)
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.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Nu we het getrainde model hebben, kunnen we de .predict()-methode gebruiken om nieuwe waarden te voorspellen.
123X_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)
Het verkrijgen van de parameters van de lineaire regressie is vrij eenvoudig. Sommige bibliotheken kunnen echter ook extra informatie verschaffen.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 3.33
Lineaire 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:
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
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.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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 opFalse, wordt er geen intercept gebruikt in de berekeningen (d.w.z. data wordt verwacht gecentreerd te zijn).copy_X(standaard=True): IndienTrue, 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.Nonebetekent 1 tenzij in eenjoblib.parallel_backendcontext.-1betekent gebruik van alle processors.positive(standaard=False): Indien ingesteld opTrue, 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:
1234567891011121314from 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)
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.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Nu we het getrainde model hebben, kunnen we de .predict()-methode gebruiken om nieuwe waarden te voorspellen.
123X_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)
Het verkrijgen van de parameters van de lineaire regressie is vrij eenvoudig. Sommige bibliotheken kunnen echter ook extra informatie verschaffen.
Bedankt voor je feedback!