|
Lautsprecher
|
Transkript
|
| Russ Wolfinger |
Okay. Also, hallo zusammen. |
| |
Willkommen in meinem Zuhause hier in Holly Springs, North Carolina. |
| |
Angesichts des Covid-Wahnsinns ist es eine neue Erfahrung, eine virtuelle Konferenz online abzuhalten, aber ich freue mich sehr, heute mit Ihnen zu sprechen und ein Tutorial zu einem brandneuen Add-In anzubieten, das wir für JMP Pro haben |
| |
das die beliebte XGBoost-Funktionalität implementiert. |
| |
Heute werde ich Ihnen in diesem Tutorial zeigen, was wir haben. Was ich hier habe, ist ein JMP-Journal |
| |
das wird in den Konferenzmaterialien verfügbar sein. Und ich möchte Sie ermutigen, dies zu tun, wenn Sie selbst mitmachen möchten, |
| |
Sie können das Video jetzt anhalten und zu den Konferenzmaterialien gehen. Nehmen Sie sich dieses Journal. Sie können es in Ihrer eigenen Version von JMP Pro öffnen. |
| |
und außerdem gibt es einen Link zur Installation. Sie müssen ein Add-In installieren. Wenn Sie das installieren, können Sie alles, was ich hier mache, zu Hause genau reproduzieren und sogar selbst ein bisschen herumspielen. Ich würde Sie also dazu ermutigen, das zu tun, wenn Sie können. |
| |
Ich habe meinen Hund Charlie dabei, er ist im Hintergrund. Ich hoffe, er macht nichts Peinliches. Er scheint im Moment nicht allzu begeistert zu sein, aber er liebt XGBoost genauso sehr wie ich, also lasst uns loslegen. |
| |
XGBoost ist eine ziemlich unglaubliche Open-Source-C++-Bibliothek, die es nun schon seit einigen Jahren gibt. |
| |
Und die ursprüngliche Theorie wurde tatsächlich in den 90er Jahren von ein paar berühmten Statistikern entwickelt, aber dann griff das Team der University of Washington die Ideen auf und setzte sie um. |
| |
Und ich glaube, am meisten kam es im Rahmen einiger Kaggle-Wettbewerbe zur Geltung. |
| |
So fing es an: Als die Leute anfingen, es zu verwenden und es verfügbar war, gewann es buchstäblich jeden Tabellenkalkulationswettbewerb, den Kaggle in den letzten Jahren veranstaltet hat. |
| |
Und tatsächlich gibt es mittlerweile mehrere Hundert Beispiele online; wenn Sie ein wenig suchen, werden Sie sie finden. |
| |
Daher würde ich dies derzeit als die weltweit beliebteste und vielleicht leistungsstärkste Methode zur Vorhersagemodellierung tabellarischer Daten betrachten. |
| |
Natürlich gibt es Wettbewerber und bei jedem einzelnen Datensatz sehen Sie möglicherweise gewisse Unterschiede, aber insgesamt ist es sehr beeindruckend. |
| |
Tatsächlich gibt es mittlerweile Konkurrenzpakete, die ganz ähnliche Dinge tun, beispielsweise LightGBM von Microsoft und Catboost von Yandex. Wir werden heute nicht näher darauf eingehen, aber sie sind ziemlich ähnlich. |
| |
Da wir heute nicht viel Zeit haben, möchte ich nicht zu sehr auf die Beweggründe eingehen. Aber Sie haben ja dieses Tagebuch, wenn Sie sich die Beweggründe genauer ansehen möchten. |
| |
Ich möchte Ihnen die Highlights dieses Journals vorstellen und Ihnen insbesondere einige Live-Demonstrationen bieten, damit Sie eine Vorstellung davon bekommen, was es hier gibt. |
| |
Und dann können Sie diese Dinge im Laufe der Zeit selbst erkunden und ausprobieren. Sie benötigen ... Sie benötigen eine funktionierende Kopie von JMP Pro 15 |
| |
frühestens, aber wenn Sie JMP 16 Early Adopter ergattern können, wird das offizielle JMP 16 erst im nächsten Jahr, 2021, ausgeliefert, |
| |
aber Sie können jetzt Ihre Early-Adopter-Version erhalten und wir nehmen dort Verbesserungen vor. Ich würde Sie daher ermutigen, die neueste JMP 16 Pro Early Adopter-Version zu erwerben |
| |
um die neueste Funktionalität dieses Add-Ins zu erhalten ... dieser Funktionalität. Das ist eine Art ungewöhnliches neues Frame-Setup für JMP Pro. |
| |
Wir haben viel C++-Code direkt in Pro geschrieben, um die XGBoost C++-API zu integrieren. Und deshalb ... erledigen wir den Großteil unserer Arbeit in C++ |
| |
aber es gibt ein zugehöriges Add-In, das die dynamische Bibliothek installiert und ein kleines Menü-Update für Sie durchführt, Sie brauchen also... Sie brauchen sowohl Pro als auch müssen das Add-In installieren, um es auszuführen. |
| |
Schnappen Sie sich also, wenn möglich, JMP 16 Pro Early Adopter, um die neuesten Dinge zu bekommen, und genau das werde ich Ihnen heute zeigen. |
| |
Lassen Sie uns gleich ein Beispiel machen. Und das hier ist ganz neu und mir ist gerade aufgefallen. Dahinter steckt eine sehr interessante Geschichte. |
| |
Der Forscher hinter diesen Daten ist ein Professor namens Jaivime Evarito. Er ist ein Umweltwissenschaftler, ein PhD, Professor, Assistenzprofessor |
| |
jetzt an der Universität Utrecht in den Niederlanden und er hat diese Daten mit seiner Erlaubnis freundlicherweise zur Verfügung gestellt, ebenso wie die Geschichte dahinter, um anderen zu helfen, die so... ein bisschen Drama um diese Daten hatten. Ich habe seinen Kollegen Jeffrey McDonnell |
| |
hat all diese Daten gesammelt. Das sind Daten. Der Zweck besteht darin, den Wasserabfluss in abgeholzten Gebieten auf der ganzen Welt zu untersuchen. |
| |
Und Sie können sehen, wir haben hier 163 Orte, die meisten davon mindestens die Hälfte in den USA und dann auf der ganzen Welt, verschiedene Orte, an denen sie sammeln konnten |
| |
Regionen, die von Bäumen befreit wurden, und dann nahmen sie einige kritische Messungen vor |
| |
in Bezug darauf, was mit dem Wasserabfluss passiert ist. Und diese Art von Studie ist ziemlich wichtig, um die Umweltauswirkungen von Baumrodungen und Abholzung sowie den Klimawandel zu untersuchen, also kommt sie gerade zur richtigen Zeit. |
| |
Und zum Glück für Jaivime konnten sie damals einen Artikel in der Zeitschrift Nature veröffentlichen, einer der besten Wissenschaftszeitschriften der Welt, eine wirklich schöne |
| |
Erfahrung, die er brauchte, um es dort unterzubringen. Unglücklicherweise geschah dann jedoch ein konkurrierendes Labor, das die Arbeit in diesem Papier sehr kritisch sah. |
| |
Und es stellte sich heraus, nach vielem Hin und Her und vielen Debatten, dass das Papier schließlich zurückgezogen wurde. |
| |
das war offensichtlich eine wirklich schwierige Erfahrung für Jaivime. Ich meine, er war sehr freundlich und hat eine Geschichte und Hoffnungen mit uns geteilt. |
| |
um dies zu vermeiden. Und es stellt sich heraus, dass die Ursache der Kontroverse mehrere, mehrere andere Dinge waren, aber der Hauptkritikpunkt der Kritiker war ... |
| |
Ich habe vielleicht eine Boosted-Tree-Analyse durchgeführt. Und es ist ein ziemlich unkompliziertes Modell. Es gibt nur... wir haben vielleicht nur eine Handvoll Prädiktoren, von denen jeder wichtig ist, aber eines ihrer Hauptziele war es, zu bestimmen, welche die wichtigsten waren. |
| |
Er führte ein Boosted Tree-Modell mit einem einzigen Holdout-Validierungssatz aus und veröffentlichte einen Validierungs-Holdout von etwa .7. Alles sah okay aus, |
| |
aber dann kamen die Kritiker, sie analysierten die Daten erneut mit einem anderen Hold-Out-Set und sie bekamen ein Validierungs-Hold-Out-R-Quadrat |
| |
von weniger als 0,1. Das ist also eine ziemlich große Veränderung. Sie gehen von 0,7 auf weniger als 0,1 und das wurde verwendet, die Kritiker stürzten sich wirklich darauf und versuchten, das, was vor sich ging, wirklich zu diskreditieren. |
| |
Nun, Jaivime, an diesem Punkt, Jaivime, das geschah letztes Jahr und der Artikel wurde hier Anfang 2020 zurückgezogen ... |
| |
Jaivime hat mir die Daten diesen Sommer mitgeteilt und ich dachte daran, eine etwas strengere Kreuzvalidierungsanalyse durchzuführen und tatsächlich eine wiederholte K-fache Analyse durchzuführen. |
| |
anstatt nur einen einzigen Holdout zu haben, um zu versuchen, dieser Diskrepanz zwischen zwei verschiedenen Holdouts auf den Grund zu gehen. Und was ich getan habe, wir haben eine neue Routine |
| |
das mit dem XGBoost-Add-In geliefert wird, das K-Fold-Spalten erstellt. Und wenn Sie den Datensatz hier sehen, habe ich diese erstellt. Aus Zeitgründen werden wir nicht darauf eingehen, wie das geht. Aber es gibt |
| |
Es gibt jetzt ein neues Modul mit der Überschrift „K-fach-Spalten erstellen“, mit dem Sie dies tun können. Und ich habe es geschichtet gemacht. Und interessanterweise ruft es hinter der Haube JMP DOE auf. |
| |
Und der Vorteil dieser Vorgehensweise besteht darin, dass Sie tatsächlich orthogonale Faltungen erstellen können, was nicht sehr üblich ist. Lassen Sie mich hier eine schnelle Verteilung durchführen. |
| |
Das war das Holdout-Set, das Jaivime ursprünglich gemacht hat, und er hat es geschichtet, was meiner Meinung nach eine gute Idee ist, da die Reaktion etwas verzerrt ist. Und dann war das das Holdout-Set, das der Kritiker verwendet hat, |
| |
und hier sind die Faltungen, die ich letztendlich verwendet habe. Ich habe drei verschiedene Schemata verwendet. Und was ich hier sagen wollte, ist, dass diese Faltungen schön orthogonal sind, |
| |
wo wir einen maximalen Informationsgewinn erzielen, indem wir die K-Faltung dreimal mit drei orthogonalen Sätzen durchführen. |
| |
Und dann stellte sich heraus, dass er bereits Boosted Trees verwendete, also war das nächste, was ich ausprobieren musste, das XGBoost-Add-In. Ich habe mich wirklich gefreut, von diesem Datensatz zu erfahren und hier darüber zu sprechen. |
| |
Was ist nun passiert? Lassen Sie mich hier eine weitere Analyse durchführen, bei der ich eine Einweganalyse für die Validierungssätze durchführe. Es stellt sich heraus, dass ich übersehen habe, was ich hier mache, nämlich die Antworten, diese Wasserausbeute wurde korrigiert. |
| |
Und ich stelle das im Vergleich zu den Validierungssätzen dar. Es stellte sich heraus, dass Jaivime in seinem Trainingssatz, |
| |
die besten vier oder fünf Messungen landeten alle in seinem Trainingsset, was meiner Meinung nach die Wurzel des Problems ist. |
| |
Während sie im Kritiker-Set... es war etwas ausgeglichener, und insbesondere das Schlimmste... dass der Ort mit der höchsten Punktzahl im Validierungs-Set war. Und das ist eine natürliche Fehlerquelle, weil es über alles hinausgeht, was das Training durchführte. |
| |
Und ich denke, dies ist wirklich ein Fall, in dem die K-Faltung, eine Analyse vom Typ K-Faltung, überzeugender ist als die Durchführung eines einzelnen Holdout-Sets. |
| |
Ich würde argumentieren, dass diese beiden einzelnen Holdout-Sets eine gewisse Voreingenommenheit aufweisen und es besser ist, mehr Falten zu machen, in denen Sie schichten ... Dinge verteilen |
| |
jedes Mal anders und dann sehen wir, was nach mehreren Anpassungen passiert. So können Sie sehen, wie die hier erstellten Falten in Bezug auf die Verteilung aussehen, und dann führen wir jetzt XGBoost aus. |
| |
Das Add-In hat also tatsächlich eine Menge Funktionen und ich möchte Sie heute nicht überfordern, aber ich möchte Sie noch einmal ermutigen, dem Video zu folgen und es an einigen Stellen anzuhalten, wenn Sie versuchen, selbst mitzumachen. |
| |
um sicherzugehen. Aber was wir hier gemacht haben, war, dass ich einfach ein Skript ausgeführt habe. Und übrigens, alles im Journal hat... JMP-Tabellen sind nett, da kann man Skripte speichern. Und was ich hier gemacht habe, war, XGBoost von diesem Skript aus auszuführen. |
| |
Lassen Sie mich das nur zur Veranschaulichung noch einmal direkt aus dem Menü ausführen. So möchten Sie es vielleicht machen. Wenn Sie also das Add-In installieren, |
| |
Sie klicken auf Predictive Modeling und dann auf XGBoost. Wir haben es also hier zum Predictive-Modeling-Menü hinzugefügt. Und so würden Sie das einrichten |
| |
dient zum Angeben der Antwort. Hier ist Y. Es gibt sieben Prädiktoren, die wir hier als x eingeben und dann ihre Faltungsspalten und Validierungen eingeben. |
| |
Ich möchte hier auf diejenigen unter Ihnen hinweisen, die erfahrene JMP Pro-Benutzer sind: XGBoost behandelt Validierungsspalten etwas anders als andere JMP-Plattformen. |
| |
An diesem Punkt handelt es sich um eine Art experimentelles Framework, aber meiner Erfahrung nach halte ich wiederholtes K-Falten für eine sehr überzeugende Vorgehensweise und wollte das Add-In so einrichten, dass es einfach ist. |
| |
Und hier füge ich diese Faltspalten erneut ein, die wir mit dem Dienstprogramm erstellt haben, und XGBoost führt automatisch wiederholte K-Faltungen durch, indem wir es einfach angeben, wie wir es hier getan haben. |
| |
Wenn Sie einen einzelnen Holdout wie bei den ursprünglichen Analysen durchführen möchten, können Sie dies wie gewohnt einrichten, aber Sie müssen die Spalte |
| |
kontinuierlich. Das ist ein Haken. Und ich weiß, dass einige unserer Early Adopters darüber gestolpert sind und es ist eine andere Konvention als andere |
| |
Andere XGBoost- oder andere prädiktive Modellierungsroutinen in JMP Pro, aber dies schien mir die sauberste Art zu sein, es zu tun. Und wieder wäre die empfohlene Vorgehensweise, |
| |
wiederholtes K-Falten wie hier, oder zumindest ein einzelnes K-Falten und dann können Sie einfach auf „OK“ klicken. Sie erhalten dieses erste Startfenster. |
| |
Und das Besondere an XGBoost ist, dass es viele Tuning-Parameter hat. Die wichtigsten sind hier in dieser Box aufgelistet und Sie können damit experimentieren. |
| |
Und dann stellt sich heraus, dass es noch eine ganze Menge mehr gibt, und sie sind unter diesen erweiterten Optionen versteckt, für die wir heute überhaupt keine Zeit haben. |
| |
Aber wir haben versucht, ... das sind die wichtigsten, die Sie normalerweise ... in den meisten Fällen brauchen Sie sich einfach darum zu kümmern. Und was nun ... lassen Sie uns das ausführen ... lassen Sie uns das noch einmal ausführen. Von hier aus können Sie einfach auf die Schaltfläche „Los“ klicken und dann wird XGBoost ausgeführt. |
| |
Jetzt führe ich das Ganze nur auf einem einfachen Laptop aus. Das ist ein relativ kleiner Datensatz. Und so richtig... wir haben es einfach wiederholt, fünfmal wiederholt |
| |
drei verschiedene Dinge, und das in nur wenigen Sekunden. XGBoost ist ziemlich gut abgestimmt und funktioniert gut bei größeren Datensätzen, aber sehen wir uns für dieses kleine Beispiel an, was passiert ist. |
| |
Wie sich herausstellt, gibt diese erste Grafik sofort Anlass zur Sorge. |
| |
Was wir hier sehen, ist … über die Anzahl der Iterationen, der Anpassungsiterationen, haben wir eine Trainingskurve, die im Grunde die Verlustfunktion ist, die Sie verringern möchten. |
| |
Aber die durchgezogene Kurve ist die Validierungskurve. Und Sie können sehen, was hier passiert ist. Schon nach ein paar Iterationen erreichte diese Kurve ihren Tiefpunkt und dann wurde es viel schlimmer. |
| |
Dies ist also tatsächlich ein Fall, in dem Sie dieses Standardmodell nicht verwenden möchten. XGBoost ist bereits überangepasst, |
| |
Dies passiert häufig bei kleineren Datensätzen wie diesen und erfordert eine Feinabstimmung. |
| |
Unten gibt es noch viele andere Ergebnisse, aber ich würde sie nicht als vertrauenswürdig bezeichnen. An diesem Punkt müssten Sie ein wenig nachjustieren. |
| |
Heute wollen wir nur ein bisschen manuelle Feinabstimmung vornehmen, aber ich möchte Sie dazu ermutigen. Wir haben tatsächlich ein komplettes Framework für die Erstellung eines Feinabstimmungsdesigns implementiert. |
| |
Hier können Sie einen Parameterbereich angeben und den Entwurfsbereich durchsuchen. Wir verwenden auch hier JMP DOE. |
| |
Es ist also so, dass wir DOE bereits auf zwei verschiedene Arten nutzen, und beide haben die Funktionalität wirklich verbessert. Lassen Sie uns jetzt anhand dieser Grafik nur ein wenig manuelle Feinabstimmung vornehmen. |
| |
Sie können sehen, wenn wir in dieses Diagramm hineinzoomen, dass die Kurve ihren Tiefpunkt erreicht. Lassen Sie mich einfach nach drei oder vier Iterationen schauen. Eine Sache, eine wirklich einfache Sache, die wir tun können, ist, einfach aufzuhören, das heißt, das Training nach vier Schritten zu beenden. |
| |
Und sehen Sie, was passiert. Beachten Sie übrigens, was bei unserer Überanpassung passiert ist. Unser Validierungs-R-Quadrat war tatsächlich negativ, also ziemlich schlecht. Definitiv kein empfehlenswertes Modell. Aber wenn wir dieses neue Modell ausführen, bei dem wir nur vier ... nur vier Schritte ausführen, |
| |
schau, was passiert. |
| |
Viel bessere Validierung R-Quadrat. Wir liegen jetzt bei etwa 0,16 und versuchen es tatsächlich mal drei Mal, nur zum Spaß. Mal sehen, was passiert. |
| |
Etwas schlimmer. Sie sehen also, dass dies eine Sache ist, mit der man herumspielen kann. Wir haben versucht, diesen Dialog so zu gestalten, dass er dafür zugänglich ist. |
| |
Und Sie können einige Modellvergleiche in dieser Tabelle hier am Anfang durchführen. Sie können nach verschiedenen Spalten sortieren und das beste Modell finden und dann weiter unten in verschiedene Modelldetails einsteigen. |
| |
Bleiben wir hier bei Modell 2. Was wir tun können, ist ... |
| |
Behalten wir nur dieses eine und Sie können aufräumen … Sie können die Modelle aufräumen, die Sie nicht möchten, dadurch werden die versteckten entfernt. |
| |
Und jetzt sind wir wieder bei dem Modell, das wir uns genauer ansehen möchten. Beachten Sie, dass unser Validierungs-R-Quadrat bei etwa 0,17 liegt. |
| |
Denken Sie also daran, dass es sich hier eigentlich um ein Ungleichgewicht zwischen dem handelt, was Jaivime ursprünglich bekommen hat und dem, was der Kritiker bekommen hat. |
| |
Und ich würde das als ein viel zuverlässigeres Maß für R-Quadrat betrachten, weil es wiederum insgesamt berechnet wird. Wir haben tatsächlich 15 verschiedene Modellanpassungen durchgeführt, |
| |
dreimal das Fünffache. Das ist also ein Durchschnitt dieser Werte. Ich denke, das ist ein viel saubereres und zuverlässigeres Maß für die Leistung des Modells. |
| |
Wenn Sie nach unten scrollen, um ein Modell zu finden, das angepasst wird, müssen Sie eine ganze Menge an Ausgabe durchgehen. Auch hier ist JMP sehr gut darin, Grafiken in der Nähe von Statistiken zu haben, die Sie |
| |
Beide sehen, was vor sich geht, und ordnen Zahlen dazu zu. Diese Diagramme sind wie gewohnt live und angenehm interaktiv. |
| |
Aber Sie können hier sehen, dass wir ein Training mit einem tatsächlichen Wert im Vergleich zu einem vorhergesagten Wert und einer Validierung haben. Und bei der Validierung wird es fast immer schlimmer, aber das ist wirklich die Realität. |
| |
Und Sie können wieder sehen, wo die Fehler gemacht werden, und zwar das hier ist der ganz hohe Punkt, der oft erreicht wird... das ist die 45-Grad-Linie. |
| |
So dass diese hohen Messwerte dazu neigen... und alle hohen Werte neigen dazu, unterschätzt zu werden, was ziemlich normal ist. Ich denke, für jede Art von Methode wie diese wird es dazu neigen, zu schrumpfen |
| |
Extremwerte runter und nur konservativ. So können Sie genau sehen, wo und in welchem Ausmaß Fehler gemacht werden. |
| |
Nun zu Jaivimes Hauptinteresse. Er war vor allem daran interessiert, herauszufinden, welche Variablen wirklich treibend waren. |
| |
dieser wasserkorrigierte Effekt. Und wir können sehen, dass derjenige, der als Nummer eins ins Auge springt, PET heißt. |
| |
Es gibt verschiedene Möglichkeiten, die Bedeutung von Variablen in XGBoost zu bewerten. Sie können die Anzahl der Splits als Maß für den Gewinn betrachten, was meiner Meinung nach |
| |
vielleicht das beste, um damit anzufangen. Es geht darum, wie sehr sich das Modell mit jedem Mal verbessert, wenn Sie eine bestimmte Variable aufteilen. Es gibt noch ein weiteres, das heißt „Cover“. |
| |
In diesem Fall erweist sich für jeden der drei dieser PET als der wichtigste. Und im Grunde genommen scheint diese schnelle Analyse der entscheidende Punkt für diese Daten zu sein. |
| |
Mit JMP können wir jetzt tatsächlich mehr tun. Und Sie können hier unter dem roten Modellierungsdreieck sehen, dass wir einige neue Dinge verschönert haben. Sie können Vorhersagewerte und Formeln speichern, |
| |
Sie können im Modelldepot oder Formeldepot veröffentlichen und dort weitere Dinge tun. |
| |
Wir haben sogar Routinen zum Generieren von Python-Code, der nicht nur zum Scoring dient, sondern auch das gesamte Training und die Anpassung übernimmt. Das ist zwar neu, wird aber denjenigen von Ihnen helfen, die von JMP Pro auf Python umsteigen möchten. Schauen wir uns hier zunächst den Profiler an. |
| |
Und ich muss mich kurz bei meinem Freund Brad Jones entschuldigen, ich hatte in einem früheren Video vergessen zu erwähnen, dass er der Erfinder des Profilers war. |
| |
Das ist also ein Fall und das ist ihm zu verdanken, in dem wir es jetzt auf eine andere Weise verwenden, nämlich um die Bedeutung von Variablen und die Funktionsweise jeder einzelnen Variable zu bewerten. Für mich ist das also ein wirklich überzeugender |
| |
Rahmen, in dem wir uns das ansehen können. Und Charlie... Charlie ist sofort von der Couch aufgestanden, als ich das erwähnt habe. Er ist jetzt hier bei mir. |
| |
Und sehen Sie, was passiert ... wir können sehen, dass das Interessante an dieser PET-Variable ist, wir können den Schlüsselmoment sehen, es scheint, als ob PET |
| |
Wenn der Wert knapp über 1200 oder so liegt, geht es richtig los. Das ist eine wirklich schöne Illustration der Funktionsweise des Profilers. |
| |
Und soweit ich weiß, ist dies das erste Mal... dies ist die erste... dies ist die einzige Software, die bietet |
| |
Diagramme wie dieses, die über diese statistischen Maße der Wichtigkeit hinausgehen und Ihnen genau zeigen, was vor sich geht, und Ihnen bei der Interpretation helfen |
| |
das Boosted-Tree-Modell. Das ist wirklich eine nette Methode, denke ich, die Analyse durchzuführen, und ich würde das empfehlen ... und ich würde Sie ermutigen, es mit Ihren eigenen Daten auszuprobieren. |
| |
Kommen wir nun zu einem anderen Beispiel und kehren zu unserem Journal zurück. |
| |
Wie Sie sehen, gibt es hier viel. Wir haben natürlich nicht die Zeit, alles durchzugehen. |
| |
Aber wir haben nur aus Zeitgründen gezeigt, was passiert, wenn wir ein binäres Ziel haben. Was wir uns gerade angesehen haben, war kontinuierlich. |
| |
Dafür verwenden wir den alten Diabetes-Datensatz, den es schon eine ganze Weile gibt und der in der JMP-Beispielbibliothek verfügbar ist. Und dieser Datensatz ist derselbe, aber wir haben ihn mit einigen neuen Skripten verschönert. |
| |
Wenn Sie also das Journal herunterladen, erhalten Sie eine erweiterte Version, die |
| |
ziemlich viele XGBoost-Läufe mit unterschiedlichen, sowohl mit einem binären Ordinalziel, und wie Sie sich erinnern, haben wir hier niedrige und hohe Messungen, die von dieser ursprünglichen Y-Variable abgeleitet sind, |
| |
Wir untersuchen die Reaktion auf Diabetes. Und wir gehen hier noch ein bisschen weiter. Stellen wir uns vor, wir befinden uns in einem medizinischen Kontext, in dem wir tatsächlich eine Gewinnmatrix verwenden möchten. Und unser Ziel ist es, eine Entscheidung zu treffen. Wir werden für jede Person vorhersagen, |
| |
ob sie nun high oder low sind, aber wenn ich darüber nachdenke, ist uns klar geworden, dass, wenn eine Person tatsächlich high ist, etwas mehr auf dem Spiel steht. |
| |
Und so werden wir unseren Gewinn oder Verlust verdoppeln, je nachdem, ob der tatsächliche Zustand hoch ist. Und natürlich |
| |
So funktioniert es normalerweise und es ist richtig. Die richtigen Entscheidungen finden Sie hier und hier. |
| |
Und dann gibt es hier falsche, und das sind die ... Sie möchten an alle vier Zellen denken, wenn Sie eine Matrix wie diese einrichten. |
| |
Und hier mache ich eine einfache. Und sie verdoppelt sich und ich weiß nicht, ob man ihnen echte Geldwerte zuordnen kann oder nicht. Das ist eigentlich eine gute Sache, wenn man sich in einem solchen Szenario befindet. |
| |
Wer weiß, vielleicht können wir sie jeweils als BitCoic betrachten, im Wert von etwa 10.000 US-Dollar oder so. |
| |
Das ist nicht so wichtig. Es geht eher darum, dass wir eine optimale Entscheidung auf der Grundlage unserer |
| |
unsere Vorhersagen. Wir werden diese Gewinnmatrix also berücksichtigen, wenn wir jetzt unsere Analyse durchführen. Das geschieht eigentlich erst nach der Modellanpassung. Es wird nicht direkt bei der Anpassung selbst verwendet. |
| |
Wir werden jetzt XGBoost ausführen und haben ein binäres Ziel. Sie werden sehen, |
| |
Die Zielfunktion hat sich nun in eine Logistik des Log-Verlusts geändert, und das spiegelt sich hier wider: dies ist die logistische Log-Wahrscheinlichkeit. |
| |
Und Sie sehen … wir können uns jetzt ein binäres Ziel ansehen, die Metriken, die wir zur Bewertung verwenden, sind ein wenig anders. |
| |
Wie Sie jedoch bemerken werden, haben wir Gewinnspalten, die aus der Gewinnmatrix berechnet werden, die wir uns gerade angesehen haben. |
| |
Wenn Sie sich jedoch in einem Szenario befinden, in dem Sie sich vielleicht nicht so sehr um eine Gewinnmatrix kümmern möchten, sondern nur um eine Art binäre Regression, können Sie sich gängige Kennzahlen ansehen wie |
| |
Nur die Genauigkeit, also das Gegenteil der Fehlklassifizierungsrate, ist gut zu betrachten, ebenso wie eine ROC-Analyse, die Ihnen hilft, Spezifität und Sensitivität auszugleichen. Alle diese Werte sind also verfügbar. |
| |
Und Sie können tiefer graben. Eine brandneue Sache, die ich zeigen wollte und an der wir noch ein bisschen arbeiten, ist, dass wir jetzt eine Möglichkeit für Sie haben, mit Ihrer Entscheidungsschwelle zu spielen. |
| |
Und Sie können das jetzt tatsächlich interaktiv tun. Und wir haben eine neue ... eine neue Funktion, die Ihren Gewinn nach Schwellenwert aufzeichnet. |
| |
Dies ist ein brandneues Diagramm, das wir gerade in JMP Pro einführen, und Sie müssen sich die neueste Version von JMP 16 Early Adopter besorgen, um es zu erhalten, aber es unterstützt die Entscheidungsmatrix ... |
| |
oder die Gewinnmatrix. Und dann arbeiten wir noch daran, dass man auf Grundlage dieser Matrix direkt einen optimalen Schwellenwert ableiten kann. |
| |
Ich glaube, in diesem Fall ist es tatsächlich immer noch 0,5. Und das gibt uns zusätzliche Einblicke in die Dinge, die Sie tun sollten, wenn Ihr eigentliches Ziel die Gewinnmaximierung ist. |
| |
Andernfalls möchten Sie wahrscheinlich Spezifität und Sensibilität unter Berücksichtigung Ihres Kontexts ausbalancieren, aber Sie verfügen über die typischen Konfusionsmatrizen, die hier und hier oben zusammen mit einigen Diagrammen für Training und Validierung angezeigt werden. |
| |
Und dann die ROC-Kurven. |
| |
Sie erhalten auch die gleichen Dinge, die wir zuvor in Bezug auf Variablenbedeutungen gesehen haben. Und machen wir weiter und machen den Profiler noch einmal, da das eigentlich eine nette Sache ist ... |
| |
in diesem Fall ist es auch schön. Wir können genau sehen, was mit jeder Variable passiert. |
| |
Wir können hier beispielsweise sehen, dass LTG und BMI die beiden wichtigsten Variablen sind und dass sie beide tendenziell steigen, wenn die Antwort steigt. Wir können diese Beziehung also direkt sehen. Und tatsächlich kann es bei Bäumen manchmal zu Nichtlinearitäten kommen, wie hier beim BMI. |
| |
Es ist nicht klar, ob das hier eine echte Sache ist, wir sollten vielleicht mehr Analysen durchführen oder uns mehr Modelle ansehen, um sicherzugehen, dass hier vielleicht etwas Reales mit diesem kleinen |
| |
Beule, die wir sehen. Aber das sind Dinge, die man herauskitzeln kann, wirklich lustig und interessant anzusehen. |
| |
So, das war’s also mit dem Diabetes-Datensatz. Das Journal enthält noch viel mehr. Es gibt noch zwei weitere Beispiele, die ich heute aus Zeitgründen nicht zeigen werde, aber sie sind ausführlich in der XGBoost-Dokumentation dokumentiert. |
| |
Dies ist ein PDF-Dokument, das ausführlich auf das Add-In eingeht und Sie Schritt für Schritt durch diese beiden Beispiele führt. Ich empfehle Ihnen also, sich diese anzusehen. |
| |
Darüber hinaus enthält die Zeitschrift auch verschiedene Vergleiche, die durchgeführt wurden. |
| |
Sie haben diese violette Matrix gesehen, die wir uns angesehen haben. Dies war eine Studie, die an der University of Pennsylvania durchgeführt wurde. |
| |
Dabei vergleichen sie eine ganze Reihe von Methoden des maschinellen Lernens anhand verschiedener Datensätze miteinander und vergleichen dann, wie oft eine Methode die andere übertrifft. Und XGBoost |
| |
kam als Topmodell heraus und dieser Vergleich war nicht immer der beste, aber im Durchschnitt übertraf es alle anderen, die Sie hier sehen. Also noch ein weiterer Beweis für die |
| |
Leistung und Möglichkeiten dieser Technik. Es gibt hier noch ein paar andere Dinge, auf die ich nicht näher eingehen werde. |
| |
Dieses Hill Valley-Beispiel ist interessant. In diesem Fall funktionierten die Bäume überhaupt nicht gut. Es ist eine Art pathologische Situation, aber interessant zu untersuchen, einfach um zu verstehen, was vor sich geht. |
| |
Wir haben außerdem intern im Bereich Forschung und Entwicklung bei JMP einige recht umfangreiche Tests durchgeführt und viele dieser Ergebnisse sind hier in mehreren unterschiedlichen Datensätzen verfügbar. |
| |
Aus Zeitgründen werde ich nicht näher darauf eingehen, aber ich möchte Sie dazu ermutigen, sie sich anzusehen. Alle unsere Ergebnisse sind hier im Journal enthalten und Sie können sie in vielen verschiedenen Bereichen und Datengrößen ausprobieren. |
| |
Also schaut sie euch an. Ich sage nur zum Spaß, unsere Schlussfolgerung in Sachen Geschwindigkeit ist hier in diesem kleinen Meme zusammengefasst. Wir haben zwei verschiedene Autos. |
| |
Tatsächlich läuft es richtig gut und ist darauf abgestimmt, alle … alle Threads zu nutzen, die Sie in Ihrer GPU … in Ihrer CPU haben. |
| |
Und wenn Sie Windows verwenden, können Sie mit einer NVIDIA-Karte sogar Ihre GPU nutzen, was oft eine um das Fünffache höhere Geschwindigkeit bietet. Also viel Spaß dabei. |
| |
Lassen Sie mich das Tutorial an dieser Stelle abschließen. Und ich möchte Sie noch einmal ermutigen, es sich anzusehen. Ich möchte mich ganz herzlich bedanken. Viele Leute haben mitgewirkt |
| |
und ich mache mir Sorgen, dass ich hier wahrscheinlich einige übersehen habe, aber ich wollte diese Leute zumindest erwähnen. Wir hatten eine großartige Gruppe von Early Adopters. |
| |
Und es gab wirklich nettes Feedback von Marie und Diedrich, und die Leute bei Villanova haben tatsächlich bereits begonnen, XGBoost erfolgreich im Unterricht einzusetzen. |
| |
Es war also wirklich toll, davon zu hören. Und viele Leute bei JMP haben geholfen. |
| |
Natürlich baut dies auf der gesamten JMP-Infrastruktur auf. Daher muss irgendwann die gesamte JMP-Abteilung mit Hilfe dabei aufgelistet werden, es hat so viel Spaß gemacht, daran zu arbeiten. |
| |
Und dann möchte ich unserem Life Sciences-Team danken, das mich in verschiedenen Dingen ehrlich gehalten hat. Und sie haben mit vielen Vorschlägen geholfen. |
| |
Und Luciano hat tatsächlich ein XGBoost-Add-In implementiert, ein anderes Add-In, das zu JMP Genomics gehört. Ich würde Ihnen also empfehlen, sich das auch anzusehen, wenn Sie JMP Genomics verwenden. Sie können XGBoost dort auch direkt im Predictive-Modeling-Framework aufrufen. |
| |
Vielen Dank für Ihre Aufmerksamkeit und ich hoffe, Sie können XGBoost ausprobieren. |