Modelle kombinierenWenn ich dieses Jahr vom Discovery Summit Americas eine Sache gelernt habe, dann war es, wie üblich es ist, Ensemble-Modelle zu mitteln und / oder zu erstellen, etwas, von dem ich gehört hatte, aber nie in Betracht gezogen hatte (als Model-Neuling). Also beschloss ich, es zu tun. Ein Ensemble-Modell zu erstellen ist einfach; Ich habe das Modell als Vorhersageformel gespeichert und es einfach als Prädiktor in die nächste Runde des Modellscreenings aufgenommen (mit dem Modellbildschirm von JMP Pro 16). Was einfacher zu sein scheint, Modellmittelung, verwirrt mich. Wenn ich zwei Modelle finde, die mir gefallen, speichere ich beide als Vorhersageformeln in meiner Datentabelle und erstelle dann eine neue Spalte, in der sie kombiniert werden, es scheint, dass die Wahrscheinlichkeit kombiniert wird, aber die Formel hat keine Syntax, in der ich könnte es auf neue Daten anwenden (es zeigt nur die Mittelung der Wahrscheinlichkeiten). Wenn ich beide Modelle im Formula Depot veröffentliche, kann ich sie ziemlich einfach auf diese Weise mitteln, das ist also meine aktuelle Problemumgehung, aber sollte ich sie nicht AUCH in der Tabelle selbst mitteln können? Ich denke, das Problem könnte sein, dass, weil die Vorhersageformel eine Formel UND eine Wahrscheinlichkeit hat, wenn ich sie kombiniere, nur die Wahrscheinlichkeit gemittelt wird, wenn ich tatsächlich die Formeln selbst mitteln möchte. Kann ich beide so mitteln, dass ich diese gemittelte Formel in eine neue Datentabelle kopieren und mit neuen Daten testen kann? Wenn nicht, wurde Formula Depot genau dafür entwickelt, also ist es keine große Sache. Ich möchte nur ein paar Möglichkeiten haben! Vielleicht entferne ich einfach den Wahrscheinlichkeitsteil dahin, wo NUR die Formel in der Informationszelle der Spalte verbleibt?
AnalytikRe: Modelle kombinierenAus Ihrer Beschreibung geht hervor, dass Sie eher die Vorhersagen (diskret) als die Wahrscheinlichkeiten (kontinuierlich) mitteln möchten.So habe ich es noch nicht gesehen.Es gibt eine Technik, die konforme Vorhersage, die darauf ausgelegt ist, zu sehen, wie robust die Vorhersagen eines Modells sind.Aber was Sie beschreiben, würde wie folgt aussehen: Angenommen, es sind 2 Klassen vorherzusagen und Sie codieren sie als stetig, 0 und 1. Angenommen, Sie haben 3 Modelle: 2 davon sagen eine 0 für einen bestimmten Fall voraus und 1 sagt eine 1 voraus Dann würde Ihre "Mittelung" ein Ergebnis von 1/3 ergeben, was Sie als Wahrscheinlichkeit für eine 1 annehmen würden. Interessante Idee, aber ich bin mir nicht sicher, welche statistische Grundlage ein solcher Ansatz hat.Außerdem scheint es auf binäre Klassifikationen beschränkt zu sein (obwohl dies nur eine Grenze ist).Mich würde interessieren, welche anderen Antworten ihr bekommt.
Re: Modelle kombinierenHi @abmayfield ,
Ihr Vortrag hat mir gefallen, musste ihn jedoch auf Abruf sehen, konnte es nicht zur Live-Ansicht und zu den Fragen und Antworten schaffen.
Normalerweise könnten Sie die Vorhersagespalten mitteln, wenn Sie eine typische Regressionsformel verwenden – eine numerische Regressionsformel. Sie würden einfach den Durchschnitt der beiden nehmen. Da Sie jedoch mit einem kategorialen Wert ja oder nein (oder sogar vielleicht) arbeiten, wird es komplizierter, da die numerischen X-Eingaben in eine logistische Funktion umgewandelt werden müssen, die dann die Wahrscheinlichkeit ermittelt und die Ergebnisse mit einem IfMax( ) Funktion.
Nehmen Sie zum Beispiel die Big-Class-Datei. Wenn Sie versuchen, :sex mit :height und :weight vorherzusagen, erhalten Sie eine logistische Ausgabefunktion, in meinem Beispiel versuche ich, sex = M vorherzusagen. Es gibt jedoch Zwischenfunktionen, die verwendet werden, um Prob[M] und Prob[F] zu bestimmen. Die lineare Funktion ist genau das, etwa wie Lin[M] = a + b*:height + c*:weight, wobei a, b und c nur Anpassungskoeffizienten sind. Um die Wahrscheinlichkeiten zu erhalten, verwendet JMP dann die Transformation 1/(1_exp(-Lin[M])) für Prob[M] und 1/(1+exp(Lin[M]) für Prob[F], was nur 1- Probe[M]. Das wahrscheinlichste Ergebnis ist dann MaxIf(Prob[M]=>M, Prob[F]=>F) und das größere Prob[y] ist das wahrscheinlichste Ergebnis, M oder F.
Wenn Sie in Ihrem Fall mit kategorialen Ergebnissen arbeiten, müssen Sie meiner Meinung nach die Lin[Y]-Funktionen mitteln, um sie dann in eine Wahrscheinlichkeit umzuwandeln. Es ist die lineare Funktion, die an die Daten angepasst wird, nicht die Wahrscheinlichkeitsfunktion. Deshalb müssen Sie den Durchschnitt bilden, bevor Sie die lineare Funktion transformieren.
Wenn Sie Ihr Ergebnis in eine kontinuierliche Antwort ändern können, ist ein einfacher Durchschnitt von Vorhersageformeln einfach. Solange der Modellierungstyp nominal oder ordinal ist, behandelt JMP ihn als diskrete Ebenen und führt jedes Mal eine logistische Modellierung durch.
Eine Idee, die ich vielleicht nur mit einer kontinuierlichen Skala verwenden musste, ist, den Prozentsatz des Bleichens in einem bestimmten Bereich darzustellen. Nehmen wir an, Sie beurteilen 100 cm ^ 2 (ein 10 cm x 10 cm großes Fleckchen) Korallen und stellen fest, dass etwa 2 cm x 3 cm (oder 6 cm ^ 2) gebleicht sind, dann wäre die prozentuale Bleichung 60%. Auf diese Weise erhalten Sie möglicherweise eine genauere Darstellung, wie viel von einem Korallenexemplar gebleicht wird, und Sie haben jetzt eine kontinuierliche Reaktion, die mit Regression vs. Klassifizierung modelliert werden kann.
Hoffe das hilft!,
DS
PS Der Discovery Summit war großartig. Mir haben viele Gespräche gefallen. Außerdem aktualisiere ich meine GUI, um die Tuning-Tabellen basierend auf Benutzereingaben automatisch zu generieren. Ich werde Sie wissen lassen, wenn die neue Version fertig ist. Es sollte helfen, den Prozess noch weiter zu automatisieren, indem ein raumfüllendes Design mit der Anzahl von Durchläufen generiert wird, die Sie ausführen möchten.
Re: Modelle kombinierenJa! Ich glaube, wie üblich, dass Sie Recht haben, was die seltsame Natur des Versuchs angeht, eine kategoriale Variable vorherzusagen, bei der Sie effektiv zwei Gleichungen benötigen, wodurch die Dinge schwieriger werden. Was ich hoffe, ist schließlich eine ausreichend große Stichprobengröße zu haben, bei der ich einen echten Gradienten habe, entweder 1-10, 1-5 oder 1-100, wobei die Idee dieselbe ist: 1 = schrecklich, die höchste Zahl = großartig . Auch in diesem Fall habe ich entweder zwei Kategorien (aufhellungsresistent vs. aufhellungsempfindlich) oder manchmal drei (die ersteren zwei + „mittel“). Ich könnte damit herumspielen, sie als 1, 50 und 100 für anfällig, intermediär bzw. resistent umzucodieren, und sehen, welche Art von Ergebnissen ich erhalte. Ich denke, je mehr Proben ich bekomme und analysiere, desto sinnvoller ist es, dass mein Y eine kontinuierliche Variable ist. Mit 20 Samples, mit denen ich jetzt spiele, habe ich nicht genug Daten, um im Wesentlichen über 2-3 Bins hinauszugehen. Aber es wird interessant sein zu sehen, ob meine Modelle sehr unterschiedlich aussehen, wenn ich meine kategorialen Klassifikationen in eine kontinuierliche Variable umkodiere. Es würde sicherlich den gesamten Modellbau nahtloser machen. Und in Wirklichkeit wird es in der Natur NICHT so einfach sein wie „gesund“ vs. „krank“; Ich erwarte einen Gradienten, der ein Gesundheitsspektrum umfasst, wie Sie es beim Menschen sehen würden (z. B. das, was Sie im JMP-Diabetes-Datensatz sehen). Das Komische an dieser Übung in Bezug auf die Wahrscheinlichkeitsbewertung ist jedoch, dass ich mir diese nie wirklich angesehen habe; Ich ging direkt zu JMPs "Vermutung". Aber jetzt ist es super interessant, sich die tatsächlichen Wahrscheinlichkeiten anzusehen, denn das ist es, was ich letztendlich berichten möchte: Koralle A hat eine 95%ige Chance zu bleichen. Durch diese Übung zur Modellmittelung habe ich versehentlich einige coole Nuancen aufgeschnappt, die ich vorher total vermisst habe! Und wie ich bereits sagte, auch wenn ich vorerst mit kategorialen Antworten "feststecke", funktioniert die Modellmittelungsfunktion von Formula Depot dafür gut.
Es wird Sie freuen zu erfahren, dass es dank Ihrer GUI über 20.000 neuronale Netzwerkmodelle (21.450, aber wer zählt?!) in meinem kürzlich eingereichten Artikel gibt (der im Wesentlichen Phase 1 = das Laborexperiment beschreibt). Offensichtlich haben nur eine Handvoll alle Qualitätskontrollen bestanden, und noch weniger wurden ausführlich im Text besprochen, aber es war äußerst nützlich zu sehen, welche NN-Parameter für mich im Wesentlichen am wichtigsten sind, um sie abzustimmen. Außerdem möchte ich das einfachste, (möglicherweise) sparsamste Modell bauen, wenn also ein NN zwei versteckte Schichten mit jeweils drei Aktivierungsknoten hat, während ein zweites Modell eine Schicht mit NTANH(3) hat, wenn alles andere gleich ist, I Ich würde letzteres wählen, obwohl ich denke, dass dies nicht wirklich kritisch ist, da selbst das einfachste ziemlich komplex ist. Eine Sache, die ich dieses Jahr bei Discovery lernen wollte, was ich dank Chris Gotwalt tat, ist, ob die Variablen-Wichtigkeitsmetriken unter dem NN-Profiler verwendet werden können, um Ihnen im Wesentlichen zu sagen, welche Analyten im Modell am einflussreichsten waren. Die alte Regel war, dass NNs eine Black Box sind und es viel zu kompliziert ist, herauszufinden, welche Antwortvariablen am wichtigsten sind, aber ich bin froh zu sehen, dass dies nicht ganz stimmt. Sind sie schwer zu interpretieren? Ja. Können Sie sagen, dass das Verhalten eines Proteins mit der Vorhersagekraft des Modells auf eine bestimmte, leicht zu definierende Weise skaliert? Vielleicht nicht. Aber wenn mich ein Molekularbiologe fragen würde: „Welche Korallenproteine waren in Ihrem besten NN-Modell am wichtigsten?“, könnte ich zumindest ein paar aus dem variablen Wichtigkeitsmerkmal des NN-Profilers aufzählen. Das ist eigentlich der Grund, warum ich mich dafür entschieden habe, das Gen-Reg-Modell in meinem Vortrag zu diskutieren; Ich war mir nicht sicher, ob ich dem Profiler für eine NN (!) "vertrauen" könnte, aber jetzt sehe ich, dass ich es kann. Aber egal, deshalb profitiere ich als Modeling-Neuling so sehr von solchen Symposien. Nochmals vielen Dank für Ihre wohlüberlegte Antwort und all Ihre Hilfe im Allgemeinen.