| Conférencier |
Transcription |
| Mia Stephens |
Cela ne prendra probablement pas 45 minutes. |
| |
Très bien, tout va bien. |
| |
Mince alors, pourquoi ce message est-il apparu comme ça ? |
| Jason Wiggins, JMP |
Vous avez vu ? J'allais justement demander que j'avais commencé l'enregistrement, mais que quelqu'un allait intervenir et couper les débuts et les fins. |
| Mia Stephens |
Je dirais que vous êtes en train d'enregistrer. |
| Jason Wiggins, JMP |
Ouais. |
| |
Je peux m'arrêter si vous voulez. |
| |
un. |
| Jason Wiggins, JMP |
L'enregistrement a commencé. |
| Mia Stephens |
Bonjour, je m'appelle MIA Stevens et je suis chef de produit chez JMP. |
| |
Et aujourd'hui, nous allons parler d'une nouvelle fonctionnalité apparue pour la première fois dans la capture d'écran du modèle JMPed 16 ou JMP pro 16. |
| |
En fait, laissez-moi recommencer. |
| Jason Wiggins, JMP |
L'enregistrement a repris. |
| Mia Stephens |
Bonjour, je suis Mia Stephens. |
| |
Je suis chef de produit JMP. Aujourd'hui, nous allons parler de la sélection de modèles. La sélection de modèles est une nouvelle fonctionnalité de JMP Pro 16 qui permet d'ajuster plusieurs modèles simultanément, optimisant ainsi votre flux de travail de modélisation prédictive. |
| |
Nous allons donc commencer par parler un peu de ce que nous entendons par modélisation prédictive, par opposition à la modélisation plus classique ou à la modélisation explicative. |
| |
Nous verrons les types de modèles que vous pouvez créer dans JMP Pro et nous aborderons brièvement le flux de travail de modélisation prédictive. Enfin, nous verrons comment utiliser le filtrage des modèles pour optimiser ce flux de travail. |
| |
Nous verrons plusieurs indicateurs différents pour comparer les modèles concurrents et nous utiliserons deux exemples différents dans JMP Pro, et j'utiliserai JMP Pro 16.1. |
| |
Alors, tout d'abord, qu'entendons-nous par modélisation prédictive ? |
| |
La plupart d'entre nous avons suivi des cours de statistiques à l'université, dans un établissement d'enseignement supérieur ou par le biais de votre entreprise, et généralement, lorsque nous apprenons la modélisation statistique, il s'agit de modélisation explicative. |
| |
Ce que nous entendons par là, c'est que vous souhaitez étudier une variable Y, une réponse d'intérêt, en fonction de plusieurs variables X ou variables d'entrée. |
| |
Nous pourrions donc être intéressés par l'identification des variables importantes ; peut-être nous trouvons-nous dans une situation de résolution de problèmes où nous voulons essayer d'identifier les X les plus importants, les causes potentielles les plus importantes. |
| |
Ainsi, grâce à la modélisation explicative, nous pourrions identifier, par exemple, que X1, X3 et X6 sont des causes potentielles de variation de Y, ce qui pourrait vous amener à étudier plus en détail ces variables à l'aide d'une expérience conçue à cet effet. |
| |
Nous pourrions également être intéressés par la quantification de la nature de cette relation ; par exemple, nous pourrions vouloir comprendre comment Y, notre réponse, évolue en moyenne en fonction des X. |
| |
Une variation d'une unité de X est associée à une variation de cinq unités de Y. |
| |
Voilà donc ce à quoi nous pensons généralement lorsque nous parlons de modélisation, de modélisation statistique ou d'analyse de régression. |
| |
À l'inverse, la modélisation prédictive vise à prédire ou à classer avec précision les résultats futurs. |
| |
En modélisation classique, on s'intéresse généralement à la moyenne, à la moyenne globale. En modélisation prédictive, on cherche à savoir ce qui va se passer ensuite. Par exemple, ce client va-t-il se désabonner ? |
| |
Accepter l'offre de carte de crédit ? La machine va-t-elle tomber en panne ? Nous cherchons donc à prédire la suite des événements. L'exactitude de nos prédictions est donc primordiale. |
| |
En modélisation prédictive, on a tendance à ajuster et à comparer de nombreux modèles possibles, ce qui implique ou peut impliquer des techniques très avancées. |
| |
Certaines de ces techniques peuvent s'avérer difficiles à interpréter. Ainsi, les réseaux de neurones sont généralement considérés comme une sorte de boîte noire. |
| |
Avec ces modèles plus complexes, le surapprentissage peut poser problème, et par surapprentissage, j'entends que nous avons tendance à... à ajuster un modèle beaucoup plus complexe que nécessaire. |
| |
En modélisation prédictive, on a tendance à utiliser la validation de modèle. Cette validation permet de se prémunir contre le surapprentissage et le sous-apprentissage. Elle consiste à diviser les données, et une méthode courante consiste à mettre de côté une partie des données… |
| |
En fait, certaines de nos données servent à entraîner notre modèle, d'autres sont mises de côté, et il se peut qu'un troisième ensemble soit également mis de côté. Nous utilisons ces données pour ajuster nos modèles à l'aide des données d'entraînement. |
| |
Ensuite, nous observons les performances du modèle sur les données de validation. La troisième étape, souvent appelée ensemble de test, peut être utilisée. |
| |
En effet, la validation… les données de validation dans JMP servent souvent à contrôler la taille du modèle. Nous verrons cela en pratique dans quelques minutes. |
| |
Je ne vais pas entrer dans les détails concernant la validation, mais si ce sujet vous est relativement nouveau, vous trouverez à la fin de cette présentation quelques diapositives que j'ai empruntées à notre cours en ligne gratuit, STIPS, et qui illustrent pourquoi la validation est importante. |
| |
Dans JMP Pro, vous pouvez ajuster de nombreux types de modèles prédictifs différents. |
| |
Certaines de ces options sont disponibles via la fonction `fitmodel`. Ainsi, si votre réponse est continue, vous pouvez ajuster un modèle de régression linéaire. Si votre réponse est catégorielle, vous pouvez ajuster un modèle de régression. |
| |
un modèle de régression logistique. Il peut s'agir d'un modèle de régression ordinale, multinomiale ou binomiale. Vous pouvez ajuster des modèles linéaires généralisés ou des modèles de régression pénalisés comme Elastic Net, Lasso et la régression Ridge. |
| |
Il existe un menu de modélisation prédictive avec de nombreuses options, comme par exemple les réseaux de neurones. Et vous pouvez entraîner des réseaux de neurones dans JMP Pro avec |
| |
deux couches, avec plusieurs nœuds, plusieurs fonctions d'activation, avec boosting. Et généralement dans JMP, |
| |
Vous pouvez ajuster des modèles pour les réponses catégorielles ou continues en utilisant la même plateforme. Vous pouvez ajuster différents types d'arbres, notamment des arbres de classification si vous disposez d'un |
| |
Pour une réponse catégorielle, utilisez les arbres de régression si votre réponse est continue. Vous pouvez également ajuster des types d'arbres plus complexes, comme les forêts bootstrap et les arbres boostés. D'autres méthodes sont également disponibles. |
| |
Il existe plusieurs plateformes de modélisation prédictive pour les méthodes multivariées, comme l'analyse discriminante et la méthode des moindres carrés partiels. Cette liste n'est pas exhaustive ; je précise que la méthode des moindres carrés partiels est également disponible via la commande `fitmodel`. |
| |
La question est : pourquoi avons-nous besoin d'autant de modèles ? En modélisation explicative classique, nous apprenons généralement l'analyse de régression, mais il existe clairement beaucoup plus de types de modèles que nous pouvons ajuster. |
| |
En fait, aucun modèle n'est systématiquement le meilleur. Le modèle optimal dépend souvent de la structure des données. |
| |
Le nombre de variables dont vous disposez, qu'il s'agisse de variables X purement continues ou d'un mélange de variables continues et catégorielles, et si le comportement est non linéaire. |
| |
Ainsi, aucun modèle n'est systématiquement le meilleur pour prédire avec précision. C'est pourquoi nous testons généralement plusieurs modèles différents et choisissons celui ou la combinaison de modèles qui donne les meilleurs résultats. |
| |
Et nous envisageons la modélisation prédictive dans le contexte d'un flux de travail analytique plus large. |
| |
Bien sûr, nous essayons de résoudre un problème quelconque, un problème commercial ou un problème d'ingénierie. |
| |
Mais nous compilons des données, et il peut s'agir de données provenant de sources très diverses, et nous devons apparier ces données, nous devons les organiser. |
| |
Nous explorons et visualisons les données pour mieux comprendre celles dont nous disposons et identifier les données supplémentaires nécessaires. La modélisation prédictive, qui consiste à analyser les données et à construire des modèles, est pour moi la partie la plus intéressante. |
| |
Le flux de travail classique dans JMP consiste donc à ajuster un modèle avec validation. |
| |
Ensuite, vous enregistrez la formule de prédiction dans la table de données, ou vous la publiez dans le dépôt de formules, et nous verrons cela dans quelques instants. |
| |
Ensuite, vous ajustez un autre modèle. Par exemple, vous pouvez commencer par un modèle de régression, puis ajuster un modèle arborescent. Vous répétez ensuite ce processus pour obtenir différents types de modèles. |
| |
Ensuite, utilisez la comparaison de modèles pour évaluer les performances de chaque modèle sur les données de validation. N'oubliez pas que nous utilisons les données d'entraînement pour ajuster le modèle, mais que pour comparer les modèles et déterminer lequel prédit le plus précisément, nous utilisons les données de validation ou de test. |
| |
Et nous choisissons le meilleur modèle ou la meilleure combinaison de modèles. |
| |
Ensuite, nous déployons le modèle ; c'est donc un flux de travail assez classique. |
| |
Le filtrage des modèles simplifie ce processus. Vous pouvez ainsi intégrer tous les modèles souhaités au sein de la plateforme de filtrage. |
| |
Comparez ces modèles à l'aide de données de validation et sélectionnez le meilleur. Vous pouvez explorer les modèles, voire en créer de nouveaux à partir des données de sélection, puis déployer facilement le modèle optimal. |
| |
Pour examiner cela de plus près, nous allons utiliser quelques exemples, et le premier vous est peut-être familier. |
| |
Les données sur le diabète se trouvent dans le répertoire des données d'exemple. L'objectif des chercheurs est de pouvoir prédire le taux de progression de la maladie. |
| |
Un an après les mesures initiales, nous avons analysé les données relatives aux 10 variables initiales et aux 442 patients. Nous allons examiner deux types de réponses. La réponse Y est une mesure quantitative qui quantifie la progression de la maladie en un an. |
| |
Il existe également une réponse binaire, élevée/faible, donc élevée signifie un taux élevé de progression de la maladie et faible signifie un faible taux de progression. |
| |
L’objectif de cette modélisation est de prédire les patients les plus susceptibles de présenter un taux élevé de progression de la maladie afin que des mesures correctives puissent être prises. |
| |
En définitive, notre objectif est de construire un modèle permettant de classer les futurs patients en fonction de leurs variables démographiques et des informations de base dont nous disposons. Nous souhaitons donc pouvoir… |
| |
Il s'agit de prédire avec précision si leur maladie va progresser rapidement ou non, afin de pouvoir agir en conséquence. Voilà pour le scénario. |
| |
Et avant d'aborder JMP, je voudrais vous parler un peu de la façon dont nous déterminons quel modèle prédit le mieux. |
| |
Et j'ai mentionné que nous utilisons l'ensemble de validation ou de test pour cela, et qu'il existe plusieurs types de mesures différents que nous pouvons utiliser. |
| |
Pour les réponses continues, nous utilisons le RMSE, qui est l'erreur quadratique moyenne, ou le RASE, qui est une mesure connexe, l'erreur quadratique moyenne, et il s'agit de l'erreur de prédiction, et ici, plus la valeur est basse, mieux c'est. |
| |
On peut aussi utiliser l'AAE (erreur absolue moyenne), le MAD (écart absolu moyen) ou le MAE, et pour ces mesures également, plus la valeur est basse, mieux c'est. Ce sont donc des mesures d'erreur moyenne. |
| |
Ensuite, le coefficient R², et pour le R², qui est en réalité une mesure de la qualité de l'ajustement, plus il est élevé, mieux c'est. |
| |
Nous avons donc tendance à les utiliser pour des réponses continues ; il existe de nombreux autres types de mesures disponibles. |
| |
Pour les réponses catégorielles, nous nous intéressons souvent au taux de mauvaise classification, au taux d'erreur ou aux taux d'exactitude ; nous pourrions nous intéresser à la précision. |
| |
Il existe d'autres mesures, comme l'aire sous la courbe (que l'on observe sur une courbe ROC), la sensibilité et la spécificité, qui portent différents noms. |
| |
Nous avons également ajouté quelques autres mesures au processus de sélection des modèles, particulièrement utiles en présence de données déséquilibrées. Il s'agit du score F1 et du coefficient de corrélation de Matthews (MCC), une valeur qui prend… |
| |
ou une mesure qui prend des valeurs comprises entre moins un et plus un, et qui est efficace pour mesurer, lorsque vous avez des données catégorielles, la qualité de la classification des données dans les quatre catégories possibles : vrais positifs, vrais négatifs, faux positifs et faux négatifs. |
| |
Passons donc à JMP. |
| |
Et je vais simplement ouvrir les données. |
| |
Voici donc... et je vais agrandir un peu, voici à nouveau les données sur le diabète. |
| |
Et si vous voulez vous amuser avec ces données, il existe un blog qui les utilise, et vous pouvez également les trouver dans la section aide puis exemples de données. |
| |
Nous avons donc une variable de réponse Y, que je vais agrandir légèrement, qui représente notre mesure continue de la progression de la maladie. Nous avons également une variable binaire Y, avec des résultats faibles ou élevés, que nous allons examiner en détail. |
| |
Pour commencer, voyons si... si vous aviez JMP 15 ou si vous n'utilisez pas la sélection de modèles, comment ajusteriez-vous des modèles prédictifs pour prédire Y, la réponse continue, si vous aviez JMP Pro ? |
| |
Notez que nous avons plusieurs variables démographiques. |
| |
Il y en a donc 10, et il y a une colonne de validation, et cette colonne de validation divise nos données en données d'entraînement et données de validation. |
| |
Nous allons donc entraîner notre modèle à l'aide des données d'entraînement, puis nous verrons comment il fonctionne lorsque nous l'appliquerons aux données de validation. |
| |
Pour créer cette colonne, il y a l'utilitaire sous Analyser, Modélisation prédictive, Créer une colonne de validation, et cela nous permet de créer une colonne de validation. |
| |
Vous pourriez avoir des variables que vous souhaitez utiliser comme colonnes de stratification, afin, par exemple, de vous assurer que les données sont équilibrées entre les différentes variables. |
| |
Ensembles de validation. Je vais simplement cliquer sur OK. |
| |
Cela nous permet d'attribuer un certain pourcentage de nos données aux différents ensembles. |
| |
Et il y a quelques options supplémentaires utiles ici, comme la graine aléatoire, très pratique si vous enseignez et que vous voulez que tous vos élèves aient la même répartition. |
| |
Donc, cela était utilisé avant |
| |
Pour l'analyse, commençons par examiner la colonne Y, la variable réponse continue. Si je devais ajuster des modèles prédictifs, un point de départ naturel serait d'utiliser un modèle de régression ; dans JMP, cette fonction se trouve dans le menu « Ajuster un modèle ». |
| |
Ma réponse est OUI, et je vais commencer par ajuster un modèle à effets principaux uniquement. |
| |
Je vais saisir la méthode de validation dans ce champ. Par défaut, le profil utilisé est celui des moindres carrés ordinaires. Mais si vous connaissez JMP et JMP Pro, vous savez qu'il existe de nombreuses autres options de profil. |
| |
Lorsque je clique sur exécuter, |
| |
Un changement dans JMP 16 est que si nous regardons le graphique réel par rapport aux valeurs prédites ou n'importe quel autre graphique, remarquez qu'il y a des points... il y a des points ici avec un V, au lieu d'un point. |
| |
Cela indique que ces points ont effectivement été attribués à l'ensemble de validation, donc nous examinons essentiellement : |
| |
Vous savez, la capacité du modèle à prédire avec précision les données dans le bruit aléatoire environnant, et vous pouvez constater une certaine dispersion. |
| |
N'oubliez pas que nous entraînons notre modèle sur les données d'entraînement et que nous évaluons ses performances sur les données de validation. Vous trouverez donc des statistiques ci-dessous. Ainsi, à chaque validation, des statistiques supplémentaires s'afficheront pour les ensembles d'entraînement et de validation. |
| |
On constate ici la présence de deux mesures : le coefficient de détermination R² et le coefficient RASE. |
| |
En général, lorsqu'on ajuste un modèle à un ensemble de données, puis qu'on l'applique à de nouvelles données, ses performances seront légèrement inférieures. On constate donc que le coefficient de détermination (R²) est plus faible pour l'ensemble de validation et que l'erreur quadratique moyenne (RASE) est légèrement supérieure. |
| |
Une fois... la seule chose que nous voyons ici, sous le profileur de prédiction |
| |
Remarquez que le cholestérol total et le LDL s'étalent en quelque sorte aux extrémités. |
| |
Et tandis que je traîne |
| |
remarquez l'étendue de l'intervalle de confiance pour la moyenne, en observant la valeur du cholestérol. En le déplaçant vers la limite inférieure, |
| |
L'intervalle s'élargit considérablement, et c'est la même chose lorsque je le déplace vers la limite supérieure. En fait, tous ces intervalles pour chacun des prédicteurs s'élargissent énormément. |
| |
Et cela dépasse un peu le cadre de cette présentation, mais c'est parce que nous n'avons pas beaucoup de données, ou très peu, pour cette région. Si je… regardez… et je vais juste… |
| |
Prenons ces deux variables, le cholestérol total et le LDL, comme exemple... pour le cholestérol et le LDL. |
| |
On remarque une corrélation assez forte entre ces éléments. Je ne dispose d'aucune donnée dans cette région ni dans celle-ci. |
| |
Donc, si jamais vous ajustez un modèle prédictif ou tout autre type de modèle où vous voyez ces bandes se disperser de manière importante, |
| |
Cela indique que vos prévisions ne seront pas très précises dans cette région. Et il y a une nouvelle fonctionnalité dans JMP Pro. |
| |
appelé contrôle d'extrapolation, qui peut vous avertir en cas de problème. Donc si je prolonge cela, |
| |
Remarquez qu'il m'indique qu'une extrapolation est possible ; vos prédictions pourraient poser problème. Et si j'active le contrôle de l'extrapolation, |
| |
Remarquez que ces intervalles sont tronqués, ce qui revient à dire qu'on ne peut pas faire de prédictions au-delà de ces limites. Ce n'est tout simplement pas valable. |
| |
Cela dépasse un peu le cadre de cet article, mais si jamais vous voyez des bandes qui s'étendent de manière étalée dans votre profileur de prédiction, |
| |
Cela est souvent dû à la corrélation entre vos variables prédictives, et… il se peut aussi que vous ne disposiez pas de suffisamment de données pour effectuer des prédictions dans ces régions. Il est donc important d'en être conscient. |
| |
Bon, revenons à nos moutons. Voyons voir, j'ai ajusté ce modèle, je l'ai réduit et je suis convaincu que c'est mon modèle final. |
| |
Je vais enregistrer ce modèle dans ma table de données en sauvegardant la formule de prédiction. Vous constaterez qu'une nouvelle colonne est ajoutée à la table. J'ai créé un modèle linéaire, donc la formule a été enregistrée dans la table de données. |
| |
Une autre solution consiste à publier ceci, et je vais le publier sur le dépôt de formules. |
| |
Donc, en définitive, ce que je vais faire, c'est ajuster plusieurs types de modèles différents (et je vais clore cette discussion) et comparer ces modèles afin de pouvoir les utiliser... |
| |
Je peux le faire soit en enregistrant la formule et en allant dans Analyser, Modélisation prédictive, Comparaison de modèles, et je le ferai dans un instant, soit en l'enregistrant dans le dépôt de formules. |
| |
L'avantage de l'enregistrer dans le dépôt de formules est que je dispose désormais du code de scoring. Par exemple, si c'était mon modèle final que je souhaitais appliquer à de nouvelles données, |
| |
Je pourrais copier ce script et l'appliquer pour analyser de nouvelles données. |
| |
(et je ne le ferai pas ici), ou je peux créer du code dans différents langages, si je veux pouvoir utiliser ce modèle dans un environnement de production. |
| |
Il s'agissait donc d'un modèle linéaire simple. Que se passe-t-il si je veux ajuster un autre type de modèle ? |
| |
Je pourrais insérer un modèle plus complexe ici dans le modèle d'ajustement. |
| |
Je peux donc ajuster un modèle de régression généralisée et peut-être aussi un modèle Lasso ; je vais donc cliquer ici. |
| |
Et il y a une comparaison de modèles ici même, au sein de la régression généralisée, mais supposons que je veuille sauvegarder ce modèle, d'accord ? |
| |
Je ne m'attarde pas trop sur les détails, mais je vais quand même sauvegarder ça. Je vais sauvegarder la formule de prédiction. Peut-être que je la publierai aussi. |
| |
Allez ici, publiez ceci. |
| |
Et je pourrais répéter cela : je pourrais ajuster un modèle incluant des interactions. Je pourrais ensuite procéder à l’ajustement d’un modèle de réseau neuronal ou d’un modèle de partition, d’un modèle arborescent et, si j’ai une réponse catégorielle, celui-ci s’ajustera. |
| |
Un arbre de classification. Si la réponse est continue, on utilisera un arbre de régression. Je pourrais aussi utiliser une forêt bootstrap, qui est un ensemble d'arbres plus petits, ou un arbre boosté. Il existe donc plusieurs types de modèles possibles. |
| |
Une fois mes modèles obtenus et les formules enregistrées ou publiées dans le dépôt de formules, je souhaite déterminer quel modèle prédit le plus précisément. |
| |
Je vais donc utiliser une comparaison de modèles. |
| |
Et je vais simplement ajouter une validation comme variable de validation. |
| |
car je souhaite pouvoir observer les performances du modèle sur les données de validation. En utilisant uniquement ces deux modèles et en analysant les données de validation (je mettrai de côté les données d'entraînement), |
| |
Je constate que j'ai une erreur moyenne plus faible pour le modèle des moindres carrés et que mon RASE est légèrement plus élevé pour ce même modèle. |
| |
Et mon coefficient R² est légèrement meilleur pour le Lasso généralisé. |
| |
Voici donc la méthode classique pour réaliser une modélisation prédictive avec JMP 15 Pro ou JMP Pro 15, ou sans sélection de modèles. La sélection de modèles permet justement de réaliser toutes ces opérations en une seule étape. Je vais donc passer à la modélisation prédictive et lancer la sélection de modèles. |
| |
Et la sélection des modèles, si vous regardez en bas à droite, nous permet de lancer chacune des plateformes qui convient au type de données dont nous disposons. |
| |
et exécuter automatiquement ces modèles. On n'a donc pas besoin de sélectionner le modèle dans le menu, on peut l'exécuter automatiquement ici. Je vais donc utiliser le même type de modèle, à savoir un modèle d'effets principaux uniquement. |
| |
Voici mes X. Je vais utiliser la même validation. |
| |
Il y a plusieurs options ici, dont nous parlerons dans un instant. Je vais cliquer sur OK. Vous remarquerez que j'ai un arbre de décision, une forêt bootstrap, un arbre boosté et la méthode des k plus proches voisins. |
| |
Par défaut, Naive Bayes est désactivé, je peux donc ajuster un modèle neuronal. |
| |
Il y en a d'autres en bas. Remarquez que j'ai installé XGBoost ; XGBoost est donc disponible car j'ai installé l'extension XGBoost. |
| |
Il s'agit d'un module complémentaire gratuit qui accède à des bibliothèques open source. Si vous l'avez installé dans JMP Pro, vous pouvez le lancer depuis la plateforme de sélection des modèles. Je vais donc le désactiver et cliquer sur OK. |
| |
Le programme exécute donc les modèles, et voilà. Il a même sauté une étape. Il a exécuté chacun de ces modèles automatiquement. |
| |
Et, et il y a des simulations que l'on utilise pour déterminer les meilleures valeurs initiales pour les paramètres de réglage, donc nous ajustons tous ces modèles. |
| |
Il fournit ensuite les statistiques d'entraînement et de validation pour chaque modèle. Il s'agit maintenant de déterminer lequel de ces modèles est le meilleur. |
| |
Sélectionnez « dominant ». Cette option crée une frontière entre les métriques disponibles ; j’ai donc cliqué sur « dominant » ici. |
| |
Et constate que pour ces données, le meilleur modèle est le modèle à renforcement neuronal, et les détails de ce modèle se trouvent ici, sous la section neuronale. |
| |
En fait, tous les détails concernent simplement le lancement de la plateforme et la collecte de toutes les informations, ici même, sur cette plateforme. |
| |
Voici donc tous les détails concernant le réseau neuronal : il s'agit essentiellement d'un réseau TanH à trois nœuds, boosté. Je peux consulter les statistiques d'entraînement et de validation, et si je souhaite voir le modèle réellement ajusté… |
| |
Voici le modèle sous-jacent. |
| |
Voilà, c'est donc mon modèle le plus performant. Si je veux examiner ces modèles de plus près, je peux les explorer à partir d'ici ; il y a plusieurs options, je peux par exemple consulter le graphique des valeurs réelles par rapport aux valeurs prédites. |
| |
Je peux comparer ces modèles et, comme prévu, la variation est légèrement moindre dans nos données d'entraînement que dans les données de validation, comme le montre le graphique des valeurs réelles par rapport aux valeurs prédites. Je peux désactiver certains modèles si je souhaite explorer cette question. |
| |
Je peux également lancer le profileur. Si vous utilisez la version 16.1, le profileur est disponible en option. Dans la version 16.0, cette option est cachée, et je précise que j'utilise la version Pro. Le profileur est pratique car il permet d'explorer les modèles que nous avons ajustés ; j'en ai donc sélectionné trois. |
| |
Et permettez-moi d'agrandir un peu ça. |
| |
Peut-être pas si grand. |
| |
J'ai donc une forêt bootstrap, qui est un modèle basé sur les arbres, où il s'agit essentiellement d'additionner les résultats d'un certain nombre d'arbres différents. |
| |
J'ai un modèle boosté, et les modèles neuronaux détectent très bien les comportements non linéaires. J'ai aussi le modèle Lasso, qui est essentiellement un modèle linéaire. |
| |
Et ces modèles sont assez bien visibles. Remarquez, avec le Lasso généralisé, la relation linéaire entre l'IMC et le Lasso généralisé (à droite). |
| |
et la réponse. Avec Neuro Boosted, je constate une certaine courbure. Je la vois aussi avec LTG, et avec Bootstrap Forest, je vois cette petite fonction en escalier, qui approxime donc bien cette relation non linéaire. |
| |
Donc, si nous décidons que le modèle à renforcement neuronal est le meilleur, |
| |
Nous pouvons alors lancer le modèle, le lancer à partir d'ici, et nous pouvons soit enregistrer les formules dans la table de données, soit les publier dans le dépôt de formules pour déploiement. |
| |
Cela nous fait donc gagner beaucoup de temps tout en nous permettant d'explorer nos modèles. |
| |
Et si nous avons une réponse catégorielle ? Rappelons que nous avons Y binaire. Nous pouvons utiliser Y binaire de la même manière. Je vais donc aller dans « Analyser », puis à nouveau « Sélection de modèles », et je vais simplement cliquer sur « Rappel » et remplacer Y par Y binaire. |
| |
Nous pouvons y exécuter les mêmes types de modèles. Si un certain type de modèle n'est pas pertinent, il ne sera pas exécuté. Par exemple, la régression par les moindres carrés n'est pas pertinente ici et ne sera donc pas exécutée. |
| |
Plusieurs options s'offrent à vous. Si je sélectionne « Définir une graine aléatoire », par exemple 1, 2, 3, 4, 5, cela me garantira une bonne répétabilité. Si je lance un modèle à partir des détails… |
| |
Ça donnera le même résultat. J'ai d'autres options de validation ici. |
| |
Il s'avère donc que, dans de nombreux cas, l'utilisation du partitionnement classique en ensembles d'entraînement, de validation et de test donne de bons résultats. |
| |
Ce n'est pas vraiment la meilleure solution, surtout avec de petits ensembles de données. Je pourrais donc préférer la validation croisée à K plis, et nous avons également la validation croisée imbriquée. |
| |
Et vous pouvez effectuer une validation croisée à K plis répétée. C'est donc une option intéressante, surtout si votre ensemble de données est petit. |
| |
Des options supplémentaires sont disponibles en bas de page. Vous pouvez par exemple ajouter des interactions à deux facteurs ou des fonctions quadratiques. |
| |
Si vous savez que des valeurs sont manquantes, vous pouvez utiliser des valeurs manquantes informatives. Des méthodes supplémentaires s'appliquent aux méthodes de régression généralisée additionnelles. Si vous participez au programme d'accès anticipé à JMP 17, vous remarquerez que cette partie du menu de dialogue est différente. |
| |
Ou alors, la boîte de dialogue de lancement du modèle a été légèrement réorganisée pour une meilleure fluidité. Bon, je vais donc utiliser les paramètres par défaut avec une graine aléatoire et cliquer sur OK. |
| |
Donc, il exécute tous ces modèles. Encore une fois, c'est très, très rapide. Et maintenant, comme j'ai une réponse binaire, j'ai des métriques supplémentaires. J'en ai deux. |
| |
Le coefficient de détermination (R²) mesure le taux de mauvais classement, soit l'aire sous la courbe. N'oubliez pas que cela est lié à l'erreur quadratique moyenne. Je clique à nouveau sur « Sélectionner dominant » et le système a encore trouvé « Neurural Boosted », ce qui n'est pas toujours le cas. |
| |
Si je sélectionne ce que je considère comme les meilleurs modèles, les options sous le triangle rouge, vous pouvez consulter leurs courbes ROC et, là encore, des cases à cocher me permettent d'activer ou de désactiver certains modèles. |
| |
Sélectionnez cette option. Et l'une de mes nouvelles fonctionnalités préférées, également disponible sur la plateforme de comparaison de modèles et ajoutée à JMP 17 à toute plateforme de modélisation effectuant des modélisations de classification, est ce qu'on appelle un seuil de décision. |
| |
Je pense que c'est l'une des... l'une des... l'une des choses les plus puissantes que nous ayons ajoutées à JMP 16. |
| |
Avec ces trois modèles sélectionnés, j'ai obtenu un résumé des classifications pour ces trois modèles. |
| |
Et je vais agrandir un peu ça, pour qu'on puisse mieux voir. |
| |
Donc, si l'on considère uniquement le renforcement neuronal, on constate qu'il existe deux catégories pour ce renforcement, et nous prédisons la probabilité d'une valeur élevée. Il s'agit donc des probabilités ajustées pour une valeur élevée. |
| |
Le seuil est de 0,5 ; tout ce qui est inférieur à 0,5 est considéré comme faible, et tout ce qui est supérieur à 0,5 est considéré comme élevé. |
| |
Donc, si l'on regarde ce bloc rouge ici, il représente tous les points classés comme faibles alors qu'ils étaient en réalité élevés, et nous pouvons voir ce nombre ici. Il y en a eu 29, ce sont donc des faux négatifs. |
| |
Dans la case rouge inférieure, ces éléments ont été classés comme étant de niveau élevé, |
| |
Mais il s'agissait en réalité de valeurs basses. Ce sont donc des faux positifs, ces personnes-là. |
| |
En bas, on trouve des indicateurs et des graphiques qui nous aident à interpréter ces données et à prendre des décisions. On y trouve également des indicateurs permettant de visualiser les mêmes valeurs : 29 faux négatifs et 17 faux positifs. |
| |
On peut ainsi observer les points positifs et les points négatifs. Ce que j'apprécie particulièrement, c'est que cela me permet d'explorer différents seuils. |
| |
Ainsi, selon vos objectifs de modélisation, par exemple, nous pourrions souhaiter un taux de sensibilité élevé, mais nous ne voulons surtout pas un taux de spécificité faible. |
| |
Le taux de sensibilité, et cette légende est très utile, correspond au taux de vrais positifs ; la spécificité correspond au taux de vrais négatifs. |
| |
Vous savez, peut-on trouver un seuil qui soit un peu plus performant sur les deux points ? En cliquant et en faisant glisser, vous pouvez modifier le seuil de classification. |
| |
et essayez de trouver un seuil plus performant. Par exemple, à 0,26 (et je vais arrondir le résultat), avec un seuil de 0,25, la sensibilité est plus élevée tout en conservant une spécificité élevée. |
| |
Les graphiques que j'ai mis de côté sont également très utiles pour interpréter ces chiffres ; ils nous donnent donc une vue d'ensemble des erreurs de classification. |
| |
Par seuil, par proportion, puis par classification réelle. Ainsi, si je cherche un point d'équilibre entre spécificité et sensibilité, je peux me référer à ce graphique. |
| |
Ces lignes supérieures représentent la sensibilité, les lignes pointillées la spécificité, et existe-t-il un seuil de sensibilité à partir duquel… |
| |
La sensibilité, tout en conservant une spécificité élevée ? Et nous pouvons… nous pouvons équilibrer ces deux éléments. Si je regarde ici, je vois que c’est le point d’intersection de ces deux courbes. |
| |
Et cela devient vraiment important si nous avons des données déséquilibrées. Prenons donc un autre exemple. Je vais donc conclure ici. |
| |
Je ne vais pas enregistrer ceci. Je vais fermer le dépôt de formules. Au fait, le dépôt de formules est autonome ; il n'est donc pas lié à l'ensemble de données que nous utilisions. Cela permet de prendre un modèle et de l'appliquer facilement à de nouvelles données. Je vais donc fermer cette fenêtre. |
| |
Voici donc le scénario pour ce prochain ensemble de données, les données appelées marketing des cartes de crédit : |
| |
Nous menons actuellement une étude de marché sur l'acceptation des offres de cartes de crédit. La réponse est positive : l'offre est acceptée. Il convient toutefois de préciser que seulement 5,5 % des offres… |
| |
Les données historiques ont été acceptées. Il s'agit en fait d'une expérience conçue pour tester différentes récompenses et différents types d'envoi de courriels. |
| |
Les informations financières diffèrent, mais l'expérience conçue porte sur le type de récompense et d'envoi postal. Nous allons nous concentrer sur cet objectif de modélisation précis. Nous souhaitons identifier les clients les plus susceptibles d'accepter l'offre de carte de crédit. |
| |
Et en faisant cela, nous allons essayer de |
| |
Nous appliquerons le modèle aux nouveaux clients et, en fonction de leur classification, nous déciderons de leur envoyer ou non l'offre. |
| |
Si les clients sont peu susceptibles d'accepter l'offre, nous ne la leur enverrons pas. En revanche, s'ils sont très susceptibles de l'accepter, nous la leur enverrons. |
| |
Voilà donc la situation. Pour en revenir à JMP, l'offre a été acceptée. Je vais donc exécuter un script enregistré pendant que je vous présente les données. |
| |
Nous avons 10 000 observations, donc cela va prendre un peu plus de temps. Les modèles sont en cours d'exécution et j'utilise les paramètres par défaut. Mon offre est donc acceptée. |
| |
La récompense peut être un mile aérien, un remboursement ou des points. Le type de courrier est une lettre ou une carte postale. Le reste concerne les opérations bancaires : historique bancaire et données démographiques. |
| |
Vous voyez qu'il utilise des machines à vecteurs de support. Ces machines peuvent être un peu lentes, surtout avec de grands ensembles de données, et en fait, elles ne s'exécutent pas par défaut si nous avons plus de 10 000 observations. |
| |
On constate un équilibre moyen. Les données sont réparties entre l'entraînement et la validation, et JMP reconnaît automatiquement les zéros comme données d'entraînement et les uns comme données de validation. Voilà, tous les modèles ont été exécutés. |
| |
Et si je sélectionne dominant, nous pouvons voir qu'il a sélectionné l'ajustement par étapes et l'arbre de décision. |
| |
Mais je tiens à souligner ce taux d'erreur de classification. |
| |
Voilà donc… voilà quelque chose que l’on rencontre très souvent lorsqu’on cherche une aiguille dans une botte de foin. Si j’analyse ces données et que j’en effectue une distribution… |
| |
Je vais agrandir un peu l'image pour qu'on puisse mieux la voir. Je regarde les données de validation, remarquez… |
| |
6,25, 6,2, 6,3% |
| |
La plupart des valeurs étaient « oui », ils ont répondu à l'offre, et c'est exactement ce que nous constatons ici concernant le taux d'erreur de classification. |
| |
Et pour mieux comprendre cela, je vais activer le seuil de décision. |
| |
Et agrandissez un peu ceci. |
| |
Remarquez que le nombre de « oui » prédits est toujours nul, et cela s'explique par le fait que les probabilités prédites étaient toutes relativement faibles. |
| |
N'oubliez pas que dans une matrice de confusion classique, le seuil est de 0,5, et si vos données sont déséquilibrées, il est très peu probable que vous classiez un grand nombre d'observations comme « oui » dans ce cas. |
| |
Lorsque je clique et que je fais glisser, |
| |
J'arrive à cette première série de points, et là je commence à voir des prédictions positives. En fait, j'active les indicateurs. |
| |
Lorsque les données sont très déséquilibrées, les probabilités prédites peuvent être très faibles. |
| |
Ce curseur vous permet donc d'explorer les seuils. |
| |
Cela peut avoir un impact sur votre sensibilité et votre spécificité. Dans un cas comme celui-ci, on pourrait dire quelque chose comme : « Si nous devions envoyer… » |
| |
Je vais juste ajouter 0,05 ici… Si nous envoyions une offre de carte de crédit aux personnes présentant les probabilités prédites, les 5 % les plus susceptibles d'accepter, exactement, notre sensibilité |
| |
L'écart entre les deux modèles est d'environ 0,72 et 0,75, et notre spécificité reste assez élevée. Ce seuil, ce curseur, vous permet donc d'obtenir des informations plus pertinentes de votre modèle. |
| |
Donc, si... à 0,5, je constate que j'obtiens de bons résultats. J'obtiens aussi beaucoup de faux positifs, n'est-ce pas ? Il y a donc un compromis à faire. |
| |
Dans un cas comme celui-ci, vous pourriez également subir des conséquences financières. C'est exact. Il est donc judicieux d'y réfléchir... |
| |
Matrice de profit. Et il y a un bouton. |
| |
Je clique ici. |
| |
La matrice de profit est une propriété de colonne pour une colonne particulière, et nous pouvons définir |
| |
Cette valeur, ce seuil de probabilité, peut être une propriété de colonne, ou bien nous pouvons y insérer des valeurs. Dans un scénario classique, cela pourrait coûter 5 $. |
| |
si nous choisissons d'envoyer une offre à quelqu'un. |
| |
Et s'ils répondent à l'offre, |
| |
Peut-être que ça vaut 100 $. Donc si on décide d'envoyer une offre à quelqu'un et qu'il ne répond pas, on perd 5 $. |
| |
Si nous décidons d'envoyer une offre à quelqu'un et qu'il y répond, nous gagnons peut-être en moyenne 100 $. Et il se peut qu'il y ait une opportunité manquée, peut-être disons-nous que nous perdons 100 $. |
| |
s'ils ne répondent pas. Et souvent, le coût de cela est simplement laissé vide, nous nous contentons d'entrer des valeurs pour les « oui ». Si j'applique cela et que je clique sur OK, |
| |
Ensuite, de nouvelles valeurs sont ajoutées, n'est-ce pas ? Donc, nous avons maintenant une matrice de profit et si je regarde nos indicateurs, nous pouvons voir les profits prévus. |
| |
En moyenne, pour chaque client de cet ensemble de données, cela signifie qu'il gagnera 1,50 $ si nous appliquons le modèle d'arbre de décision et un peu moins si nous appliquons le modèle par étapes. |
| |
Ainsi, dans une situation comme celle-ci, avec des données déséquilibrées et des coûts sous-jacents, il est judicieux d'utiliser la matrice des profits. En l'absence de coûts sous-jacents, |
| |
Ce curseur nous permet ensuite de choisir un seuil qui nous permettra d'atteindre notre objectif de modélisation. Il peut s'agir de maximiser la sensibilité, la spécificité, ou autre chose. |
| |
Donc, en gros, il s'agit d'une sélection de mannequins. |
| |
Je vais fermer ceci et retourner à la présentation. |
| |
Nous avons donc brièvement parlé de modélisation prédictive et de ce que nous entendons par modélisation prédictive. |
| |
Et nous avons constaté qu'il est facile d'ajuster et de comparer de nombreux modèles grâce à la validation, et la sélection des modèles vise précisément à rationaliser ce flux de travail. |
| |
Vous pouvez toujours aller essayer des modèles individuellement, si vous le souhaitez, mais la sélection de modèles vous permet d'essayer tous les modèles en même temps sur une seule plateforme, puis de les comparer. |
| |
Pour plus d'informations, de nombreux types de métriques sont disponibles, notamment pour les données de classification. Il existe un outil très intéressant à ce sujet. |
| |
J'ai trouvé la page Wikipédia sur la sensibilité, la spécificité et toutes les autres métriques très utile pour approfondir mes connaissances et comprendre comment interpréter les indicateurs fournis. |
| |
Il existe de nombreuses ressources sur la modélisation prédictive en général, et notamment sur la sélection de modèles dans JMP Pro. |
| |
Au sein de notre communauté d'utilisateurs, je ferai à nouveau référence à STIPS. STIPS est notre formation en pensée statistique appliquée à la résolution de problèmes industriels. |
| |
Le septième module est une introduction à la modélisation prédictive ; si vous débutez dans ce domaine, je vous recommande de le consulter. Il y a aussi un blog qui utilise les données sur le diabète publiées sur notre Communauté. Enfin, vous découvrirez toutes les nouvelles fonctionnalités. |
| |
Nous procéderons à des améliorations itératives. Le filtrage des modèles a été introduit dans JMP Pro 16. Nous travaillons déjà sur JMP Pro 17 et de nombreuses améliorations sont en cours d'élaboration. |
| |
Si vous souhaitez découvrir les nouveautés, cela vous donne l'occasion de donner votre avis. |
| |
N'hésitez pas à nous contacter pour rejoindre le programme d'accès anticipé ; nous nous chargerons de tout. Merci pour votre temps et nous espérons que vous apprécierez la suite de la conférence. |