Ich habe ein Klassifizierungsproblem in der Hand, das ich mit einem maschinellen Lernalgorithmus (Bayes, oder Markovian wahrscheinlich, die Frage ist unabhängig von dem zu verwendenden Klassifikator) ansprechen möchte. Angesichts einer Reihe von Trainingsinstanzen suche ich nach einer Möglichkeit, die Leistung eines implementierten Klassifikators zu messen, wobei das Problem der Datenüberlagerung berücksichtigt wird.
Das heißt: Wenn ich N [1..100] Trainings-Samples benutze, wenn ich den Trainingsalgorithmus für jedes der Samples benutze und dieselben Samples zur Messung der Fitness benutze, könnte es in einem Datenüberlagerungsproblem stecken bleiben Klassifikator wird die genauen Antworten für die Trainingsinstanzen kennen, ohne viel Vorhersagekraft zu haben, wodurch die Fitnessergebnisse nutzlos werden.
Eine naheliegende Lösung wäre, die handmarkierten Proben in Training und Testproben zu trennen; und ich würde gerne über Methoden lernen, die die statistisch signifikanten Proben für das Training auswählen.
Weißbücher, Buchtipps und PDFs werden sehr geschätzt!
Sie können hierfür die 10-fache Kreuzvalidierung verwenden. Ich glaube, es ist ein ziemlich standardmäßiger Ansatz für die Bewertung des Klassifikationsalgorithmus.
Die Grundidee besteht darin, Ihre Lernbeispiele in 10 Teilmengen aufzuteilen. Verwenden Sie dann eine Teilmenge für Testdaten und andere für Zugdaten. Wiederholen Sie dies für jede Teilmenge und berechnen Sie die durchschnittliche Leistung am Ende.
Wie Herr Brownstone sagte, ist die zehnfache Kreuzvalidierung wahrscheinlich der beste Weg. Ich musste vor kurzem die Leistung einer Reihe von verschiedenen Klassifikatoren bewerten, die ich verwendete Weka . Das hat eine API und eine Last von Werkzeugen, die Ihnen erlauben, die Leistung von vielen verschiedenen Klassifikatoren einfach zu testen.
Tags und Links machine-learning classification artificial-intelligence nlp bayesian