Ich habe ein kurzes Drehbuch vorbereitet, um zu zeigen, was meiner Meinung nach die richtige Intuition sein sollte.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import ensemble
from sklearn.model_selection import train_test_split
def create_dataset(location, scale, N):
class_zero = pd.DataFrame({
'x': np.random.normal(location, scale, size=N),
'y': np.random.normal(location, scale, size=N),
'C': [0.0] * N
})
class_one = pd.DataFrame({
'x': np.random.normal(-location, scale, size=N),
'y': np.random.normal(-location, scale, size=N),
'C': [1.0] * N
})
return class_one.append(class_zero, ignore_index=True)
def preditions(values):
X_train, X_test, tgt_train, tgt_test = train_test_split(values[["x", "y"]], values["C"], test_size=0.5, random_state=9)
clf = ensemble.GradientBoostingRegressor()
clf.fit(X_train, tgt_train)
y_hat = clf.predict(X_test)
return y_hat
N = 10000
scale = 1.0
locations = [0.0, 1.0, 1.5, 2.0]
f, axarr = plt.subplots(2, len(locations))
for i in range(0, len(locations)):
print(i)
values = create_dataset(locations[i], scale, N)
axarr[0, i].set_title("location: " + str(locations[i]))
d = values[values.C==0]
axarr[0, i].scatter(d.x, d.y, c="#0000FF", alpha=0.7, edgecolor="none")
d = values[values.C==1]
axarr[0, i].scatter(d.x, d.y, c="#00FF00", alpha=0.7, edgecolor="none")
y_hats = preditions(values)
axarr[1, i].hist(y_hats, bins=50)
axarr[1, i].set_xlim((0, 1))
Was das Skript macht:
- Es werden unterschiedliche Szenarien erstellt, in denen die beiden Klassen zunehmend voneinander getrennt werden. Ich könnte hier eine formalere Definition dafür geben, aber ich denke, Sie sollten die Intuition verstehen
- Es passt einen GBM-Regressor an die Testdaten an und gibt die vorhergesagten Werte aus, die die Test-X-Werte dem trainierten Modell zuführen
Das erstellte Diagramm zeigt, wie die generierten Daten in jedem Szenario aussehen, und zeigt die Verteilung der vorhergesagten Werte. Die Interpretation: mangelnde Trennbarkeit führt dazu, dass das vorhergesagte bei oder um 0,5 liegt.y
All dies zeigt die Intuition, ich denke, es sollte nicht schwer sein, dies formeller zu beweisen, obwohl ich von einer logistischen Regression ausgehen würde - das würde die Mathematik definitiv einfacher machen.
BEARBEITEN 1
Ich vermute im Beispiel ganz links, wo die beiden Klassen nicht trennbar sind, wenn Sie die Parameter des Modells so einstellen, dass sie zu den Daten passen (z. B. tiefe Bäume, große Anzahl von Bäumen und Merkmalen, relativ hohe Lernrate), würden Sie immer noch erhalten das Modell, um extreme Ergebnisse vorherzusagen, richtig? Mit anderen Worten, die Verteilung der Vorhersagen zeigt an, wie genau das Modell den Daten entsprach.
Nehmen wir an, wir haben einen super tiefen Baumentscheidungsbaum. In diesem Szenario würden wir die Verteilung der Vorhersagewerte bei 0 und 1 sehen. Wir würden auch einen geringen Trainingsfehler sehen. Wir können den Trainingsfehler beliebig klein machen, wir könnten diese tiefe Baumüberanpassung bis zu dem Punkt haben, an dem jedes Blatt des Baums einem Datenpunkt im Zugsatz entspricht und jeder Datenpunkt im Zugsatz einem Blatt im Baum entspricht. Es wäre die schlechte Leistung auf dem Testsatz eines Modells, die auf dem Trainingssatz sehr genau ist, ein deutliches Zeichen für eine Überanpassung. Beachten Sie, dass ich in meinem Diagramm die Vorhersagen auf dem Testsatz präsentiere, sie sind viel informativer.
Ein zusätzlicher Hinweis: Lassen Sie uns mit dem Beispiel ganz links arbeiten. Trainieren wir das Modell an allen Datenpunkten der Klasse A in der oberen Hälfte des Kreises und an allen Datenpunkten der Klasse B in der unteren Hälfte des Kreises. Wir hätten ein sehr genaues Modell mit einer Verteilung der Vorhersagewerte bei 0 und 1. Die Vorhersagen auf dem Testsatz (alle Punkte der Klasse A im unteren Halbkreis und Punkte der Klasse B im oberen Halbkreis) wären ebenfalls Peaking bei 0 und 1 - aber sie wären völlig falsch. Dies ist eine böse "kontroverse" Trainingsstrategie. Zusammenfassend lässt sich sagen: Die Verteilung hängt vom Grad der Trennbarkeit ab, aber es kommt nicht wirklich darauf an.