Ich möchte wissen, ob der unten beschriebene Prozess gültig / akzeptabel ist und ob eine Begründung vorliegt.
Die Idee: Überwachte Lernalgorithmen setzen keine zugrunde liegenden Strukturen / Verteilungen der Daten voraus. Am Ende des Tages geben sie Punktschätzungen aus. Ich hoffe, die Unsicherheit der Schätzungen irgendwie zu quantifizieren. Der Prozess der ML-Modellbildung ist von Natur aus zufällig (z. B. bei der Stichprobe zur Kreuzvalidierung für die Optimierung von Hyperparametern und bei der Unterabtastung in stochastischem GBM), sodass eine Modellierungspipeline für die gleichen Prädiktoren mit jedem unterschiedlichen Startwert eine unterschiedliche Ausgabe liefert. Meine (naive) Idee ist es, diesen Prozess immer wieder zu wiederholen, um eine Verteilung der Vorhersage zu erzielen, und ich kann hoffentlich Aussagen über die Unsicherheit der Vorhersagen treffen.
Wenn es darauf ankommt, sind die Datensätze, mit denen ich arbeite, normalerweise sehr klein (~ 200 Zeilen).
Macht das Sinn?
Um dies zu verdeutlichen, starte ich die Daten nicht im herkömmlichen Sinne (dh ich starte die Daten nicht erneut). In jeder Iteration wird derselbe Datensatz verwendet. Ich nutze nur die Zufälligkeit in xval und stochastischem GBM aus.
Antworten:
Für mich ist es ein ebenso guter Ansatz, die Unsicherheiten in den Vorhersagen zu quantifizieren. Stellen Sie einfach sicher, dass Sie alle Modellierungsschritte (für ein GBM, bei dem es sich um die Parametereinstellung handelt) in jedem Bootstrap-Resample von Grund auf wiederholen. Es könnte sich auch lohnen, die Wichtigkeitsrankings zu bootstrappen, um die Unsicherheit in den Rankings zu quantifizieren.
Ich habe festgestellt, dass die Intervalle manchmal nicht die tatsächliche Vorhersage enthalten, insbesondere wenn eine Wahrscheinlichkeit geschätzt wird. Das Erhöhen der minimalen Anzahl von Beobachtungen in jedem Endknoten löst normalerweise das, zumindest in den Daten, mit denen ich gearbeitet habe.
Die konforme Vorhersage scheint ein nützlicher Ansatz zur Quantifizierung des Vertrauens in Vorhersagen für neue Daten zu sein. Ich habe bisher nur die Oberfläche zerkratzt und andere sind wahrscheinlich eher dazu geeignet, eine Meinung dazu abzugeben.
In meiner Antwort auf diesen Beitrag ist ein grober R-Code zum Ermitteln eines GBM-Vorhersageintervalls enthalten.
Hoffe das hilft!
quelle
Sie können Ihre Unsicherheit in Bezug auf die Vorhersage auf die Begriffe "Bias" und "Varianz" aufteilen. Der Begriff "Bias" bezieht sich auf eine Fehlspezifikation des Modells: Wenn Sie ein lineares Modell für eine nichtlineare Funktion anpassen, wird immer ein Fehler angezeigt. Der Begriff "Varianz" bezieht sich auf einen Fehler in der Modellparameterschätzung. Sie nähern sich dem Varianz-Teil der Unsicherheit, während Sie die Verzerrung nicht abschätzen können.
Wie von @ErikL vorgeschlagen, ist die konforme Vorhersage ein theoretisch gerechtfertigter Ansatz, der eine für Bootstrap recht ähnliche Idee annimmt. Die konforme Vorhersage mithilfe der Rekonstruktion eines Modells unter Verwendung eines neuen Punkts berücksichtigt sowohl die Verzerrung als auch die Varianz, während für die Regression erhebliche Rechenressourcen benötigt werden. Sie können es mit Python versuchen, indem Sie eine nicht konformistische Bibliothek verwenden .
quelle
Nein, es scheint eine schlechte Idee zu sein. Erstens gibt es, wie Alexey betonte, Voreingenommenheit und Varianz. Selbst bei der Auswahl der besten Parameter können Sie die Varianz nicht vermeiden. Ihre Methode versucht nicht einmal, es zu adressieren. Ein weiteres sehr wichtiges Problem besteht darin, dass ein Teil und wahrscheinlich der größte Teil des Fehlers Ihres Modells in den Daten und nicht in der inhärenten Zufälligkeit des Modells liegt. (Ganz zu schweigen davon, dass einige Modelle, wie die einfache lineare Regression, überhaupt nicht zufällig sind. Bei zufälligen Modellen variiert der Grad der Zufälligkeit von Modell zu Modell.)
Ich empfehle Ihnen, Ihren Ansatz an einigen einfachen simulierten Daten und einem Ihnen bekannten Modell zu testen. Ich bin sicher, dass Ihr geschätzter Fehler aus den von mir beschriebenen Gründen viel kleiner ist als der tatsächliche Fehler (oder Ihre Verteilung wird viel enger sein).
Zur Abschätzung der Fehlerverteilung können Sie eine gute alte Kreuzvalidierung verwenden.
quelle
Ich denke jetzt über dieses Problem nach. Hier sind meine Ergebnisse:
(1) Delta-Methode
(2) Bootstrap-Resampling
(3) Bayes-Methode
(4) Mean-Varianz-Schätzung (MVE)
Die Idee ist, die beiden Quellen der Vorhersagevariabilität, die Unsicherheit aus der Modellparameterschätzung und den irreduziblen Fehler zu schätzen.
Hier einige Referenzen:
Ansätze des maschinellen Lernens zur Abschätzung des Vorhersageintervalls für die Modellausgabe, Durga L. Shrestha, Dimitri P. Solomatine, 2006
Ein Vergleich einiger Fehlerschätzungen für neuronale Netzwerkmodelle, Robert Tibshirani, 1995
Umfassender Überblick über neuronale netzwerkbasierte Vorhersageintervalle und Neu Fortschritte, Abbas Khosravi, Doug Creighton, 2011
Ich hoffe, dies hilft und korrigiert mich. Ich würde gerne mehr von anderen hören.
quelle