KNN-Parametereinstellung mit Kreuzvalidierung: Punkteziehung

7

Ich versuche, die KNN-Methode für die binäre Klassifizierung zu verwenden. Wenn ich versuche, den besten 'k'-Parameter zu finden (die Anzahl der Nachbarn, die der Algorithmus betrachtet), trainiere ich ein Modell in meinem Trainingssatz und überprüfe seine Genauigkeit in einem separaten Validierungssatz, den ich mit meinen Daten erhalten habe. Dieser Validierungssatz enthält nur 12 Stichproben, was zu einem Genauigkeitsverlust für 3 k (1,3,5) führt.

Jetzt suche ich nach einer Möglichkeit, einen dieser 3 k für das endgültige Modell auszuwählen. Ich hatte den folgenden Ansatz im Sinn: Für die 3 k mache ich eine K-fache Kreuzvalidierung für ein bestimmtes K auf dem Trainingssatz und schaue dann, welches hier die beste durchschnittliche Genauigkeit hat. Ist das ein anständiger Ansatz oder gibt es bessere Möglichkeiten? Ich dachte auch daran, nur ein zufälliges k (1, 3 oder 5) auszuwählen, weil mir das 'Validierungsverfahren' sagt, dass ich eine der 3 auswählen kann.

xzeo
quelle

Antworten:

7

Dieses Problem tritt auf, wenn Sie ein kleines Test - Set haben, die mehr Modelle dazu führen können , zu binden , durch die gleiche Anzahl von korrekten Vorhersagen zu erzielen.

Die Methode, die Sie zuerst gesagt haben, sollte reichen. Da im Lebenslauf jedes Modell jedes Trainingsmuster einmal sieht, würde ich es für unwahrscheinlich halten, dass Ihre 3 Modelle die gleiche Genauigkeit haben. Wenn dies so bleibt, ist es sicher, zufällig zu wählen (ich würde 3 wählen, weil es das mittlere Element ist)

kfn95
quelle
1

Das Prinzip von Occam schlägt vor, dass Sie sich für ein möglichst einfaches Modell entscheiden sollten. Also solltest du dich für diesen entscheiden. Um eine bessere Vorstellung von der Verallgemeinerung des Modells zu erhalten, würde ich Ihnen empfehlen, die verschachtelte Kreuzvalidierung zu verwenden.

Burple
quelle