Auswahl der Merkmale
Swipe um das Menü anzuzeigen
Beim Arbeiten mit vielen Merkmalen ist oft unklar, welche relevant sind. Ein Modell kann mit allen Merkmalen trainiert werden, um anschließend zu überprüfen, welche Merkmale keinen Nutzen bringen, und danach das Modell nur mit den aussagekräftigen Merkmalen erneut zu trainieren.
Warum Merkmale aus dem Modell entfernen?
Das Hinzufügen eines Merkmals, das keinen Bezug zum Zielwert hat, führt zu Störgeräuschen und verschlechtert die Vorhersagen. Viele nutzlose Merkmale verstärken das Rauschen und verringern die Modellqualität zusätzlich.
Wie erkennt man, ob die Merkmale gut oder schlecht sind?
OLS bietet während des Trainings statistische Tests an. Jedes Merkmal erhält ein t-Test-Ergebnis, das in der summary()-Tabelle angezeigt wird und angibt, ob es einen signifikanten Einfluss auf das Ziel hat.
123456789import 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
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 wird ein Signifikanzniveau festgelegt, üblicherweise 0,05. Überschreitet der p-Wert eines Merkmals diesen Schwellenwert, gilt es als nicht relevant.
In der Praxis können etwas höhere p-Werte (knapp über 0,05) das Modell dennoch unterstützen. Es ist ratsam, das Modell mit und ohne dieses Merkmal zu testen. Bei sehr hohen p-Werten (>0,4) kann das Merkmal jedoch bedenkenlos entfernt werden.
Der p-Wert liegt zwischen 0 und 1. Ein niedriger p-Wert bedeutet weniger als 0,05, während ein hoher p-Wert in der Regel größer als 0,3-0,5 ist.
In unserem Beispiel erhielten wir p-Werte für Mother's height und constant von 0,087 bzw. 0,051. Wenn wir Merkmale mit einem p-Wert > 0,05 entfernen, erhalten wir das untenstehende Ergebnis (links).
Schon visuell lässt sich erkennen, dass das Modell mit Konstante (rechts) besser ist, daher sollte es nicht aus dem Modell entfernt werden.
Kleine Datensätze führen häufig zu höheren p-Werten (0,05–0,2), selbst bei relevanten Merkmalen. P-Werte spiegeln das Vertrauen wider: Mit mehr Daten wird es einfacher, wirklich einflussreiche Merkmale von zufälligen zu unterscheiden.
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, verwendet man:
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
Und dann ein neues OLS-Objekt mit dem aktualisierten X_tilde erstellen:
regression_model=sm.OLS(y, X_tilde)
1. Welche der Merkmale sollten BEIBEHALTEN werden?
2. Wähle die FALSCHE Aussage aus.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen