|
Conférencier
|
Transcription
|
| Russ Wolfinger |
D'accord. Eh bien, bonjour à tous. |
| |
Bienvenue chez moi ici à Holly Springs, en Caroline du Nord. |
| |
Avec la folie du Covid, c'est en quelque sorte une nouvelle expérience de faire une conférence virtuelle en ligne, mais je suis vraiment ravi de parler avec vous aujourd'hui et de vous proposer un didacticiel sur un tout nouveau module complémentaire que nous avons pour JMP Pro. |
| |
qui implémente la fonctionnalité populaire XGBoost. |
| |
Donc, aujourd'hui, pour ce didacticiel, je vais vous expliquer ce que nous avons. Ce que j'ai ici est un journal JMP |
| |
qui sera disponible dans les documents de la conférence. Et ce que je vous encourage à faire, si vous souhaitez suivre vous-même, |
| |
vous pouvez mettre la vidéo en pause maintenant et accéder aux documents de la conférence, récupérer ce journal. Vous pouvez l'ouvrir dans votre propre version de JMP Pro, |
| |
et en plus il y a un lien pour installer. Vous devez installer un complément, si vous continuez et installez-le, vous pourrez reproduire tout ce que je fais ici exactement à la maison, et même faire vos propres jeux. Je vous encourage donc à le faire si vous le pouvez. |
| |
J'ai mon chien Charlie, il est en arrière-plan là-bas. J'espère qu'il ne fera rien d'embarrassant. Il ne semble pas trop excité pour le moment, mais il aime XGBoost autant que moi, alors allons-y. |
| |
XGBoost est une bibliothèque C++ open source assez incroyable qui existe depuis plusieurs années. |
| |
Et la théorie originale a en fait été élaborée par quelques statisticiens célèbres dans les années 90, mais l'équipe de l'Université de Washington a ensuite repris les idées et l'a mise en œuvre. |
| |
Et c'est... Je pense que c'est dans le contexte de certaines compétitions Kaggle que cela a vraiment pris tout son sens. |
| |
Là où tout a commencé... une fois que les gens ont commencé à l'utiliser et qu'il était disponible, il a littéralement commencé à gagner presque tous les concours tabulaires organisés par Kaggle au cours des dernières années. |
| |
Et il y a en fait maintenant plusieurs centaines d'exemples en ligne, si vous voulez faire une recherche, vous les trouverez. |
| |
Je considérerais donc cela comme sans doute la méthodologie de modélisation prédictive de données tabulaires la plus populaire et peut-être la plus puissante au monde à l’heure actuelle. |
| |
Bien sûr, il y a des concurrents et pour un ensemble de données particulier, vous pouvez constater des différences, mais dans l'ensemble, c'est très impressionnant. |
| |
En fait, il existe actuellement des packages compétitifs qui font des choses très similaires, LightGBM de Microsoft et Catboost de Yandex. Nous ne les aborderons pas aujourd'hui, mais ils sont assez similaires. |
| |
Puisque nous n'avons pas beaucoup de temps aujourd'hui, je ne veux pas insister sur les motivations. Mais encore une fois, vous avez ce journal si vous souhaitez les examiner plus attentivement. |
| |
Ce que je veux faire, c'est en quelque sorte vous donner les points forts de ce journal et en particulier vous faire des démonstrations en direct pour que vous ayez une idée de ce qu'il y a ici. |
| |
Vous serez ensuite libre d’explorer et d’essayer ces choses par vous-même, au fil du temps. Vous aurez besoin... vous avez besoin d'une copie fonctionnelle de JMP Pro 15 |
| |
au plus tôt, mais si vous pouvez mettre la main sur le JMP 16 early adopter, le JMP 16 officiel ne sera pas expédié avant l'année prochaine, 2021, |
| |
mais vous pouvez obtenir votre version early adopter dès maintenant et nous y apportons des améliorations. Je vous encourage donc à vous procurer le dernier modèle d'adoption précoce de JMP 16 Pro. |
| |
afin d'obtenir la fonctionnalité la plus récente de ce complément...de cette fonctionnalité. Maintenant, c'est une nouvelle configuration de cadre inhabituelle pour JMP Pro. |
| |
Nous avons écrit beaucoup de code C++ directement dans Pro afin de l'intégrer pour obtenir l'API XGBoost C++. Et c'est pourquoi... nous effectuons la plupart de notre travail en C++ |
| |
mais il y a un complément qui l'accompagne qui installe la bibliothèque dynamique et effectue une petite mise à jour du menu pour vous, vous avez donc besoin... vous avez besoin des deux Pro et vous devez installer le complément pour l'exécuter. |
| |
Alors, si vous le pouvez, optez pour JMP 16 pro early adopter, afin d'obtenir les dernières nouveautés et c'est ce que je vais vous montrer aujourd'hui. |
| |
Allons, plongeons directement pour faire un exemple. Et c’est un tout nouveau qui vient d’attirer mon attention. Il y a une histoire très intéressante derrière. |
| |
Le chercheur derrière ces données est un professeur nommé Jaivime Evarito. Il est expert scientifique en environnement, docteur, professeur, professeur assistant |
| |
maintenant à l'Université d'Utrecht aux Pays-Bas et il a aimablement fourni ces données avec sa permission, ainsi que l'histoire qui les sous-tend, afin d'aider les autres qui étaient si... un peu dramatiques autour de ces données. J'ai fait de lui son collègue Jeffrey McDonnell |
| |
collecté toutes ces données. Ce sont des données. L’objectif est d’étudier le ruissellement des eaux de ruissellement dans les zones déboisées du monde entier. |
| |
Et vous pouvez voir, nous avons 163 endroits ici, dont la plupart au moins la moitié aux États-Unis et ensuite dans le monde entier, différents endroits où ils ont pu collecter |
| |
régions qui ont été débarrassées des arbres, puis ils ont pris des mesures critiques |
| |
en termes de ce qui s'est passé avec le ruissellement de l'eau. Et ce type d'étude est très important pour étudier les impacts environnementaux du déboisement et de la déforestation, ainsi que du changement climatique, et arrive donc tout à fait à propos. |
| |
Et heureusement pour Jaivime à l'époque, ils ont pu publier un article dans la revue Nature, l'une des meilleures revues scientifiques au monde, un article vraiment sympa. |
| |
expérience pour qu'il puisse y entrer. Malheureusement, ce qui s'est passé ensuite, même s'il y avait un laboratoire concurrent qui est vraiment devenu très critique à l'égard de ce qu'il avait fait dans cet article. |
| |
Et il s'est avéré qu'après de nombreux échanges et débats, le document a fini par être rétracté, |
| |
ce qui fut évidemment une expérience très difficile pour Jaivime. Je veux dire, il a été très aimable et a laissé partager une histoire et des espoirs. |
| |
pour éviter cela. Et il s'avère que ce qui est à l'origine de la controverse, il y avait plusieurs, plusieurs autres choses, mais quel était le principal problème des critiques... |
| |
J'ai peut-être fait une analyse d'arbre améliorée. Et c'est un modèle assez simple. Il n'y a que... nous n'avons peut-être qu'une poignée de prédicteurs, dont chacun est important, mais l'un de leurs principaux objectifs était de déterminer lesquels étaient les plus importants. |
| |
Il a exécuté un modèle d'arbre amélioré avec un seul ensemble de validation d'exclusion et a publié une validation d'environ 0,7. Tout avait l'air bien, |
| |
mais ensuite les critiques sont arrivées, ils ont réanalysé les données avec un ensemble d'attente différent et ils ont obtenu une validation du carré R |
| |
de moins de 0,1. Donc un changement assez énorme. Ils sont passés de 0,7 à moins de 0,1 et ceci a été utilisé, les critiques se sont vraiment jetées sur tout cela et ont essayé de vraiment discréditer ce qui se passait. |
| |
Maintenant, Jaivime, à ce stade, Jaivime, cela s'est produit l'année dernière et le document a été retiré plus tôt ici en 2020... |
| |
Jaivime a partagé les données avec moi cet été et ma pensée était de faire une analyse de validation croisée un peu plus rigoureuse et de faire des Kfold répétés, |
| |
au lieu d'une seule résistance, afin d'essayer d'aller au fond de cet écart entre deux résistances différentes. Et ce que j'ai fait, nous avons une nouvelle routine |
| |
fourni avec le complément XGBoost qui crée des colonnes pliées en K. Et si vous voyez l'ensemble de données ici, je les ai créés. Par souci de temps, nous n’expliquerons pas comment procéder. Mais il y a |
| |
il existe maintenant un nouveau module fourni avec l'en-tête appelé make Kfold columns qui vous permettra de le faire. Et je l'ai fait de manière stratifiée. Et ce qui est intéressant, c'est qu'il appelle JMP DOE sous le capot. |
| |
Et l’avantage de procéder de cette façon est que vous pouvez réellement créer des plis orthogonaux, ce qui n’est pas très courant. Ici, permettez-moi de faire une distribution rapide. |
| |
C'était l'ensemble de résistances que Jaivime avait fait à l'origine et il a stratifié, ce qui est une bonne idée, je pense, car la réponse est un peu biaisée. Et puis c'est l'ensemble de résistance que le critique a utilisé, |
| |
et puis voici les plis que j'ai fini par utiliser. J'ai fait trois schémas différents. Et puis ce que je voulais souligner ici, c'est que ces plis sont plutôt orthogonaux, |
| |
où nous obtenons une sorte de gain d'informations maximal en faisant K fois trois fois avec en quelque sorte trois ensembles orthogonaux. |
| |
Donc, et puis il s'est avéré que, comme il utilisait déjà des arbres boostés, la prochaine chose à essayer est le complément XGBoost. Et donc j'étais vraiment heureux de découvrir cet ensemble de données et d'en parler ici. |
| |
Maintenant, que s'est-il passé... permettez-moi de faire une autre analyse ici où je fais un aller simple sur les ensembles de validation. Il s'avère que j'ai raté ce que je fais ici, ce sont les réponses, ce rendement en eau corrigé. |
| |
Et je trace cela par rapport aux ensembles de validation. il s'est avéré que Jaivime, dans son ensemble d'entraînement, |
| |
les quatre ou cinq premières mesures se sont toutes retrouvées dans son ensemble d'entraînement, ce qui, je pense, est en quelque sorte à l'origine du problème. |
| |
Alors que dans le set des critiques, ils l'ont fait... c'était équilibré, un peu plus, et en particulier le pire... que l'emplacement le plus performant était dans le set de validation. Et c'est donc une source naturelle d'erreur car cela va au-delà de tout ce qui concernait la formation. |
| |
Et je pense que c'est vraiment un cas où le pli K, une analyse de type pli K est plus convaincant que de simplement faire un seul ensemble d'exclusions. |
| |
Je dirais que ces deux ensembles de résistances uniques ont un certain biais et qu'il est préférable de faire plus de plis dans lesquels vous stratifiez... répartissez les choses |
| |
différemment à chaque fois, puis voyez ce qui se passe après plusieurs crises. Vous pouvez donc voir à quoi ressemblent les plis que j'ai créés ici en termes de distribution, puis exécutons maintenant XGBoost. |
| |
Donc, le complément a en fait beaucoup de fonctionnalités et je ne veux pas vous submerger aujourd'hui, mais encore une fois, je vous encourage à suivre et à mettre la vidéo en pause à certains endroits si vous essayez de suivre vous-même. |
| |
assurer. Mais ce que nous avons fait ici, je viens d'exécuter un script. Et au fait, tout dans le journal contient... Les tables JMP sont sympas, où vous pouvez enregistrer des scripts. Et donc ce que j'ai fait ici, c'est d'exécuter XGBoost à partir de ce script. |
| |
Permettez-moi juste à titre d'illustration, je vais réexécuter ceci directement à partir du menu. Ce sera la façon dont vous voudrez peut-être procéder. Ainsi, lorsque vous installez le complément, |
| |
vous cliquez sur la modélisation prédictive puis sur XGBoost. Nous l'avons donc ajouté ici même au menu de modélisation prédictive. Et donc la façon dont vous configureriez cela |
| |
est de préciser la réponse. Voici Y. Il y a sept prédicteurs, que nous mettrons ici sous forme de x, puis vous mettrez leurs colonnes de repli et leur validation. |
| |
Je voulais faire un point ici sur ceux d'entre vous qui sont des utilisateurs expérimentés de JMP Pro, XGBoost gère les colonnes de validation un peu différemment des autres plates-formes JMP. |
| |
C'est une sorte de cadre expérimental à ce stade, mais d'après mon expérience, je trouve que le pli K répété est une manière très convaincante de le faire et je voulais configurer le complément pour le rendre plus facile. |
| |
Et donc ici, je remets à nouveau ces colonnes de pliage que nous avons créées avec l'utilitaire, et XGBoost effectuera automatiquement un pliage K répété simplement en le spécifiant comme nous l'avons ici. |
| |
Si vous souhaitez effectuer une seule retenue comme les analyses originales, vous pouvez la configurer comme d'habitude, mais vous devez créer la colonne |
| |
continu. C'est un piège. Et je sais que certains de nos premiers utilisateurs ont été déconcertés par cela et c'est une convention différente des autres. |
| |
D'autres XGBoost ou d'autres routines de modélisation prédictive dans JMP Pro, mais cela m'a semblé être la façon la plus propre de le faire. Et encore une fois, la méthode recommandée serait d'exécuter |
| |
K-fold répété comme ceci, ou au moins un seul K-fold et vous pouvez alors simplement appuyer sur OK. Vous obtiendrez cette fenêtre de lancement initiale. |
| |
Et le problème avec XGBoost, c'est qu'il comporte de nombreux paramètres de réglage. Les principaux sont répertoriés ici dans cet encadré et vous pouvez jouer avec eux. |
| |
Et puis il s’avère qu’il y en a bien d’autres, et ils sont cachés sous ces options avancées, pour lesquelles nous n’avons pas du tout le temps aujourd’hui. |
| |
Mais nous avons essayé de... ce sont les problèmes les plus importants que vous aborderez généralement... dans la plupart des cas, vous pouvez simplement vous en préoccuper. Et alors quoi... lançons le... allons-y et réexécutons ceci, juste à partir de là, vous pouvez cliquer sur le bouton Go et ensuite XGBoost s'exécutera. |
| |
Maintenant, je travaille ici sur un simple ordinateur portable. Il s’agit d’un ensemble de données relativement petit. Et c'est vrai... nous avons juste répété, répété cinq fois |
| |
trois choses différentes, en quelques secondes seulement. XGBoost est plutôt bien réglé et fonctionnera bien pour des ensembles de données plus volumineux, mais pour ce petit exemple, voyons ce qui s'est passé. |
| |
Il s’avère maintenant que ce premier graphique qui apparaît soulève un signal d’alarme immédiat. |
| |
Ce que nous examinons ici, c'est le... sur le nombre d'itérations, les itérations d'ajustement, nous avons une courbe d'entraînement qui est essentiellement la fonction de perte que vous souhaitez réduire. |
| |
Mais alors la courbe pleine est la courbe de validation. Et vous pouvez voir ce qui s'est passé ici. Juste après quelques itérations, cette courbe a atteint son point bas, puis les choses ont empiré. |
| |
Il s’agit donc en fait d’un cas dans lequel vous ne voudriez pas utiliser ce modèle par défaut. XGBoost est déjà suréquipé, |
| |
ce qui se produit souvent pour des ensembles de données plus petits comme celui-ci et nécessite un réglage. |
| |
Il y a beaucoup d'autres résultats en bas, mais encore une fois, ils ne le feraient pas... Je ne les considérerais pas comme dignes de confiance. À ce stade, vous auriez besoin... vous voudriez faire un petit réglage. |
| |
Pour aujourd'hui, faisons juste un peu de réglage manuel, mais je vous encourage. Nous avons en fait implémenté un cadre complet pour créer une conception de réglage, |
| |
où vous pouvez spécifier une gamme de paramètres et effectuer une recherche dans l'espace de conception et nous utilisons à nouveau JMP DOE. |
| |
C'est donc un... nous avons déjà deux manières différentes d'utiliser DOE, qui ont toutes deux vraiment amélioré la fonctionnalité. Pour l'instant, faisons juste un petit réglage manuel basé sur ce graphique. |
| |
Vous pouvez voir si nous pouvons... zoomer sur ce graphique et nous voyons que la courbe atteint son point bas. Permettez-moi juste de jeter un coup d'œil juste après trois ou quatre itérations, donc une chose, une chose très simple que nous pouvons faire est littéralement, arrêtons-nous, c'est-à-dire arrêtons l'entraînement après quatre étapes. |
| |
Et voyez ce qui se passe. Au fait, remarquez ce qui s'est passé pour notre surapprentissage, notre R carré de validation était en fait négatif, donc assez mauvais. Certainement pas un modèle recommandé. Mais si nous exécutons, nous appliquons ce nouveau modèle dans lequel nous allons simplement suivre quatre... seulement quatre étapes, |
| |
regardez ce qui se passe. |
| |
Bien meilleure validation R carré. Nous sommes maintenant à environ 0,16 et en fait, essayons-en trois juste pour le plaisir. Voyez ce qui se passe. |
| |
Un peu pire. Vous pouvez donc voir que c’est le genre de chose sur laquelle vous pouvez jouer. Nous avons essayé d'établir ce dialogue là où cela est possible. |
| |
Et vous pouvez faire quelques comparaisons de modèles sur ce tableau ici au début pour vous aider. Vous pouvez trier par différentes colonnes et trouver le meilleur modèle, puis en bas, vous pouvez explorer divers détails de modélisation. |
| |
Restons-en au modèle 2 ici, et ce que nous pouvons faire, c'est... |
| |
Gardons seulement celui-là et vous pourrez nettoyer... vous pouvez nettoyer les modèles dont vous ne voulez pas, cela supprimera ceux cachés. |
| |
Et donc maintenant nous en sommes, revenons au modèle que nous voulons examiner plus en profondeur. Notez ici que notre carré R de validation est d'environ 0,17. |
| |
Donc, rappelez-vous, il s'agit en fait d'un écart entre ce que Jaivime a obtenu à l'origine et ce que le critique a obtenu. |
| |
Et je considérerais cela comme une mesure beaucoup plus fiable du R carré car, encore une fois, c'est calculé sur l'ensemble, nous avons en fait effectué 15 ajustements de modélisation différents, |
| |
quintuple trois fois différentes. Il s’agit donc d’une moyenne par rapport à ceux-là. Je pense donc qu’il s’agit d’une mesure beaucoup plus claire et plus fiable des performances du modèle. |
| |
Si vous faites défiler vers le bas pour trouver un modèle qui s'adapte, il y a pas mal de résultats à parcourir. Encore une fois... encore une fois, JMP est très doué... nous essayons toujours d'avoir des graphiques proches des statistiques que vous pouvez |
| |
les deux voient ce qui se passe et leur attachent des chiffres et ces graphiques sont en direct comme d'habitude, joliment interactifs. |
| |
Mais vous pouvez voir ici, nous avons une formation réelle par rapport aux prévisions et une validation. Et les choses empirent presque toujours pour la validation, mais c'est vraiment la réalité. |
| |
Et vous pouvez voir à nouveau où les erreurs sont commises, et c'est que c'est ce point vraiment élevé, cela arrive souvent... c'est la ligne des 45 degrés. |
| |
De sorte que ces mesures élevées ont tendance... et toutes les mesures élevées ont tendance à être sous-prévues, ce qui est assez normal. Je pense que pour tout type de méthode comme celle-ci, on aura tendance à vouloir rétrécir |
| |
baissez les valeurs extrêmes et soyez juste conservateur. Vous pouvez ainsi voir exactement où les erreurs sont commises et dans quelle mesure. |
| |
Maintenant, pour ce qui concernait l'intérêt principal de Jaivime, ils étaient... il était surtout intéressé à voir quelles variables étaient réellement déterminantes. |
| |
cet effet corrigé par l'eau. Et nous pouvons voir que celui qui ressort en quelque sorte comme numéro un est celui appelé PET. |
| |
Il existe différentes manières d'évaluer l'importance des variables dans XGBoost. Vous pouvez regarder le nombre direct de divisions, comme mesure de gain, ce qui, je pense, est |
| |
peut-être le meilleur pour commencer. C'est en quelque sorte à quel point le modèle s'améliore à chaque fois que vous vous divisez sur une certaine variable. Il y en a un autre appelé couverture. |
| |
Dans ce cas, pour l’un ou l’autre des trois, ce PET apparaît comme l’un des plus importants. Et donc, fondamentalement, cette analyse rapide semble être là où se déroule l'action pour ces données. |
| |
Désormais, avec JMP, nous pouvons faire bien plus. Et vous pouvez voir ici, sous le triangle rouge de modélisation, que nous avons embelli pas mal de nouvelles choses. Vous pouvez enregistrer des valeurs prédictives et des formules, |
| |
vous pouvez publier sur un dépôt de modèles ou un dépôt de formules et y faire plus de choses. |
| |
Nous avons même des routines pour générer du code Python, qui ne sert pas seulement à la notation, mais qui sert en fait à effectuer toute la formation et l'ajustement, ce qui est une nouveauté, mais aidera ceux d'entre vous qui souhaitent passer de JMP. Pro à Python. Mais ici, jetons un coup d'œil au profileur. |
| |
Et je dois présenter quelques brèves excuses à mon ami Brad Jones dans une vidéo précédente, j'avais oublié de reconnaître qu'il était l'inventeur du profileur. |
| |
Voilà donc, c'est en fait un cas et une sorte de crédit pour lui, où nous l'utilisons maintenant d'une autre manière, qui consiste à évaluer l'importance des variables et le fonctionnement de chaque variable. Donc pour moi, c'est vraiment convaincant |
| |
cadre où nous pouvons... nous pouvons examiner cela. Et Charlie... Charlie s'est levé du canapé quand j'ai mentionné ça. Il est juste ici à côté de moi maintenant. |
| |
Et donc, regardez ce qui se passe... nous pouvons voir que ce qui est intéressant c'est qu'avec cette variable PET, nous pouvons voir le moment clé, il semble que ce soit dès que PET |
| |
atteint juste au-dessus de 1 200 environ, c'est à ce moment-là que les choses décollent vraiment. C'est donc une très belle illustration du fonctionnement du profileur. |
| |
Et autant que je sache, c'est la première fois... c'est la première... c'est le seul logiciel qui propose |
| |
des tracés comme celui-ci, qui vont au-delà de ces mesures statistiques d'importance et vous montrent exactement ce qui se passe et vous aident à interpréter |
| |
le modèle d’arbre boosté. C'est donc vraiment une bonne façon, je pense, de faire l'analyse et je vous encourage à le faire... et je vous encourage à essayer cela avec vos propres données. |
| |
Passons maintenant à un autre exemple et revenons à notre journal. |
| |
Il y en a, comme vous pouvez le constater, il y en a beaucoup ici. Nous n’avons naturellement pas le temps de tout parcourir. |
| |
Mais nous l'avons fait juste pour gagner du temps, cependant, je voulais en quelque sorte vous montrer ce qui se passe lorsque nous avons une cible binaire. Ce que nous venons de voir était continu. |
| |
Pour cela, nous utiliserons l'ancien ensemble de données sur le diabète, qui existe depuis un certain temps et qui est disponible dans la bibliothèque d'échantillons JMP. Et cet ensemble de données est le même, mais nous l'avons agrémenté de nouveaux scripts. |
| |
Et donc si vous obtenez le journal et que vous le téléchargez, vous obtiendrez ce genre de version améliorée qui a |
| |
un certain nombre de XGBoost s'exécute avec différents à la fois avec une cible ordinale binaire et, comme vous vous en souvenez, ce que nous avons ici, nous avons des mesures basses et hautes qui sont dérivées de cette variable Y d'origine, |
| |
en train d'envisager une réponse au diabète. Et nous allons ici aller encore un peu plus loin. Imaginons que nous soyons dans une sorte de contexte médical où nous souhaitons réellement utiliser une matrice de profit. Et notre objectif est de prendre une décision. Nous allons prédire chaque personne, |
| |
qu'ils soient élevés ou faibles, mais en y réfléchissant, nous avons réalisé que si une personne est réellement élevée, les enjeux sont un peu plus élevés. |
| |
Et donc nous allons en quelque sorte doubler nos bénéfices ou nos pertes, selon que l’état réel est élevé ou non. Et bien sûr, |
| |
c'est une façon dont cela fonctionne est généralement correcte... les bonnes décisions sont ici et ici. |
| |
Et puis les incorrectes sont ici, et ce sont celles-là... vous voulez penser aux quatre cellules lorsque vous configurez une matrice comme celle-ci. |
| |
Et ici, je vais en faire un simple. Et cela double et je ne sais pas si vous pouvez y attacher une valeur monétaire réelle ou non. C'est en fait une bonne chose si vous êtes dans ce genre de scénario. |
| |
Qui sait, peut-être pouvons-nous considérer chacun d'eux comme un BitCoic, coûtant peut-être environ 10 000 $ chacun ou quelque chose comme ça. |
| |
Cela n'a pas trop d'importance. Il s'agit plutôt de savoir si nous voulons prendre une décision optimale en fonction de notre |
| |
nos prédictions. Nous allons donc prendre en compte cette matrice de profit lorsque nous ferons notre analyse maintenant. En fait, cela n'est fait qu'après l'ajustement du modèle. Il n'est pas directement utilisé dans le raccord lui-même. |
| |
Nous allons donc exécuter XGBoost maintenant ici, et nous avons une cible binaire. Si vous remarquez le |
| |
la fonction objectif est maintenant devenue une logistique de perte de log et c'est ce qui se reflète ici : il s'agit de la vraisemblance du log logistique. |
| |
Et vous pouvez voir... nous pouvons maintenant regarder avec une cible binaire, les mesures que nous utilisons pour l'évaluer sont un peu différentes. |
| |
Cependant, si vous le remarquez, nous avons des colonnes de bénéfices qui sont calculées à partir de la matrice de bénéfices que nous venons d'examiner. |
| |
Mais si vous êtes dans un scénario, peut-être dans lequel vous ne voulez pas vous soucier autant d'une matrice de profit, juste une sorte de régression binaire directe, vous pouvez examiner des mesures courantes telles que |
| |
juste l'exactitude, qui est l'inverse du taux d'erreur de classification, ces corrélations F1 ou Matthews sont bonnes à examiner, ainsi qu'une analyse ROC, qui vous aide à équilibrer spécificité et sensibilité. Donc tout cela est disponible. |
| |
Et vous pouvez, vous pouvez approfondir. Une toute nouvelle chose sur laquelle je voulais montrer et sur laquelle nous travaillons encore un peu, c'est que nous avons maintenant un moyen pour vous de jouer avec votre seuil de décision. |
| |
Et vous pouvez réellement le faire de manière interactive maintenant. Et nous avons un nouveau... un nouveau truc qui trace votre profit par seuil. |
| |
Il s'agit donc d'un tout nouveau graphique que nous commençons tout juste à introduire dans JMP Pro et vous devrez vous procurer le tout dernier adoptant précoce JMP 16 pour l'obtenir, mais il s'adapte à la matrice de décision... |
| |
ou la matrice de profit. Et puis une autre chose sur laquelle nous travaillons est que vous pouvez dériver directement un seuil optimal basé sur cette matrice. |
| |
Je crois que dans ce cas, c'est toujours 0,5. Et cela ajoute donc en quelque sorte un aperçu supplémentaire du genre de choses que vous voudrez peut-être faire si votre véritable objectif est de maximiser les profits. |
| |
Sinon, vous souhaiterez probablement équilibrer spécificité et sensibilité en fonction de votre contexte, mais vous disposez des matrices de confusion typiques, qui sont présentées ici, ainsi que ici, ainsi que quelques graphiques pour la formation et la validation. |
| |
Et puis les courbes ROC. |
| |
Vous obtenez également le même genre de choses que nous avons vu plus tôt en termes d’importance variable. Et allons-y et refaisons le profileur puisque c'est en fait une bonne chose... |
| |
c'est aussi sympa là-dedans, dans ce cas. Nous pouvons voir exactement ce qui se passe avec chaque variable. |
| |
Nous pouvons voir par exemple ici que le LTG et l'IMC sont les deux variables les plus importantes et il semble qu'elles ont toutes deux tendance à augmenter à mesure que la réponse augmente, nous pouvons donc voir cette relation directement. Et en fait, parfois avec les arbres, on peut avoir des non-linéarités, comme ici avec l'IMC. |
| |
Il n'est pas clair si c'est une chose réelle ici, nous pourrions vouloir faire plus, plus d'analyses ou examiner plus de modèles pour nous en assurer, peut-être qu'il se passe quelque chose de réel ici avec ce petit |
| |
bosse que nous voyons. Mais c’est le genre de choses que vous pouvez découvrir, vraiment amusantes et intéressantes à regarder. |
| |
Voilà donc pour jouer avec l’ensemble de données sur le diabète. Le journal a bien plus à offrir. Il y a deux autres exemples que je ne montrerai pas aujourd'hui par souci de temps, mais ils sont documentés en détail dans la documentation XGBoost. |
| |
Il s'agit simplement d'un document PDF qui contient de nombreux détails écrits sur le complément et vous guide étape par étape à travers ces deux exemples. Je vous encourage donc à les consulter. |
| |
Et puis, le journal contient également plusieurs comparaisons différentes qui ont été effectuées. |
| |
Vous avez vu cette matrice violette que nous avons examinée. Il s'agit d'une étude réalisée à l'Université de Pennsylvanie, |
| |
où ils comparent toute une série de méthodes d'apprentissage automatique les unes aux autres sur un ensemble d'ensembles de données différents, puis comparent combien de fois l'une surpasse l'autre. Et XGBoost |
| |
est sorti comme le modèle haut de gamme et cette comparaison n'a pas toujours été la meilleure, mais en moyenne, elle a eu tendance à surpasser toutes les autres que vous voyez ici. Donc, encore quelques preuves supplémentaires du |
| |
puissance et capacités de cette technique. Maintenant, il y a quelques autres choses ici dans lesquelles je n'entrerai pas. |
| |
Celui de Hill Valley est intéressant. C'est un cas où les arbres n'ont pas bien fonctionné du tout. C'est une situation un peu pathologique mais intéressante à étudier, juste pour aider à comprendre ce qui se passe. |
| |
Nous avons également effectué des tests assez approfondis en interne au sein de la R&D de JMP et bon nombre de ces résultats se trouvent ici sur plusieurs ensembles de données différents. |
| |
Et encore une fois, pour gagner du temps, je n'entrerai pas dans les détails, mais je vous encourage à les consulter. C'est le cas... tous nos résultats sont accompagnés du journal ici et vous pouvez jouer avec eux dans un certain nombre de domaines et de tailles de données différents. |
| |
Alors vérifiez-les. Je dirai juste pour m'amuser, notre conclusion en termes de vitesse est ici résumée dans ce petit mème. Nous avons deux voitures différentes. |
| |
En fait, cela crie vraiment et il est réglé pour utiliser tous les... tous les threads que vous avez dans votre GPU... dans votre CPU. |
| |
Et si vous êtes sous Windows, avec une carte NVIDIA, vous pouvez même exploiter votre GPU, qui offrira souvent une vitesse peut-être encore cinq fois supérieure. Donc beaucoup de plaisir là-bas. |
| |
Permettez-moi donc de conclure le didacticiel à ce stade. Et encore une fois, je vous encourage à y jeter un œil. Je voulais offrir beaucoup de remerciements. De nombreuses personnes ont été impliquées |
| |
et je crains qu'en fait, j'en ai probablement oublié certains ici, mais je voulais au moins reconnaître ces gens. Nous avons eu un excellent groupe d’adopteurs précoces. |
| |
Et ils ont fourni de très bons commentaires de Marie, Diedrich et ces gars de Villanova ont en fait déjà commencé à utiliser XGBoost en classe avec succès. |
| |
Donc, c’était vraiment génial d’entendre parler de ça. Et de nombreuses personnes au sein de JMP nous ont aidé. |
| |
Bien entendu, cela s’appuie sur l’ensemble de l’infrastructure JMP. Il faudra donc à un moment ou à un autre lister toute la division JMP avec de l'aide, ça a été tellement amusant de travailler dessus. |
| |
Et puis je tiens à remercier notre équipe des sciences de la vie qui m'a en quelque sorte gardé honnête sur diverses choses. Et ils nous ont aidé avec de nombreuses suggestions. |
| |
Et Luciano a en fait implémenté un complément XGBoost, un complément différent qui va avec JMP Genomics, donc je vous encourage à le vérifier également si vous utilisez JMP Genomics. Vous pouvez également appeler XGBoost directement dans le cadre de modélisation prédictive. |
| |
Merci beaucoup pour votre attention et j'espère que vous pourrez essayer XGBoost. |