Lineare Regression. Mathematisches und maschinelles Lernen… | von Sandun Dayananda | Juni 2023

0
25


Die lineare Regression ist eine Methode des maschinellen Lernens mit überwachter Klassifizierung.

Angenommen, Sie haben zwei Datensätze wie folgt angegeben

Datensätze
Datensätze

Sie müssen die lineare Regression verwenden, um die Korrelation (Beziehung) zwischen X1 und Y1 aufzubauen. In einer solchen State of affairs können Sie nicht einfach lineare Regressionstechniken für bestimmte Datensätze verwenden. Sie müssen identifizieren, welche Datensätze einer linearen Beziehung folgen. Dazu sollten wir zunächst die Datenpunkte grafisch darstellen. Nachdem wir die Datenpunkte grafisch dargestellt haben, sieht es wie folgt aus.

Streudiagramme
Streudiagramme

Wenn wir die obigen Diagramme visuell analysieren, können wir im Diagramm auf der linken Seite eine Artwork lineare Beziehung erkennen. Das bedeutet, dass wir die lineare Regression für den Datensatz auf der linken Seite verwenden können. Nachdem wir die lineare Beziehung aufgebaut haben, können Sie die Regressionslinie wie im folgenden Bild sehen.

Regressionslinie
Regressionslinie

Es gibt zwei Arten der linearen Regression.

  1. Einfache Regression

Wenn es nur eine unabhängige Variable gibt, die als lineare Regression bezeichnet wird. Bei der einfachen linearen Regression lautet die geschätzte endgültige Gleichung für die Regression

y = ax+b

hier ist a das Neigung und b ist das abfangen

Beim maschinellen Lernen werden die Koeffizienten der Variablen jedoch als bezeichnet Gewichte, Variablen werden aufgerufen als Merkmale und der Abschnitt heißt as Voreingenommenheit.

dann ist die Funktion y = wx+b

y = f(x)

f(x) = wx+b

  1. Multivariable Regression (multivariate lineare Regression)

Wenn zwei oder mehr unabhängige Variablen vorliegen, spricht man von multipler linearer Regression.

Nehmen wir an, es gibt 2 Variablen (Merkmale) dann sieht das Diagramm wie in der folgenden Abbildung aus. Versuchen Sie noch nicht, den Code zu verstehen. Am Ende dieses Artikels können Sie es verstehen.

import numpy as np
import plotly.graph_objects as go
from sklearn.linear_model import LinearRegression

# Generate random knowledge for 2 variables
np.random.seed(0)
X1 = np.random.rand(30) * 10
X2 = np.random.rand(30) * 5

# Generate the dependent variable (goal) utilizing a linear equation
y = 2 + 3*X1 + 1.5*X2 + np.random.randn(30) * 2

# Match the a number of linear regression mannequin
X = np.column_stack((X1, X2))
mannequin = LinearRegression()
mannequin.match(X, y)

# Generate a meshgrid for the variables
x1_vals = np.linspace(X1.min(), X1.max(), 20)
x2_vals = np.linspace(X2.min(), X2.max(), 20)
x1, x2 = np.meshgrid(x1_vals, x2_vals)
X_mesh = np.column_stack((x1.ravel(), x2.ravel()))

# Predict the dependent variable values for the meshgrid
y_pred = mannequin.predict(X_mesh).reshape(x1.form)

# Create the 3D scatter plot
fig = go.Determine(knowledge=[
go.Scatter3d(x=X1, y=X2, z=y, mode='markers', marker=dict(color='blue'), name='Data Points'),
go.Scatter3d(x=X1, y=X2, z=model.predict(X), mode='markers', marker=dict(color='red'), name='Estimated Points')
])

# Add the floor plot for estimated factors
fig.add_surface(x=x1, y=x2, z=y_pred, colorscale='viridis', opacity=0.5)

# Set the structure and axis labels
fig.update_layout(scene=dict(xaxis_title='Variable 1', yaxis_title='Variable 2', zaxis_title='Dependent Variable'),
title='A number of Linear Regression')

# Show the plot
fig.present()

lineare Regression mit zwei Variablen

Nehmen wir an, es gibt 3 Variablen (Merkmale) dann sieht das Diagramm wie in der folgenden Abbildung aus. Versuchen Sie noch nicht, den Code zu verstehen. Am Ende dieses Artikels können Sie es verstehen.

import numpy as np
import plotly.graph_objects as go
from sklearn.linear_model import LinearRegression

# Generate random knowledge for 3 variables
np.random.seed(0)
X1 = np.random.rand(30) * 10
X2 = np.random.rand(30) * 5
X3 = np.random.rand(30) * 3

# Generate the dependent variable (goal) utilizing a linear equation
y = 2 + 3*X1 + 1.5*X2 + 0.5*X3 + np.random.randn(30) * 2

# Match the a number of linear regression mannequin
X = np.column_stack((X1, X2, X3))
mannequin = LinearRegression()
mannequin.match(X, y)

# Generate a meshgrid for the variables
x1_vals = np.linspace(X1.min(), X1.max(), 20)
x2_vals = np.linspace(X2.min(), X2.max(), 20)
x3_vals = np.linspace(X3.min(), X3.max(), 20)
x1, x2, x3 = np.meshgrid(x1_vals, x2_vals, x3_vals)
X_mesh = np.column_stack((x1.ravel(), x2.ravel(), x3.ravel()))

# Predict the dependent variable values for the meshgrid
y_pred = mannequin.predict(X_mesh).reshape(x1.form)

# Create the 3D scatter plot
fig = go.Determine(knowledge=[
go.Scatter3d(x=X1, y=X2, z=y, mode='markers', marker=dict(color='blue'), name='Data Points'),
go.Scatter3d(x=X1, y=X2, z=model.predict(X), mode='markers', marker=dict(color='red'), name='Estimated Points')
])

# Add the floor plot for estimated factors
fig.add_surface(x=x1[:,:,0], y=x2[:,:,0], z=y_pred[:,:,0], colorscale='viridis', opacity=0.5)

# Set the structure and axis labels
fig.update_layout(scene=dict(xaxis_title='Variable 1', yaxis_title='Variable 2', zaxis_title='Variable 3',),
title='A number of Linear Regression')

# Show the plot
fig.present()

lineare Regression mit drei Variablen

Wenn wir die beiden Diagramme oben analysieren, können Sie sehen, wie variable Achsen (Achsen) in diesem 3D-Würfel gebildet werden. Dies verdeutlicht, dass es schwieriger ist, sie zu visualisieren, wenn die Anzahl der Variablen (Merkmale) hoch ist.

Wenn in der multivariablen linearen Regression nur zwei Variablen vorhanden sind, sieht die Funktion folgendermaßen aus:

F(𝑥₁, 𝑥₂) = w₀ + w₁𝑥₁ + w₂𝑥₂

Wenn es mehr als zwei Variablen (Merkmale) gibt:

F(𝑥₁, …, 𝑥ₙ) = w₀ + w₁𝑥₁ + ⋯ + wₙ𝑥ₙ

Okay, jetzt kennen Sie die Grundidee der linearen Regression. Bei linearen Regressionsberechnungen versuchen wir immer, die genaueste Hypothesenfunktion zu erstellen. Die Hypothesenfunktion ist die Funktion, die die genaueste Beziehung (Korrelation) zwischen unabhängigen und abhängigen Variablen enthält.

Schauen wir uns das folgende Bild an. Hier sehen Sie einige gegebene Datenpunkte und eine Regressionslinie. Hier sind h1, h2, h3… einige vertikale Abstände zwischen tatsächlichen Datenpunkten und der Regressionslinie. Wir können praktisch verstehen, dass es am genauesten ist, wenn wir diese Abstände zwischen tatsächlichen Datenpunkten und der Regressionsgeraden verringern können, d. h. wenn wir eine Regressionslinie zeichnen können, die die geringsten vertikalen Abstände zu den tatsächlichen Datenpunkten aufweist Regressionslinie (Hypothesefunktion.)

vertikale Abstände

Wir können dies mathematisch wie folgt tun:

h1 = y(exakter Datenpunkt) — y(geschätzter Datenpunkt auf der Regressionsgeraden)

wenn die geschätzte Funktion der Regression ist f(x), Dann:

h1 = y(exakter Datenpunkt) — f(x)

Laut oben,

h₁ = y₁— f(𝑥₁)

h₂ = y₂ – f(𝑥₂)

………………..

Um die beste Regressionslinie zu erhalten (die beste Hypothesenfunktion/die Hypothesenfunktion mit den besten Gewichten/ F(𝑥₁, …, 𝑥ₙ) = w₀ + w₁𝑥₁ + ⋯ + wₙ𝑥ₙ Wir definieren eine Metrik namens SSR (Summe der quadrierten Residuen) und versuche es zu minimieren. Hier sind die Residuen h1-, h2-, …-Werte. Deshalb müssen wir Folgendes minimieren:

(h₁² + h₂² +……..) = Σᵢ₌₁ⁿ(yᵢ — f(xᵢ))²

SSR = Σᵢ₌₁ⁿ(yᵢ — f(xᵢ))²

Wir werden dieses SSR verwenden, um wertvolle Metriken zu definieren.

Okay, es wurden einige andere Metriken definiert, um eine Vorstellung davon zu bekommen Genauigkeit der Regression und der Leistung der Regression.

Dies wird verwendet, um die bestmöglichen Werte für Gewichte der Regressionsfunktion zu ermitteln F(𝑥₁, …, 𝑥ₙ) = w₀ + w₁𝑥₁ + ⋯ + wₙ𝑥ₙ

Hier nehmen wir den Mittelwert des SSR

Kostenfunktion = Mittelwert des SSR

Dies wird als mittlerer quadratischer Fehler (MSE) bezeichnet.

Kostenfunktion = Mittelwert des SSR = mittlerer quadratischer Fehler (MSE)

MSE = SSR/Anzahl der Datenpunkte

MSE = (1/n)Σᵢ₌₁ⁿ(yᵢ — f(xᵢ))²

Mithilfe dieser Kostenfunktion versuchen wir, die Gewichte der Hypothesenfunktion anzupassen. Das bedeutet, dass wir versuchen, den MSE auf einem niedrigen Wert zu halten, während wir verschiedene Gewichte für die Hypothesenfunktion testen. Eine Methode namens Gradientenabstieg schlägt unterschiedliche Werte für die Hypothesenfunktion vor und prüft dann, ob der Wert des MSE kleiner oder größer als der vorherige MSE ist. Durch die kontinuierliche Ausführung dieser Aufgabe werden die Werte durch die Gradientenabstiegsmethode identifiziert, wodurch der SSE auf dem niedrigsten Stand bleibt.

Die Verwendung von MSE als Kostenfunktion zur Bestimmung der bestmöglichen Werte für Gewichte wird als a bezeichnet Methode der gewöhnlichen kleinsten Quadrate (OLS).

Außerdem wird eine weitere Metrik verwendet, um die Leistung der Regression wie folgt zu bestimmen.

Dies ist eine sehr einfache Metrik, die mithilfe von SSR berechnet wird. Das Bestimmtheitsmaß, allgemein als R-Quadrat (R²) bezeichnet, ist eine statistische Metrik zur Beurteilung der Qualität der Modellanpassung. Im Rahmen der Regressionsanalyse wird damit quantifiziert, inwieweit die Regressionslinie die beobachteten Daten genau darstellt.

R² = 1−(Summe der quadrierten Residuen (SSR)/Gesamtsumme der Quadrate (SST))

R² = (∑(yᵢ — ^yᵢ)² / ∑(yᵢ — ȳ)²)

hier ȳ = ∑ y / n

Wenn R² = 1, SSR = 0. Dies bedeutet, dass die Regressionslinie am besten mit den angegebenen Datenpunkten übereinstimmt. Dies ist das beste Korrelationsereignis.

Eine Studie untersucht den Zusammenhang zwischen der Anzahl der Schlafstunden (x) und dem Wachheitsgrad (y) bei Einzelpersonen. Die Regressionsanalyse ergibt die folgende Gleichung für die Regressionsgerade:

y = 0,8 + 1,3x

R²-Berechnung
R²-Berechnung

Wir können nun das Bestimmtheitsmaß (R-Quadrat) berechnen, um die Anpassungsgüte des Modells zu beurteilen.

Zuerst müssen wir die Summe der quadrierten Differenzen zwischen den beobachteten y-Werten und den vorhergesagten y-Werten aus dem Regressionsmodell berechnen. Bezeichnen wir dies als SSR (Summe der quadratischen Regression):

SSR = (y₁ — ^y₁)² + (y₂ — ^y₂)² + (y₃ — ^y₃)² + (y₄ — ^y₄)²

Berechnen der vorhergesagten y-Werte (^y) mithilfe des Regressionsmodells:

^y₁ = 0,8 + 1,3 * 6 = 8,6 ^y₂ = 0,8 + 1,3 * 7 = 9,7 ^y₃ = 0,8 + 1,3 * 8,5 = 11,05 ^y₄ = 0,8 + 1,3 * 9 = 12,7

Ersetzen der Werte:

SSR = (9–8,6)² + (10–9,7)² + (12–11,05)² + (12,5–12,7)²

SSR = 0,16 + 0,09 + 0,9025 + 0,04

SSR = 1,1925

Als nächstes müssen wir die Gesamtquadratsumme (SST) berechnen, die die Summe der quadrierten Differenzen zwischen den beobachteten y-Werten und ihrem Mittelwert (ȳ) darstellt.

Berechnen Sie zunächst den Mittelwert der beobachteten y-Werte:

ȳ = ∑ y / n = (y₁ + y₂ + y₃ + y₄) / 4 = (9 + 10 + 12 + 12,5) / 4 = 43,5 / 4 = 10,875

Berechnen Sie dann den SST:

SST = (y₁ — ȳ)² + (y₂ — ȳ)² + (y₃ — ȳ)² + (y₄ — ȳ)²

SST = (9–10,875)² + (10–10,875)² + (12–10,875)² + (12,5–10,875)²

SST = (-1,875)² + (-0,875)² + (1,125)² + (1,625)²

SST = 3,515625 + 0,765625 + 1,265625 + 2,640625

SST = 8,1875

Jetzt können wir das Bestimmtheitsmaß (R-Quadrat) berechnen:

R² = SSR / SST

R² = 1,1925 / 8,1875

R² ≈ 0,1454

Daher beträgt das Bestimmtheitsmaß (R-Quadrat) für das Regressionsmodell etwa 0,1454. Das bedeutet, dass rund 14,54 % der Variabilität des Wachheitsgrads (y) durch den linearen Zusammenhang mit der Anzahl der Schlafstunden (x) erklärt werden können. Die restlichen 85,46 % der Variabilität werden zugeschrieben

Auch wenn R² = 1 ist, ist SSR = 0. Denn gemäß der obigen Erklärung verhalten sie sich umgekehrt proportional.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here