Blog

Variablenauswahl beim maschinellen Lernen

Aktualisiert Oktober 22, 2025
5 Minuten

Ich habe mit einem Kollegen eine Diskussion über die Auswahl von Variablen in einem Modell geführt. Die Diskussion läuft auf die folgende Frage hinaus:

Ist es besser, alle Variablen, die Sie haben, in das Modell einzugeben und eine Überanpassung zu riskieren, oder sollten Sie klein anfangen und Werte hinzufügen, um das Modell immer komplexer zu machen?

Sie sollten immer einen Testsatz verwenden, um die Leistung Ihrer Modelle zu bestimmen, und Sie sollten Strategien anwenden, um eine Überanpassung zu verhindern, aber wenn wir klein anfangen und das Modell wachsen lassen, bringt das eine Verzerrung in das Modell. In diesem Dokument werde ich einen mathematischen Beweis dafür liefern, was bei diesem Ansatz gefährlich sein könnte.

Linear Algrebra/Regression Primer

Achtung, dieses Dokument ist sehr mathematisch. In diesem Dokument gehe ich davon aus, dass Sie über einige Kenntnisse der linearen Algebra auf College-Niveau verfügen. Die folgenden Gleichungen sollten für Sie lesbar sein:

begin{aligned}
M_x & = I_n - X(X'X)^{-1}X' \
M_x X & = I_nX - X(X'X)^{-1}X'X \
& = X - XI_n\
& = 0
end{aligned}

Von der Statistik her sollten Sie hoffentlich mit den folgenden Punkten vertraut sein:

begin{aligned}
Y & = Xbeta + epsilon  text{        where    } epsilon ~ N(0,sigma) \
hat{beta} & = (X'X)^{-1} X'Y \
mathbb{E}(hat{beta} ) & = mathbb{E}big((X'X)^{-1} X'Y)big)
end{aligned}

Proof

Ich werde beweisen, dass es bei linearen Modellen zu Verzerrungen kommt, wenn Sie nur wenige Variablen verwenden und bei der Erstellung eines Modells immer mehr einbeziehen, und dass dies nicht der Fall ist, wenn Sie mit vielen Variablen beginnen und diese reduzieren. Für jeden Fall werde ich zeigen, was in Bezug auf den Erwartungswert der beta Variablen schief läuft.

Kleine bis große Probleme

Nehmen wir an, dass das wahre Modell durch gegeben ist:

 Y = X_1beta_1 + X_2beta_2 + epsilon 

Wenn wir mit einem kleineren Modell beginnen, indem wir beispielsweise nur beta_1 betrachten, würden wir für Y = X_1beta_1 + epsilon schätzen, während das gesamte Modell Y = X_1beta_1 + X_2beta_2 + epsilon sein sollte. Dann kann unser Erwartungswert für beta_1 analytisch abgeleitet werden.

begin{aligned}
mathbb{E}(beta_1) & = mathbb{E}big((X_1'X_1)^{-1} X_1'Y)big)\
& = mathbb{E}Big((X_1'X_1)^{-1} X_1'big(X_1beta_1 + X_2beta_2 + epsilonbig)Big)\
& = mathbb{E}Big((X_1'X_1)^{-1} X_1'X_1beta_1 + (X_1'X_1)^{-1} X_1'X_2beta_2 + (X_1'X_1)^{-1} X_1'epsilonbig)Big)\
& = mathbb{E}Big(beta_1 + (X_1'X_1)^{-1} X_1'X_2beta_2 + (X_1'X_1)^{-1} X_1'epsilonbig)Big)  \
& = beta_1 + (X_1'X_1)^{-1} X_1'X_2beta_2 + (X_1'X_1)^{-1} X_1'mathbb{E}(epsilon) \
& = beta_1 + (X_1'X_1)^{-1} X_1'X_2beta_2 \
& ne beta_1
end{aligned}

Unsere Schätzung von beta_1 ist also verzerrt. Dies gilt für jede Teilmenge der Variablen {beta_1, beta_2}, aus denen sich beta zusammensetzt.

Große bis kleine Lösung

Nehmen wir an, dass das wahre Modell durch gegeben ist:

 Y = X_1beta_1 + epsilon 

Wenn wir mit einem größeren Modell beginnen, z.B. indem wir einige Parameter beta_2 mit einbeziehen, obwohl sie keinen Einfluss auf das Modell haben, werden wir zunächst ein falsches Modell Y = X_1beta_1 + X_2beta_2 + epsilon schätzen.

Ein Lemma dazwischen

Lassen Sie uns eine Matrix M_{X_1} = I_n -X_1(X_1'X_1)^{-1}X_1' definieren. Wir können diese Matrix verwenden, um eine Schätzung von beta_2 zu erhalten.

Beginnen Sie mit der ursprünglichen Formel.

begin{aligned}
M_{X_1}Y & = M_{X_1}X_1beta_1 + M_{X_1}X_2beta_2 + M_{X_1}epsilon \
M_{X_1}Y & = M_{X_1}X_2beta_2 + epsilon \
X_2'M_{X_1}Y & = X_2'M_{X_1}X_2beta_2 + X_2'epsilon \
X_2'M_{X_1}Y & = X_2'M_{X_1}X_2beta_2 \
beta_2 & = ( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}Y \
end{aligned}

Beachten Sie, dass M_{X_1}X1 = 0 und dass M{X_1}epsilon = epsilon aufgrund der Definition, während X_2epsilon = 0 denn epsilon ist normalverteilt um Null und orthogonal zu jeder der erklärenden Variablen.

Die Ableitung für groß bis klein

Mit dieser Definition von beta_2 können wir sie analysieren, um zu bestätigen, dass sie nicht gegen einen anderen Wert als Null konvergieren sollte.

begin{aligned}
mathbb{E}(beta_2) & = mathbb{E}big(( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}Ybig) \
& = mathbb{E}big(( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}big(X_1beta_1 + epsilonbig)big) \
& = mathbb{E}big(( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}X_1beta_1 + ( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}epsilonbig) \
& = mathbb{E}big(( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}epsilonbig) \
& = ( X_2'M_{X_1}X_2)^{-1}X_2'M_{X_1}mathbb"t{E}(epsilon) \
& = 0
end{aligned}

Beachten Sie, dass ( X2'M{X_1}X_2)^{-1}X2'M{X_1}X_1beta1 = 0 denn M{X_1}X_1 = 0. Wir sehen also, dass beta_2 richtig geschätzt ist. Wie sieht es mit beta_1 aus?

begin{aligned}
mathbb{E}(beta_1) & = mathbb{E}big((X_1'X_1)^{-1} X_1'Y)big)\
& = mathbb{E}Big((X_1'X_1)^{-1} X_1'big(X_1beta_1 + epsilonbig)Big)\
& = mathbb{E}Big(beta_1 + (X_1'X_1)^{-1} X_1'epsilonBig)\
& = beta_1
end{aligned}

In diesem Fall würden wir also die Variablen beta_2 entfernen, die keinen Einfluss haben, während unsere Schätzung von beta_1 keine Verzerrung aufweist. Das ist genau das, was wir wollen.

Fazit

Ich habe gezeigt, dass bei linearen Modellen das Risiko einer Verzerrung besteht, wenn Sie nur mit einigen wenigen Variablen beginnen und diese dann dem Modell hinzufügen. Bei anderen Modellen können Sie ein ähnliches Problem erwarten. Ein Modell wird versuchen, jede Korrelation zu nutzen, die es in den Daten finden kann, um ein Muster zu finden. Um dies zu verhindern, könnte es eine gute Taktik sein, mit allen Variablen zu beginnen und immer weniger Variablen zu verwenden, bis das Overfitting kein Problem mehr darstellt und alle Variablen im Modell signifikant sind. Auf diese Weise können Sie verhindern, dass Sie einer Variable zu viel Vorhersagekraft zuweisen, die dann möglicherweise einer Variable zugewiesen werden muss, die nicht im Modell enthalten ist.

Contact

Let’s discuss how we can support your journey.