Bayesianischer Ansatz zum maschinellen Lernen für die Bernoulli-ReaktionIch habe einen Datensatz, in dem ich ungefähr 2000 Beobachtungen von ungefähr 150 Merkmalen oder Kovariaten habe. Ich versuche ein 0/1 Ergebnis vorherzusagen. Das Ergebnis ist ein Risiko-Score für die Krankheit R1. Der Assay generiert alle Merkmalswerte (F1, ..., F150) in einer Datenbank sowie einen Risikowert für eine verwandte Krankheit (R0). Der Gedanke ist, dass der R0 für R1 sehr prädiktiv ist, und dass wir, wenn wir die Funktionen F1, ..., F150 verwenden, eine Art Aktualisierungsregel haben, die wir auf R0 anwenden können. Etwas anders formuliert, denke ich daran, R0 als Bernoulli-Parameter für eine vorherige Verteilung von R1 zu verwenden und irgendwie eine Aktualisierungsformel für R0 zu trainieren, die auf den Werten von F1, ..., F150 basiert.
Der Trainingsalgorithmus müsste die Erstellung eines 0/1-Wahrscheinlichkeitsbewertungsmodells ermöglichen, mit dem wir einen vorherigen Wert für die Bewertung angeben können. Das klingt nach einem recht geradlinigen Bayes'schen Problem. Ich habe dies jedoch noch nicht getan und bin mir nicht sicher, wie die Feature-Informationen in den Parameter-Update-Ausdruck aufgenommen werden sollen.
Würden wir einen zweiten Wahrscheinlichkeitswert generieren?
Würden wir den linearen Prädiktor verwenden, bevor wir in die Logit-Transformation gehen?
Würden wir R0 auf irgendeine additive Weise oder durch einen multipikativen Faktor verändern?
Klar habe ich mehr Fragen als Antworten. Wenn mich jemand in die richtige Richtung weisen kann, wäre das großartig. Wenn JMP so etwas zulässt, würde ich gerne davon erfahren.
Re: Bayesianischer Ansatz zum maschinellen Lernen für die Bernoulli-ReaktionJa, 100% der Funktionen werden zur Berechnung von p0 verwendet. Das System generiert tatsächlich Tausende von Funktionen, aber wir mussten in der Lage sein, den Algorithmus für die Offline-Berechnung von p0 zu validieren. Also haben wir (durch Lesen des Codes) jedes Feature gefunden, das zur Berechnung von p0 verwendet wurde, und sie gespeichert. Allerdings ist die "Berechnung" für p0 als Funktion der Features zu komplex und implizit, um Sie jemals aufzuschreiben (Hunderte von binären Klassifizierern in paralleler und serieller Konfiguration, ich habe das System nicht erstellt). Wir wissen jedoch, dass wir alle notwendigen und ausreichenden Feraturen für eine Offline-Simulation und Validierung der Berechnung für p0 erfasst haben.
Mein Ziel ist es, nichts am Modell für die Berechnung von p0 zu ändern. Es ist zu sehen, ob die gleichen Funktionen zufällig einige "magische" Informationen enthalten, die es uns ermöglichen, eine andere Krankheit vorherzusagen. Meiner Meinung nach ist dies unwahrscheinlich, vor allem, da die Features spezifisch erstellt wurden, um D0 auf eine optimale und minimale Weise vorherzusagen. Es gibt wahrscheinlich einige informationstheoretische Methoden, um diese Annahme zu testen.
Wieder muss ich mir ein faires und prinzipielles Prinzip einfallen lassen, um entweder zu zeigen, dass das Konzept nicht funktioniert oder dass es funktioniert. Es war einfach, viele rote Flaggen zu generieren (Beispiel: Kovariatendrift). Mein Versuch, einen modifizierten "Bayes'schen" Ansatz zu verwenden, ist meine Art, die beste Statistik zu verwenden, mit der die Features erstellt wurden, und dann zu sehen, ob es einige unabhängige, restliche Informationen gibt, die möglicherweise vorhanden sind Hilfe prognostizieren D1. Ich bin ein Skeptiker, aber ich gehöre zu einer Gruppe, in der andere (Management) eine dogmatische Ansicht haben, dass maschinelles Lernen jedes vorstellbare Problem magisch lösen kann. Sie wissen nicht, dass die meisten dieser Modelle (LASSO, Ridge, PLS) am Ende des Tages nur einfache (allgemeine) lineare Haupteffekte sind.
Nochmals danke ich Ihnen für Ihr Engagement. Es war sehr hilfreich.
Re: Bayesianischer Ansatz zum maschinellen Lernen für die Bernoulli-ReaktionIch bin ein bisschen verwirrt - Sie sagen, Ihr Modell nutzt 100% der Funktionen (davon 150!). Praktisch alle Machine Learning-Modelle, die ich ausgeführt habe, nutzen niemals alle Funktionen. Sie können sie so oft wie möglich eingeben, aber selten (nie) gewöhnen sie sich alle. Wenn Sie der Meinung sind, dass Ihr Modell zu komplex ist, können Sie jedes Feature auslassen (langweilig, aber wahrscheinlich kann jemand dabei helfen, dieses Skript zu erstellen), um zu sehen, wie sehr die Leistung nachlässt. Eine alternative Version davon - die ich in einer anderen Software, aber noch nicht in JMP gesehen habe - besteht darin, jede Funktion (einzeln) durch zufällige Daten zu ersetzen und die Leistung zu vergleichen.
Sie möchten anscheinend auch sehen, ob Sie bessere Vorhersagen erhalten können, indem Sie etwas zu dem Modell hinzufügen, das Sie bereits haben (was bleibt hinzuzufügen, wenn alle Funktionen bereits enthalten sind?). Ich denke, es gibt viele Möglichkeiten, dies zu tun - aber ich denke mehr darüber nach, verschiedene Modelle auszuprobieren und eine Art Ensemble-Methode zu verwenden, um sie zu kombinieren, anstatt zusätzliche Funktionen zu verwenden. Bayes-Modell-Mittelwertbildung ist eine Möglichkeit, dies zu tun. Aber Ihre ursprüngliche Idee, Ihr erstes Modell als Vorgängermodell zu verwenden und dann Funktionen hinzuzufügen, um ein "Bayes'sches Update" zu erstellen, ergibt für mich immer noch keinen Sinn.
Re: Bayesianischer Ansatz zum maschinellen Lernen für die Bernoulli-ReaktionDanke Dale,
Ich bin wahrscheinlich mit dir einig. Die ganze Absicht des Projekts besteht darin zu sehen, ob die Features, die bereits zum Trainieren von D0 verwendet wurden, möglicherweise "orthogonale" Informationen enthalten, die zur Vorhersage von D1 verwendet werden können. Das Rauschen im ursprünglichen Modell für p0, das ein unglaublich komplexes Modell ist, das zu 100% auf den Funktionen basiert, enthält alle Informationen, die zum Trainieren von p1 verwendet werden können. Ich möchte p0 als anfängliche Schätzung beibehalten, da es sich für D0 bereits als sehr nützlich erwiesen hat.
Wenn ich einfach nur etwas mache und etwas wie LASSO (oder Ridge oder PLS oder ...) benutze, um ein Modell für p1 basierend auf den Features zu trainieren, erhalte ich eine bessere Leistung als die Vorhersage von D1, wenn nur p0 verwendet wird. Aber ich bin skeptisch, dass ich unwissentlich mit dem ganzen Lebenslauf auf Lärm trainiere. Darüber hinaus habe ich Beweise aus unabhängigen Experimenten, dass das Modell für p1 unter einer kovariaten Verschiebung leidet, während p0 für verschiedene Datensätze ziemlich widerstandsfähig ist.
Natürlich ist es meine Aufgabe, das Whoe-Konzept entweder mit den Daumen nach unten oder nach oben zu bringen, und so möchte ich gleichzeitig das Konzept herausfordern und ihm die beste Chance geben. Deshalb neige ich zu diesem "Bayes'schen" Ansatz. Es ist ein bisschen lang, es Bayesianisch zu nennen, da stimme ich zu, da wir kein Bernoulli-Ereignis beobachten können, sondern nur die Prädikate in einem Modell für den vorherigen Parameter.
Ich schätze deine Gedanken.
Re: Bayesianischer Ansatz zum maschinellen Lernen für die Bernoulli-ReaktionIch bin keineswegs ein Bayesianischer Experte, aber es scheint mir, dass das, was Sie tun möchten, nicht korrekt ist. Die Bayes'sche Aktualisierung bezieht sich normalerweise auf das Einbeziehen neuer Informationen - beispielsweise zusätzlicher Datenpunkte. Warum zusätzliche Funktionen hinzufügen? Legen Sie sie einfach in Ihr Originalmodell. Wenn Sie so etwas wie verstärkte Bäume verwenden, verwendet der Algorithmus die Funktionen bereits, um seine Vorhersagen basierend auf dem Grad, in dem er falsche Klassifizierungen vornimmt, zu "aktualisieren". Mit anderen Worten, ich denke, Sie schlagen einen Apparat vor, der "Bayesisch" erscheinen würde, aber in der Tat wird nur untersucht, wie viel jedes Merkmal zum Modell beiträgt, wenn man die anderen Merkmale des Modells berücksichtigt. Dies ist im Wesentlichen das, was alle Vorhersagemodelle so machen: Einige Features manuell weglassen und dann hinzufügen, um zu sehen, wie sich die Vorhersagen ändern, scheint einfach manuell zu tun, was Vorhersagemodelle automatisch tun.
Bitte, wenn ich mich irre, wird mich jemand aufklären.