| Lautsprecher |
Transkript |
| Russ Wolfinger |
Okay. Also, hallo zusammen. |
| |
Willkommen in meinem Zuhause hier in Holly Springs, North Carolina. |
| |
Angesichts des aktuellen Covid-Wahnsinns ist es eine neue Erfahrung, eine virtuelle Konferenz online durchzuführen, 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 zeige ich Ihnen in diesem Tutorial, was wir haben. Hier ist ein JMP-Journal |
| |
Das wird in den Konferenzmaterialien verfügbar sein. Und ich möchte Sie dazu ermutigen, 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. |
| |
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 damit experimentieren. Ich empfehle Ihnen, 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 besonders 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 einigen berühmten Statistikern entwickelt, aber dann griff das Team der University of Washington die Ideen auf und setzte sie um. |
| |
Und ich glaube, dass es im Rahmen einiger Kaggle-Wettbewerbe wirklich zur Geltung kam. |
| |
Wo es begann... als die Leute anfingen, es zu verwenden und es verfügbar war, gewann es buchstäblich fast jeden Tabellenwettbewerb, 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 können Sie einige Unterschiede feststellen, aber insgesamt ist es sehr beeindruckend. |
| |
Tatsächlich gibt es mittlerweile Konkurrenzpakete, die sehr ähnliche Aufgaben wie LightGBM von Microsoft und Catboost von Yandex bieten. Wir werden heute nicht näher darauf eingehen, aber sie sind ziemlich ähnlich. |
| |
Da wir heute nicht viel Zeit haben, möchte ich nicht weiter auf die Beweggründe eingehen. Aber falls Sie sich genauer damit befassen möchten, haben Sie dieses Tagebuch. |
| |
Ich möchte Ihnen die wichtigsten Punkte dieses Journals vorstellen und Ihnen insbesondere einige Live-Demonstrationen bieten, damit Sie eine Vorstellung davon bekommen, was hier geboten wird. |
| |
Und dann können Sie diese Dinge im Laufe der Zeit selbst erkunden und ausprobieren. Sie benötigen... Sie benötigen eine funktionierende Version von JMP Pro 15 |
| |
frühestens, aber wenn Sie JMP 16 Early Adopter in die Hände bekommen, wird das offizielle JMP 16 erst im nächsten Jahr, 2021, ausgeliefert, |
| |
Sie können aber jetzt Ihre Early-Adopter-Version erhalten, und wir nehmen dort Verbesserungen vor. Ich empfehle Ihnen daher, sich die neueste Version von JMP 16 Pro Early Adopter zu holen. |
| |
um die neueste Funktionalität dieses Add-Ins zu erhalten ... dieser Funktionalität. Nun, es ist, 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 das Add-In, um es auszuführen. |
| |
Schnappen Sie sich also, wenn möglich, JMP 16 Pro Early Adopter, um die neuesten Dinge zu bekommen, und das werde ich Ihnen heute zeigen. |
| |
Lassen Sie uns gleich ein Beispiel betrachten. Und das ist ein brandneues Beispiel, das mir gerade aufgefallen ist. Es hat eine sehr interessante Geschichte. |
| |
Der Forscher hinter diesen Daten ist Professor Jaivime Evarito. Er ist Umweltwissenschaftler, promovierter Professor und Assistenzprofessor. |
| |
jetzt an der Universität Utrecht in den Niederlanden und er hat diese Daten mit seiner Erlaubnis sowie die Geschichte dahinter zur Verfügung gestellt, um anderen zu helfen, die so... ein bisschen Drama um diese Daten hatten. Ich habe seinen Kollegen Jeffrey McDonnell |
| |
all diese Daten gesammelt. Das sind Daten. Ziel ist es, den Wasserabfluss in abgeholzten Gebieten weltweit 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 |
| |
im Hinblick auf den Wasserabfluss. Diese Art von Studie ist sehr wichtig für die Untersuchung der Umweltauswirkungen von Rodungen und Abholzung sowie des Klimawandels und kommt daher gerade zur rechten Zeit. |
| |
Und zum Glück für Jaivime konnten sie damals einen Artikel in der Zeitschrift Nature veröffentlichen, einer der führenden Wissenschaftszeitschriften der Welt, eine wirklich schöne |
| |
Es war eine Menge Erfahrung, die er brauchte, um es dort unterzubringen. Leider passierte dann Folgendes: Es gab ein konkurrierendes Labor, das die Arbeit in dieser Arbeit sehr kritisch sah. |
| |
Und nach langem Hin und Her und vielen Debatten stellte sich heraus, 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 seine Geschichte und Hoffnungen mit uns geteilt. |
| |
um dies zu vermeiden. Und es stellte sich heraus, dass der Grund für die Kontroverse mehrere, mehrere andere Dinge waren, aber der Hauptkritikpunkt der Kritiker war ... |
| |
Ich habe möglicherweise eine Boosted-Tree-Analyse durchgeführt. Und es ist ein ziemlich einfaches Modell. Es gibt nur eine Handvoll Prädiktoren, von denen jeder wichtig ist, aber eines ihrer Hauptziele war es, die wichtigsten zu bestimmen. |
| |
Er führte ein Boosted-Tree-Modell mit einem einzigen Holdout-Validierungssatz aus und veröffentlichte einen Validierungs-Holdout von etwa 0,7. Alles sah gut aus, |
| |
Aber dann kamen die Kritiker, sie analysierten die Daten mit einem anderen Hold-Out-Set erneut und erhielten ein Validitäts-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 genutzt, die Kritiker stürzten sich darauf und versuchten, das Geschehen 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 zur Verfügung gestellt 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 dieser Diskrepanz zwischen zwei verschiedenen Holdouts auf den Grund zu gehen. Und was ich getan habe, wir haben eine neue Routine |
| |
Das XGBoost-Add-In erstellt K-Fold-Spalten. Wie Sie im Datensatz sehen, habe ich diese erstellt. Aus Zeitgründen gehen wir hier nicht näher darauf ein. Es gibt jedoch |
| |
Es gibt jetzt ein neues Modul mit der Überschrift „K-fach-Spalten erstellen“, mit dem Sie dies tun können. Ich habe es stratifiziert umgesetzt. Interessanterweise ruft es im Hintergrund JMP DOE auf. |
| |
Der Vorteil dieser Vorgehensweise besteht darin, dass Sie tatsächlich orthogonale Falten erzeugen können, was nicht sehr üblich ist. Lassen Sie mich hier eine kurze Verteilung vornehmen. |
| |
Das war das Holdout-Set, das Jaivime ursprünglich erstellt hat, und er hat es stratifiziert, was meiner Meinung nach eine gute Idee ist, da die Reaktion etwas verzerrt ist. Und das war dann 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 rechtwinklig sind. |
| |
wo wir eine Art maximalen Informationsgewinn erzielen, indem wir die K-Faltung dreimal separat mit drei orthogonalen Sätzen durchführen. |
| |
Und dann stellte sich heraus, dass er, da er bereits Boosted Trees verwendete, als Nächstes das XGBoost-Add-In ausprobieren musste. Ich habe mich sehr gefreut, von diesem Datensatz zu erfahren und hier darüber zu sprechen. |
| |
Was ist nun passiert? Ich führe hier eine weitere Analyse durch, bei der ich eine Einweganalyse der Validierungssätze durchführe. Es stellte sich heraus, dass ich die Antworten, die Wasserausbeute, nicht berücksichtigt habe. |
| |
Und ich stelle das den Validierungssätzen gegenüber. Es stellte sich heraus, dass Jaivime in seinem Trainingssatz, |
| |
die besten vier oder fünf Messungen landeten alle in seinem Trainingssatz, was meiner Meinung nach die Wurzel des Problems ist. |
| |
Im Kritiker-Set hingegen war es etwas ausgeglichener, und insbesondere das Schlimmste war, dass der Standort mit der höchsten Punktzahl im Validierungs-Set lag. Dies ist eine natürliche Fehlerquelle, da es über alles hinausgeht, was das Training beinhaltete. |
| |
Und ich denke, das ist wirklich ein Fall, in dem die K-Faltung, eine Analyse vom K-Faltungstyp, überzeugender ist, als nur einen einzigen Holdout-Satz durchzuführen. |
| |
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... 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. Lassen Sie uns nun XGBoost ausführen. |
| |
Das Add-In hat 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, einfach ein Skript auszuführen. Und übrigens, alles im Journal hat … JMP-Tabellen sind praktisch, da man dort Skripte speichern kann. Und deshalb habe ich XGBoost aus diesem Skript ausgeführt. |
| |
Zur Veranschaulichung führe ich dies noch einmal direkt über das Menü aus. So können Sie es vielleicht machen. Wenn Sie das Add-In installieren, |
| |
Sie klicken auf „Predictive Modeling“ und dann auf „XGBoost“. Wir haben es hier zum Predictive-Modeling-Menü hinzugefügt. So richten Sie das ein |
| |
dient zur Angabe der Antwort. Hier ist Y. Es gibt sieben Prädiktoren, die wir hier als x eintragen. Anschließend geben Sie die Faltungsspalten und die Validierung ein. |
| |
Ich möchte hier auf diejenigen unter Ihnen hinweisen, die erfahrene JMP Pro-Benutzer sind: XGBoost behandelt Validierungsspalten etwas anders als andere JMP-Plattformen. |
| |
Es handelt sich derzeit um eine Art experimentelles Framework, aber meiner Erfahrung nach halte ich die wiederholte K-Faltung 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 ich es einfach so angibt, wie wir es hier getan haben. |
| |
Wenn Sie einen einzelnen Holdout wie die 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 Methode zu sein. Und auch hier 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 Optimierungsparameter bietet. Die wichtigsten sind hier in diesem Feld aufgelistet und Sie können damit experimentieren. |
| |
Und dann stellt sich heraus, dass es noch viel 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, um die Sie sich normalerweise kümmern müssen … in den meisten Fällen können Sie sich einfach darum 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. |
| |
Ich nutze hier nur einen einfachen Laptop. Das ist ein relativ kleiner Datensatz. Und so... wir haben es einfach fünfmal wiederholt |
| |
Drei verschiedene Dinge, in nur wenigen Sekunden. XGBoost ist ziemlich gut abgestimmt und funktioniert gut für größere Datensätze, aber sehen wir uns für dieses kleine Beispiel an, was passiert ist. |
| |
Nun stellt sich heraus, dass dieses erste Diagramm, das herauskommt, sofort Anlass zur Sorge gibt. |
| |
Was wir hier sehen, ist … über die Anzahl der Iterationen, die Anpassungsiterationen, haben wir eine Trainingskurve, die im Grunde die Verlustfunktion ist, die Sie verringern möchten. |
| |
Die durchgezogene Kurve ist die Validierungskurve. Und Sie können sehen, was hier passiert ist. Schon nach wenigen Iterationen erreichte diese Kurve ihren Tiefpunkt, und dann wurde es noch viel schlimmer. |
| |
Dies ist also tatsächlich ein Fall, in dem Sie dieses Standardmodell nicht verwenden möchten. XGBoost ist bereits überangepasst, |
| |
Dies geschieht häufig bei kleineren Datensätzen wie diesen und erfordert eine Feinabstimmung. |
| |
Unten finden Sie viele weitere Ergebnisse, aber auch diese würden ich nicht als vertrauenswürdig einstufen. An dieser Stelle müssten Sie ein wenig nachjustieren. |
| |
Für heute wollen wir nur ein wenig manuelles Tuning durchführen, aber ich möchte Sie ermutigen. Wir haben tatsächlich ein komplettes Framework für die Erstellung eines Tuning-Designs implementiert. |
| |
Hier können Sie eine Reihe von Parametern angeben und den Entwurfsbereich durchsuchen. Wir verwenden tatsächlich auch hier JMP DOE. |
| |
Wir nutzen DOE bereits auf zwei verschiedene Arten, die beide die Funktionalität deutlich verbessert haben. Nehmen wir zunächst anhand dieses Diagramms eine kleine manuelle Anpassung vor. |
| |
Wenn wir in dieses Diagramm hineinzoomen, sehen wir, dass die Kurve ihren Tiefpunkt erreicht. Ich schaue mir das einfach nach drei oder vier Iterationen an. Eine ganz einfache Sache, die wir tun können, ist, das Training einfach 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, führen wir nur vier ... nur vier Schritte aus. |
| |
schau, was passiert. |
| |
Deutlich bessere Validierung R-Quadrat. Wir liegen jetzt bei etwa 0,16 und versuchen es einfach mal drei Mal. Mal sehen, was passiert. |
| |
Etwas schlimmer. Sie sehen also, das ist eine Sache, mit der man experimentieren kann. Wir haben versucht, diesen Dialog so zu gestalten, dass er dafür zugänglich ist. |
| |
Und Sie können anhand dieser Tabelle hier am Anfang einige Modellvergleiche durchführen. Sie können nach verschiedenen Spalten sortieren und das beste Modell finden. Weiter unten können Sie dann auf verschiedene Modelldetails eingehen. |
| |
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, die versteckten werden entfernt. |
| |
Und jetzt sind wir wieder bei dem Modell, das wir genauer betrachten möchten. Beachten Sie, dass unser Validierungs-R-Quadrat bei etwa 0,17 liegt. |
| |
Denken Sie also daran, dass es sich hier tatsächlich 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. |
| |
Das Fünffache dreimal. Dies ist also ein Durchschnitt dieser Werte. Ich denke, es ist ein viel genaueres und zuverlässigeres Maß für die Leistung des Modells. |
| |
Wenn Sie nach unten scrollen, um ein passendes Modell zu finden, müssen Sie eine ganze Menge an Ergebnissen durchgehen. Auch hier ist JMP sehr gut darin... Wir versuchen immer, Grafiken in der Nähe von Statistiken zu haben, die Sie |
| |
Beide sehen, was vor sich geht, und ordnen Zahlen zu. Diese Diagramme sind wie gewohnt live und angenehm interaktiv. |
| |
Aber wie Sie hier sehen, haben wir einen Vergleich zwischen dem tatsächlichen Trainingsergebnis und dem prognostizierten Ergebnis sowie einer Validierung. Und bei der Validierung wird es fast immer schlimmer, aber so sieht die Realität aus. |
| |
Und Sie können wieder sehen, wo die Fehler gemacht werden, und zwar, dass dies der wirklich höchste Punkt ist, der oft erreicht wird ... das ist die 45-Grad-Linie. |
| |
Diese hohen Messwerte neigen dazu, unterschätzt zu werden, was ziemlich normal ist. Ich denke, bei jeder Methode dieser Art wird es dazu neigen, zu schrumpfen. |
| |
Extremwerte herunter 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, dieser hier heißt PET. |
| |
Es gibt verschiedene Möglichkeiten, die Variablenbedeutung in XGBoost zu bewerten. Sie können die Anzahl der Splits als Maß für den Gewinn betrachten, was meiner Meinung nach |
| |
Vielleicht ist es die beste Methode für den Anfang. Sie zeigt, wie sehr sich das Modell mit jeder Aufteilung einer bestimmten Variable verbessert. Es gibt noch eine weitere Methode namens „Cover“. |
| |
In diesem Fall erweist sich das PET für alle drei als das wichtigste. Und genau hier scheint bei dieser Schnellanalyse der entscheidende Punkt für diese Daten zu liegen. |
| |
Mit JMP haben wir jetzt noch mehr Möglichkeiten. Hier unter dem roten Modellierungsdreieck sehen Sie, dass wir einige Neuerungen hinzugefügt haben. Sie können Vorhersagewerte und Formeln speichern. |
| |
Sie können im Modelldepot oder Formeldepot veröffentlichen und dort weitere Dinge tun. |
| |
Wir verfügen sogar über Routinen zur Generierung von Python-Code. Dieser dient nicht nur der Bewertung, sondern auch dem gesamten Training und der Anpassung. Das ist zwar neu, wird aber denjenigen von Ihnen helfen, die von JMP Pro auf Python umsteigen möchten. Schauen wir uns 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 nutzen, nämlich um die Bedeutung von Variablen und deren Funktion zu bewerten. Für mich ist es ein wirklich überzeugendes |
| |
Rahmen, in dem wir uns das ansehen können. Und Charlie … Charlie ist sofort vom Sofa aufgestanden, als ich das erwähnte. Er ist jetzt hier bei mir. |
| |
Schauen Sie sich also an, was passiert... wir können sehen, das Interessante an dieser PET-Variable ist, dass wir den Schlüsselmoment sehen können, es scheint, als wäre PET |
| |
Bei Werten knapp über 1200 oder so 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 helfen, zu interpretieren |
| |
das Boosted-Tree-Modell. Ich finde, das ist wirklich eine nette Methode, die Analyse durchzuführen, und ich würde Sie dazu 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 eine Menge. Wir haben natürlich nicht die Zeit, alles durchzugehen. |
| |
Aber aus Zeitgründen wollte ich Ihnen zeigen, 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, der schon länger existiert und in der JMP-Beispielbibliothek verfügbar ist. Dieser Datensatz enthält dieselben Daten, wurde aber mit einigen neuen Skripten erweitert. |
| |
Wenn Sie also das Journal herunterladen, erhalten Sie eine erweiterte Version, die |
| |
ziemlich viele XGBoost-Läufe mit unterschiedlichen Zielen, sowohl mit einem binären Ordinalziel, als auch, wie Sie sich erinnern, hier haben wir niedrige und hohe Messungen, die von dieser ursprünglichen Y-Variable abgeleitet sind, |
| |
Wir untersuchen die Reaktion auf Diabetes. Und wir gehen noch einen Schritt weiter. Stellen wir uns einen medizinischen Kontext vor, in dem wir eine Gewinnmatrix verwenden möchten. Unser Ziel ist es, eine Entscheidung zu treffen. Wir werden für jede Person vorhersagen, |
| |
ob sie hoch oder niedrig sind, aber wenn ich darüber nachdenke, ist uns klar geworden, dass, wenn eine Person tatsächlich hoch 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 richtig. Die richtigen Entscheidungen finden Sie hier und hier. |
| |
Und dann gibt es hier noch die falschen, und das sind die ... Sie möchten an alle vier Zellen denken, wenn Sie eine Matrix wie diese erstellen. |
| |
Und hier ist ein einfaches Beispiel. Es verdoppelt sich, und ich weiß nicht, ob man dem einen realen Geldwert zuordnen kann. Das ist in einem solchen Szenario eigentlich eine gute Sache. |
| |
Wer weiß, vielleicht können wir jeden davon als BitCoic betrachten, im Wert von etwa 10.000 US-Dollar oder so ähnlich. |
| |
Das ist nicht so wichtig. Es geht eher darum, dass wir eine optimale Entscheidung treffen wollen, basierend auf unseren |
| |
unsere Vorhersagen. Wir werden diese Gewinnmatrix also bei unserer Analyse berücksichtigen. Dies geschieht erst nach der Modellanpassung. Sie wird nicht direkt bei der Anpassung selbst verwendet. |
| |
Wir führen jetzt XGBoost aus und haben ein binäres Ziel. Sie werden sehen, dass |
| |
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 können sehen ... wir können uns jetzt ein binäres Ziel ansehen, bei dem die Metriken, die wir zur Bewertung verwenden, ein wenig anders sind. |
| |
Wenn Sie es jedoch bemerken, 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 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 der Kehrwert der Fehlklassifizierungsrate, ist eine gute Betrachtung. Diese F1- oder Matthews-Korrelation ist ebenso hilfreich wie eine ROC-Analyse, die Ihnen hilft, Spezifität und Sensitivität abzuwägen. Alle diese Methoden sind verfügbar. |
| |
Und Sie können tiefer graben. Eine brandneue Sache, die ich zeigen wollte und an der wir noch arbeiten, ist eine Möglichkeit, mit der Sie jetzt mit Ihrer Entscheidungsschwelle experimentieren können. |
| |
Und Sie können dies jetzt tatsächlich interaktiv tun. Und wir haben eine neue ... eine neue Funktion, die Ihren Gewinn nach Schwellenwert aufzeichnet. |
| |
Dies ist also 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 berücksichtigt die Entscheidungsmatrix … |
| |
oder die Gewinnmatrix. Und wir arbeiten auch daran, dass man auf Grundlage dieser Matrix direkt einen optimalen Schwellenwert ableiten kann. |
| |
Ich glaube, in diesem Fall liegt es tatsächlich immer noch bei 0,5. Dies gibt Ihnen 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 in Ihrem Kontext ausbalancieren, aber Sie haben 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 hinsichtlich der Variablenbedeutungen gesehen haben. Und lassen Sie uns den Profiler noch einmal durchgehen, da das eigentlich eine nette Sache ist... |
| |
es ist auch in diesem Fall schön. Wir können genau sehen, was mit jeder Variable passiert. |
| |
Wir sehen hier beispielsweise, dass LTG und BMI die beiden wichtigsten Variablen sind. Beide scheinen mit steigender Antwort zu steigen, sodass wir diese Beziehung direkt erkennen können. Tatsächlich treten bei Bäumen manchmal Nichtlinearitäten auf, 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 Echtes 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 zwei weitere Beispiele, die ich heute aus Zeitgründen nicht zeige, 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 die beiden Beispiele führt. Schauen Sie sich diese unbedingt an. |
| |
Und dann enthält das Journal auch mehrere verschiedene Vergleiche, die durchgeführt wurden. |
| |
Sie haben diese violette Matrix gesehen, die wir untersucht haben. Dies war eine Studie, die an der University of Pennsylvania durchgeführt wurde. |
| |
Dabei werden verschiedene Methoden des maschinellen Lernens anhand verschiedener Datensätze miteinander verglichen und anschließend ermittelt, 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 noch ein paar andere Dinge, auf die ich hier nicht näher eingehen werde. |
| |
Dieses Hill Valley-Beispiel ist interessant. Hier funktionierten die Bäume überhaupt nicht gut. Es ist eine pathologische Situation, aber interessant zu untersuchen, um zu verstehen, was vor sich geht. |
| |
Wir haben außerdem intern im Bereich Forschung und Entwicklung bei JMP einige ziemlich 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 einmal anzusehen. Alle unsere Ergebnisse sind hier im Journal enthalten und Sie können sie in verschiedenen Bereichen und Datengrößen ausprobieren. |
| |
Also schaut sie euch an. Nur so zum Spaß: Unser Fazit zur 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 und eine NVIDIA-Karte besitzen, können Sie sogar Ihre GPU nutzen, was oft eine um das Fünffache höhere Geschwindigkeit ermöglicht. Also viel Spaß dabei. |
| |
Lassen Sie mich das Tutorial an dieser Stelle abschließen. Und ich möchte Sie noch einmal dazu 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 sie haben wirklich nettes Feedback von Marie und Diedrich gegeben, und die Leute bei Villanova haben tatsächlich bereits begonnen, XGBoost erfolgreich im Unterricht einzusetzen. |
| |
Es war wirklich toll, davon zu hören. Und viele Leute bei JMP haben geholfen. |
| |
Dies baut natürlich auf der gesamten JMP-Infrastruktur auf. Daher muss ich irgendwann die gesamte JMP-Abteilung auflisten, die dabei mithilft. Es hat so viel Spaß gemacht, daran zu arbeiten. |
| |
Und dann möchte ich unserem Life Sciences-Team danken, das mich in verschiedenen Punkten ehrlich gehalten und mir mit vielen Vorschlägen geholfen hat. |
| |
Luciano hat tatsächlich ein XGBoost-Add-In implementiert, ein weiteres Add-In für JMP Genomics. Ich empfehle Ihnen daher, sich auch dieses anzusehen, wenn Sie JMP Genomics verwenden. Sie können XGBoost dort auch direkt im Predictive-Modeling-Framework aufrufen. |
| |
Vielen Dank also für Ihre Aufmerksamkeit und ich hoffe, Sie können XGBoost ausprobieren. |