Trainingsfehler im KNN-Klassifikator bei K = 1

8

Ich habe diese Frage in einem Quiz erhalten und gefragt, was der Trainingsfehler für einen KNN-Klassifikator sein wird, wenn K = 1 ist. Was bedeutet Training für einen KNN-Klassifikator? Mein Verständnis des KNN-Klassifikators war, dass er den gesamten Datensatz berücksichtigt und jeder neuen Beobachtung den Wert der Mehrheit der nächsten K-Nachbarn zuweist. Wo kommt das Training ins Spiel? Die richtige Antwort dafür war auch, dass der Trainingsfehler unabhängig von einem Datensatz Null ist. Wie ist das möglich?

Byzantinisch
quelle

Antworten:

13

Trainingsfehler Hier ist der Fehler, den Sie haben, wenn Sie Ihren Trainingssatz als Testsatz in Ihr KNN eingeben. Wenn K = 1 ist, wählen Sie die Trainingsprobe, die Ihrer Testprobe am nächsten kommt. Da sich Ihr Testmuster im Trainingsdatensatz befindet, wählt es sich selbst als das nächstgelegene aus und macht niemals Fehler. Aus diesem Grund ist der Trainingsfehler unabhängig vom Datensatz Null, wenn K = 1 ist. Übrigens gibt es hier eine logische Annahme, nämlich dass Ihr Trainingssatz nicht dieselben Trainingsmuster enthält, die zu verschiedenen Klassen gehören, dh widersprüchliche Informationen. Einige reale Datensätze haben diese Eigenschaft jedoch möglicherweise.

Waffen
quelle
3

Für ein visuelles Verständnis können Sie sich das Training von KNNs als einen Prozess zum Färben von Regionen und zum Festlegen von Grenzen um Trainingsdaten vorstellen.

Wir können zuerst Grenzen um jeden Punkt im Trainingssatz mit dem Schnittpunkt der senkrechten Winkelhalbierenden jedes Punktpaars ziehen. (Die senkrechte Winkelhalbierende wird unten gezeigt.)

senkrechte Winkelhalbierende Animation

GIF-Quelle

Um herauszufinden, wie die Regionen innerhalb dieser Grenzen gefärbt werden, schauen wir für jeden Punkt auf die Farbe des Nachbarn. Wenn , möchten wir für jeden Datenpunkt in unserem Trainingssatz einen anderen Punkt finden, der den geringsten Abstand von . Der kürzestmögliche Abstand ist immer , was bedeutet, dass unser "nächster Nachbar" tatsächlich der ursprüngliche Datenpunkt selbst ist, .K=1xx ' x 0 x = x 'xx0x=x

Um die Bereiche innerhalb dieser Grenzen einzufärben, suchen wir die Kategorie, die jedem . Nehmen wir an, wir haben die Wahl zwischen Blau und Rot. Mit färben wir Regionen, die rote Punkte umgeben, mit Rot und Regionen, die Blau umgeben, mit Blau. Das Ergebnis würde ungefähr so ​​aussehen:xK=1

k = 1 mit allen Grenzen

Beachten Sie, dass in blauen Bereichen keine roten Punkte vorhanden sind und umgekehrt. Das sagt uns, dass es einen Trainingsfehler von 0 gibt.

Beachten Sie, dass Entscheidungsgrenzen normalerweise nur zwischen verschiedenen Kategorien gezogen werden (alle blau-blauen rot-roten Grenzen wegwerfen), sodass Ihre Entscheidungsgrenze möglicherweise folgendermaßen aussieht:

Geben Sie hier die Bildbeschreibung ein

Wiederum befinden sich alle blauen Punkte innerhalb der blauen Grenzen und alle roten Punkte innerhalb der roten Grenzen. Wir haben immer noch einen Testfehler von Null. Wenn wir dagegen auf erhöhen , haben wir das folgende Diagramm. Beachten Sie, dass sich in den blauen Bereichen einige rote Punkte und in den roten Bereichen blaue Punkte befinden. So sieht ein Trainingsfehler ungleich Null aus.KK=20

Wenn , färben wir die Bereiche um einen Punkt basierend auf der Kategorie dieses Punkts (in diesem Fall Farbe) und der Kategorie 19 seiner nächsten Nachbarn. Wenn die meisten Nachbarn blau sind, der ursprüngliche Punkt jedoch rot ist, wird der ursprüngliche Punkt als Ausreißer betrachtet und der Bereich um ihn herum wird blau gefärbt. Deshalb können Sie so viele rote Datenpunkte in einem blauen Bereich haben und umgekehrt. K=20

Geben Sie hier die Bildbeschreibung ein

Bildquelle

David
quelle