Vorhersageintervalle für Algorithmen für maschinelles Lernen


13

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.


2
Wenn Sie tatsächlich ein Vorhersageintervall (und nicht ein Konfidenzintervall) wünschen, müssen Sie die Variation der Beobachtungen zum Modell berücksichtigen, nicht nur die Variation der Modellprädikationen
Glen_b -Reinstate Monica

@ Glen_b Würde mir entweder der im OP beschriebene Ansatz oder eine Boostrapped-Version die Vertrauensintervalle bringen? Ich fange an zu glauben, dass ein Vorhersageintervall nicht möglich ist, ohne eine zugrunde liegende Verteilung für die Daten anzugeben, sodass ich die Frage möglicherweise das nächste Mal neu formulieren muss.
Kevinkuo

Sie können Vorhersageintervalle
booten

@ Glen_b könntest du beschreiben, wie das geht, in einer Antwort?
Kevinkuo

1
Ich konnte hier keine ausreichende Antwort geben. Aber siehe Davison & Hinkley (1997) in den Kapiteln über multiple Regressionen und GLMs, die einen Eindruck von der Art der Dinge vermitteln, die benötigt werden könnten. Im Fall einer multiplen Regression werden beispielsweise Residuen erneut abgetastet, um eine Bootstrap-Schätzung der Vorhersageunsicherheit (Variation der Vorhersagen aufgrund von Parameterunsicherheit) zu erhalten, und erneut abgetastet, um die Prozessvariation zu behandeln. Mit einem geeigneten Schema könnten Sie möglicherweise auch in der Lage sein, die Unsicherheit der Modellspezifikation in diesem ersten Schritt zu bewältigen, aber Sie können den zweiten Schritt für die Prozessvariabilität nicht auslassen
Glen_b -Reinstate Monica,

Antworten:


5

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!


2

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 .


1

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.


0

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.


1
Können Sie erklären, wie dieser Beitrag die ursprüngliche Frage beantwortet?
whuber

Der Titel ist "PI für ML-Algorithmen", @kevinykuo fragt, ob sein "Bootstraping" -Verfahren funktioniert. Ich verweise auf mehrere Verweise auf einige Methoden, die in PI für Neural Network verwendet werden.
Demo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.