Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Auswahl der Merkmale | Multiple Lineare Regression
Lineare Regression mit Python
course content

Kursinhalt

Lineare Regression mit Python

Lineare Regression mit Python

1. Einfache Lineare Regression
2. Multiple Lineare Regression
3. Polynomiale Regression
4. Das Beste Modell Auswählen

book
Auswahl der Merkmale

Bei vielen Aufgaben stehen Ihnen zahlreiche Merkmale zur Verfügung, von denen Sie nicht wissen, ob sie nützlich sind. Glücklicherweise können Sie ein Modell mit allen Merkmalen trainieren, anschließend analysieren, welche keinen Einfluss haben, und das Modell dann nur mit den relevanten Merkmalen erneut trainieren.

Warum Merkmale aus dem Modell entfernen?

Wenn Sie dem Modell ein Merkmal hinzufügen, das keinen Bezug zum Zielwert hat, erzeugt dies Rauschen im Modell und verschlechtert die Vorhersage. Bei vielen irrelevanten Merkmalen summiert sich das Rauschen, wodurch die Modellleistung weiter abnimmt.

Wie erkennt man, ob Merkmale gut oder schlecht sind?

Wie bereits bekannt, berechnet die OLS-Klasse während des Trainings auch statistische Kennzahlen. Unter anderem wird ein t-Test durchgeführt, um zu bestimmen, ob jedes Merkmal einen signifikanten Einfluss auf das Ziel hat. Die Testergebnisse finden Sie in der summary()-Tabelle wie unten dargestellt:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Von Interesse ist der p-Wert für jedes Merkmal.

Kurz gesagt: Je niedriger der p-Wert, desto höher das Vertrauen, dass das Merkmal einen Einfluss hat.

In der Statistik muss der Schwellenwert des p-Werts festgelegt werden, der als Signifikanzniveau bezeichnet wird. Dieser liegt üblicherweise bei 0,05. Sobald der p-Wert diesen Schwellenwert überschreitet, wird das Merkmal als nicht einflussreich betrachtet.

In der Praxis verbessern Merkmale mit einem etwas höheren p-Wert als 0,05 jedoch häufig ebenfalls das Modell. Daher ist es besser, das Modell sowohl mit als auch ohne dieses Merkmal zu testen, anstatt es sofort zu entfernen, es sei denn, der p-Wert ist sehr hoch (>0,4). In diesem Fall kann das Merkmal bedenkenlos entfernt werden.

Note
Hinweis

Der p-Wert liegt zwischen 0 und 1. Wenn von einem niedrigen p-Wert die Rede ist, ist damit ein Wert unter 0,05 gemeint; ein hoher p-Wert liegt in der Regel über 0,3–0,5.

In unserem Beispiel erhielten wir p-Werte für die Körpergröße der Mutter und die Konstante von 0,087 bzw. 0,051. Wenn wir Merkmale mit einem p-Wert > 0,05 entfernen, erhalten wir das untenstehende Ergebnis (links).

Selbst visuell lässt sich erkennen, dass das Modell mit Konstante (rechts) besser ist, daher sollte diese nicht aus dem Modell entfernt werden.

Note
Hinweis

Es ist üblich, bei kleinen Datensätzen relativ hohe p-Werte (0,05 bis 0,2) für einflussreiche Merkmale zu erhalten. Der p-Wert zeigt die Sicherheit an, dass das Merkmal tatsächlich einen Einfluss hat. Je mehr Datenpunkte vorhanden sind, desto leichter lassen sich einflussreiche Merkmale von unwichtigen unterscheiden. Angenommen, Sie haben Daten, die zeigen, dass 9 von 10 großen Personen, die Sie kennen, täglich Äpfel gegessen haben. Können Sie sicher sein, dass dies zusammenhängt? Aber was wäre, wenn es 9000 von 10000 wären? Das würde das Vertrauen in den Zusammenhang erhöhen.

Wie entfernt man ungeeignete Merkmale?

Es genügt, die Spalte, die dem Merkmal entspricht, aus X_tilde zu entfernen. Dies kann mit folgendem Code durchgeführt werden:

X_tilde = X_tilde.drop(___, axis=1)

Zum Beispiel, um die Spalten 'const' und 'Mother' zu entfernen, verwenden Sie:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Erstellen Sie anschließend ein neues OLS-Objekt mit dem aktualisierten X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Welche der Merkmale sollten BEIBEHALTEN werden?

2. Wählen Sie die FALSCHE Aussage aus.

question mark

Welche der Merkmale sollten BEIBEHALTEN werden?

Select the correct answer

question mark

Wählen Sie die FALSCHE Aussage aus.

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Lineare Regression mit Python

Lineare Regression mit Python

1. Einfache Lineare Regression
2. Multiple Lineare Regression
3. Polynomiale Regression
4. Das Beste Modell Auswählen

book
Auswahl der Merkmale

Bei vielen Aufgaben stehen Ihnen zahlreiche Merkmale zur Verfügung, von denen Sie nicht wissen, ob sie nützlich sind. Glücklicherweise können Sie ein Modell mit allen Merkmalen trainieren, anschließend analysieren, welche keinen Einfluss haben, und das Modell dann nur mit den relevanten Merkmalen erneut trainieren.

Warum Merkmale aus dem Modell entfernen?

Wenn Sie dem Modell ein Merkmal hinzufügen, das keinen Bezug zum Zielwert hat, erzeugt dies Rauschen im Modell und verschlechtert die Vorhersage. Bei vielen irrelevanten Merkmalen summiert sich das Rauschen, wodurch die Modellleistung weiter abnimmt.

Wie erkennt man, ob Merkmale gut oder schlecht sind?

Wie bereits bekannt, berechnet die OLS-Klasse während des Trainings auch statistische Kennzahlen. Unter anderem wird ein t-Test durchgeführt, um zu bestimmen, ob jedes Merkmal einen signifikanten Einfluss auf das Ziel hat. Die Testergebnisse finden Sie in der summary()-Tabelle wie unten dargestellt:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Von Interesse ist der p-Wert für jedes Merkmal.

Kurz gesagt: Je niedriger der p-Wert, desto höher das Vertrauen, dass das Merkmal einen Einfluss hat.

In der Statistik muss der Schwellenwert des p-Werts festgelegt werden, der als Signifikanzniveau bezeichnet wird. Dieser liegt üblicherweise bei 0,05. Sobald der p-Wert diesen Schwellenwert überschreitet, wird das Merkmal als nicht einflussreich betrachtet.

In der Praxis verbessern Merkmale mit einem etwas höheren p-Wert als 0,05 jedoch häufig ebenfalls das Modell. Daher ist es besser, das Modell sowohl mit als auch ohne dieses Merkmal zu testen, anstatt es sofort zu entfernen, es sei denn, der p-Wert ist sehr hoch (>0,4). In diesem Fall kann das Merkmal bedenkenlos entfernt werden.

Note
Hinweis

Der p-Wert liegt zwischen 0 und 1. Wenn von einem niedrigen p-Wert die Rede ist, ist damit ein Wert unter 0,05 gemeint; ein hoher p-Wert liegt in der Regel über 0,3–0,5.

In unserem Beispiel erhielten wir p-Werte für die Körpergröße der Mutter und die Konstante von 0,087 bzw. 0,051. Wenn wir Merkmale mit einem p-Wert > 0,05 entfernen, erhalten wir das untenstehende Ergebnis (links).

Selbst visuell lässt sich erkennen, dass das Modell mit Konstante (rechts) besser ist, daher sollte diese nicht aus dem Modell entfernt werden.

Note
Hinweis

Es ist üblich, bei kleinen Datensätzen relativ hohe p-Werte (0,05 bis 0,2) für einflussreiche Merkmale zu erhalten. Der p-Wert zeigt die Sicherheit an, dass das Merkmal tatsächlich einen Einfluss hat. Je mehr Datenpunkte vorhanden sind, desto leichter lassen sich einflussreiche Merkmale von unwichtigen unterscheiden. Angenommen, Sie haben Daten, die zeigen, dass 9 von 10 großen Personen, die Sie kennen, täglich Äpfel gegessen haben. Können Sie sicher sein, dass dies zusammenhängt? Aber was wäre, wenn es 9000 von 10000 wären? Das würde das Vertrauen in den Zusammenhang erhöhen.

Wie entfernt man ungeeignete Merkmale?

Es genügt, die Spalte, die dem Merkmal entspricht, aus X_tilde zu entfernen. Dies kann mit folgendem Code durchgeführt werden:

X_tilde = X_tilde.drop(___, axis=1)

Zum Beispiel, um die Spalten 'const' und 'Mother' zu entfernen, verwenden Sie:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Erstellen Sie anschließend ein neues OLS-Objekt mit dem aktualisierten X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Welche der Merkmale sollten BEIBEHALTEN werden?

2. Wählen Sie die FALSCHE Aussage aus.

question mark

Welche der Merkmale sollten BEIBEHALTEN werden?

Select the correct answer

question mark

Wählen Sie die FALSCHE Aussage aus.

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
some-alt