Ich habe einen Datensatz mit 26 Funktionen und 31000 Zeilen. Es ist der Datensatz von 38 Probanden. Es ist für ein biometrisches System. Ich möchte also in der Lage sein, Themen zu identifizieren.
Ich weiß, dass ich einige Werte entfernen muss, um einen Testsatz zu haben.
Was ist besser und warum?
(a) 30 Probanden als Trainingssatz behalten und 8 Probanden als Testsatz entfernen
(b) Behalte die 38 Probanden, aber entferne einige Reihen von jedem. Am Ende werde ich also ein Trainingsset erhalten: 24800 Reihen mit 38 Probanden UND ein Testset: 6200 Reihen mit 38 Probanden
Antworten:
Ich denke, Matthew Gunns Antwort ist richtig, aber es scheint mir, dass der "rekordbezogene" Lebenslauf zwei verschiedene Konzepte abdecken kann:
Die Datensätze werden unabhängig von Thema oder Zeit zufällig in Falten unterteilt.
Die Datensätze werden in zeitbasierte Falten unterteilt, wobei keine Falte für das Training verwendet wird, die Daten nach dem Beginn der Testfalte enthält.
Im ersten Fall wird jede Zeitreihenart Ihrer Daten beeinträchtigt, da Ihr Trainingssatz Daten sowohl vor als auch nach Ihrem Testsatz enthalten kann. Das Prinzip von Train / Test ist, dass Trainingsdaten Daten darstellen, die der Gegenwart bekannt sind, und Testdaten noch nicht sichtbare Daten darstellen (möglicherweise buchstäblich aus der Zukunft).
Möglicherweise beeinträchtigt die Autokorrelation von Zeitreihen Option 2. Vielleicht ist das Zeitelement des Modells nicht wirklich wichtig und daher sind "vergangene" und "zukünftige" Beobachtungen wahrscheinlich gleich. In diesen Fällen ist weder Nr. 1 noch Nr. 2 der richtige Weg.
Wenn es nur Saisonalität und keine Trends gibt, scheint es in Ordnung zu sein, "die Zukunft" für einige Fächer in das Training einzubeziehen, um neue Fächer vorherzusagen (die von derselben Saisonalität betroffen sein werden). Wenn es Trends gibt, sollte das Training für die Zukunft etwas über die Zukunft lernen, das Sie bei Verwendung des Modells in der Produktion wirklich nicht wissen würden.
Im Beispiel des OP klingt es so, als wäre das Thema gut. Wenn jedoch Trends und Bedenken hinsichtlich Zeitreihen Teil des Modells wären, würde ich versuchen, eine themen- und zeitbasierte Partitionierung zu verwenden, damit Sie vor einem bestimmten Zeitpunkt an einer Gruppe von Themen trainiert und anschließend an den anderen Themen getestet haben dieser bestimmte Zeitpunkt.
quelle
Eine kritische Unterscheidung ist, ob Sie:
Der weitaus häufigere Fall ist die Fallnummer (1). Wie gut prognostizieren Sie beispielsweise einen Herzinfarkt für jemanden, der in die Notaufnahme kommt? Und wenn Sie in Fall (1) sind, Sie ziemlicher Sicherheit (a) eine themenbezogene Kreuzvalidierung und nicht (b) eine rekordbezogene Kreuzvalidierung durchführen. Eine rekordverdächtige Validierung in Fall (1) führt wahrscheinlich zu unangemessen hohen, falschen Schätzungen der Leistung bei neuen Probanden.
Ich verstehe nicht genau, was Sie versuchen zu tun (und vielleicht ist es Selbststudium, daher ist die Frage nicht ganz realistisch). Ich weiß nicht, in welchem Fall Sie sich befinden. Wenn Sie sich in einem viel selteneren Fall befinden (2), ist die Validierung von Aufzeichnungen möglicherweise in Ordnung.
Ein allgemeines Thema in der Statistik ist es, sorgfältig darüber nachzudenken, was unabhängig ist und was korreliert. Im Allgemeinen ist eine unabhängige Beobachtung ein anderes Thema. Wenn Sie die Leistung vorhersagen möchten neuen Fächern , müssen Sie bei Fächern testen, auf denen Sie nicht trainiert haben!
Warum eher eine themenbezogene Kreuzvalidierung als eine rekordbezogene?
In typischen Umgebungen werden wiederholte Beobachtungen desselben Individuums auch nach Konditionierung von Merkmalen miteinander korreliert. Daher ist Ihr Test-Set bei der rekordverdächtigen Kreuzvalidierung nicht unabhängig von Ihrem Trainingsset! Im Extremfall perfekter Korrelation hätten Sie genau die gleichen Beobachtungen im Trainingssatz und im Testsatz! Sie würden am Testset trainieren! Die bei der Kreuzvalidierung gemessene Leistung würde die Leistung bei neuen Probanden nicht vorhersagen.
In diesem kürzlich erschienenen Artikel wird beispielsweise die rekordübergreifende Kreuzvalidierung "Voodoo Machine Learning" genannt.
Was tun mit so wenigen Themen?
Um die Daten für das Training zu maximieren, können Sie ein Thema für die Kreuzvalidierung weglassen. Testen Sie bei jeder Iteration ein anderes Thema und trainieren Sie alle anderen.
quelle
Es hängt wirklich davon ab, wie Sie sich die Einstellung vorstellen, die Sie mit der Zug- / Testaufteilung emulieren möchten. Um die Dinge konkret zu machen, sagen wir, dass jede Zeile die Schlafqualität eines Subjekts in einer einzigen Nacht beschreibt.
Es ist möglich, dass in Zukunft jedes Subjekt zuerst in ein Schlaflabor kommt und Ihnen für einige Nächte die Schlafqualität bietet. Anschließend müssen Sie die Schlafqualität zukünftiger Nächte für diese Probanden vorhersagen . In diesem Fall würden Sie Ihre Option b) verwenden. In
sklearn
könnten Sie verwendensklearn.model_selection.StratifiedShuffleSplit
Es ist möglich, dass in Zukunft einige Probanden zuerst in ein Schlaflabor kommen und Ihnen für einige Nächte die Schlafqualität bieten. Anschließend müssen Sie die Schlafqualität zukünftiger Nächte für andere Probanden vorhersagen . In diesem Fall würden Sie Ihre Option a) verwenden. In
sklearn
könnten Sie verwendensklearn.cross_validation.LeavePLabelOut
quelle
Ich gehe davon aus, dass die Anwendung unbekannte Themen vorhersagen soll. Das bedeutet (unabhängig davon, ob Sie Zeitreihen oder inhärent ungeordnete wiederholte Messungen haben), dass die Aufteilung durchgeführt werden muss, damit unbekannte Probanden getestet werden => Aufteilung a)
In Anbetracht der Tatsache, dass Sie nur 38 Probanden haben, sollten Sie sich jedoch Gedanken über die Validierung des Resamplings machen. Aus meiner Erfahrung mit ähnlich kleinen Stichprobengrößen (obwohl mehr Funktionen) sind hier einige Empfehlungen auf den Punkt gebracht:
Entscheiden Sie sich für eine themenbezogene Out-of-Bootstrap- oder iterierte Kreuzvalidierung. Sie ermöglichen die Beurteilung der Stabilität Ihrer Modelle, was bei Problemen mit kleinen Stichproben entscheidend ist. Die Ergebnisse können sogar für ein aggregiertes Modell verwendet werden, falls Instabilität ein Problem darstellt.
Lassen Sie nicht ein Thema aus. Es erlaubt weder, die Modellstabilität zu messen, noch sie zu reduzieren. Darüber hinaus gibt es Situationen, in denen es aufgrund der geringen Stichprobengröße einer großen pessimistischen Verzerrung unterliegt (im Gegensatz zu der erwarteten minimalen pessimistischen Verzerrung).
Wenn Sie die typischen Klassifizierungswerte wie Genauigkeit, Empfindlichkeit, Spezifität usw. verwenden und die Aufgabe darin besteht, die Probanden korrekt zu klassifizieren: Beachten Sie, dass das entscheidende Problem darin besteht, die Leistung zu messen, da die Unsicherheit der Testergebnisse von der absoluten Zahl abhängt von Testfällen. Zum Beispiel entspricht die Beobachtung von 17 korrekten Vorhersagen von 17 wirklich positiven Probanden einem 95% -Konfidenzintervall für die Empfindlichkeit im Bereich von etwa 80% bis 100%.
Mit anderen Worten, Sie können darauf basierend keine datengesteuerte Modelloptimierung durchführen.
Dies bedeutet auch, dass Sie keine Aufteilung mit drei Sätzen (verschachtelte Kreuzvalidierung) einrichten müssen, da Sie hier Ressourcen für statistisch bedeutungslose Vergleiche verschwenden würden - Ihre Optimierung wird fast garantiert fehlschlagen (obwohl Sie dies möglicherweise nicht bemerken, wenn Sie dies tun nicht auf Stabilität prüfen).
Die gleiche Berechnung für das binomiale Konfidenzintervall für die vorgeschlagenen 5 (3) Test- / Optimierungs- / Validierungspersonen ergibt 95% ci für alle korrekten Bereiche bis zu 50% (30%). Basierend auf perfekten Testergebnissen würde Ihr Konfidenzintervall also immer noch 50 / umfassen. 50 raten!
Einige Artikel, die wir zu diesen Themen geschrieben haben:
Beleites, C.; Baumgartner, R.; Bowman, C.; Somorjai, R.; Steiner, G.; Salzer, R. & Sowa, MG Varianzreduktion bei der Schätzung von Klassifizierungsfehlern unter Verwendung spärlicher Datensätze, Chemom Intell Lab Syst, 79, 91-100 (2005).
Beleites, C. & Salzer, R.: Bewertung und Verbesserung der Stabilität chemometrischer Modelle in Situationen kleiner Probengröße, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Beleites, C. und Neugebauer, U. und Bocklitz, T. und Krafft, C. und Popp, J.: Stichprobengrößenplanung für Klassifizierungsmodelle. Anal Chim Acta, 2013, 760, 25 & ndash; 33. DOI: 10.1016 / j.aca.2012.11.007
akzeptiertes Manuskript auf arXiv: 1211.1323
quelle