| Conférencier |
Transcription |
| Clay Barker |
Merci, je m'appelle Clay Barker. Je suis développeur statistique au sein de l'équipe JMP et aujourd'hui, je vais vous parler d'une nouvelle fonctionnalité de JMP Pro 16 : la sélection de termes. J'ai travaillé dessus avec mes collègues Paris Faison et Ernest Pasour. |
| |
Les données textuelles sont donc de plus en plus courantes dans la pratique. Nous pouvons avoir des avis clients sur un produit que nous fabriquons, des descriptions d'événements ou des rapports de maintenance pour certains de nos équipements. |
| |
Et dans cet exemple, ici sur mes diapositives, cela provient de |
| |
Incidents d'aéronefs...ensemble de données sur les incidents que nous avons dans nos données d'échantillon. |
| |
Et chaque ligne de données décrit un incident aérien, un crash ou un autre type de dysfonctionnement. |
| |
Si vous n'avez jamais utilisé la plateforme Text Explorer, sachez qu'elle a été introduite dans JMP 13 et que nous l'utilisons principalement pour résumer et analyser des données textuelles. |
| |
Ainsi, il est facile d'effectuer des tâches courantes comme l'identification des mots et expressions les plus fréquents, ainsi que des opérations telles que le regroupement des documents ou la recherche de thèmes, comme l'analyse thématique. Tout repose sur ce que l'on appelle la matrice document-terme. |
| |
Qu'est-ce qu'une matrice document-terme ? Le plus simple est de la considérer comme une matrice de variables indicatrices indiquant si chaque document contient ou non un mot ou une expression particulière. |
| |
On peut pondérer cela en fonction de la fréquence d'apparition du mot dans chaque document. Ainsi, chaque document correspond à une ligne de notre matrice document-terme et chaque colonne à un mot. |
| |
Prenons un exemple très simple : la première phrase est « l’emballage de la pizza était frustrant ». Nous avons donc 1 pour l’emballage, |
| |
On attribue la valeur 1 à « pizza », 1 à « frustrant » et 0 à tous les autres mots. De même, sur la deuxième ligne, on trouve 1 pour « odeur », « excellent », « goût » et « pizza », et 0 ailleurs. Il s'agit simplement d'un résumé des mots présents dans chaque document. |
| |
J'ai également mentionné qu'il existe plusieurs variantes de la matrice document-terme. La plus simple est la matrice binaire ; elle ne comporte que des 1 et des 0. |
| |
Mais nous pourrions vouloir inclure des informations sur la fréquence d'apparition de chaque mot, voici donc une autre phrase légèrement plus longue où le mot « pizza » apparaît plusieurs fois. |
| |
Dans la matrice binaire document-terme, la colonne « pizza » conserve la valeur 1 car la fréquence d'apparition du mot est indifférente. Pour une matrice ternaire, elle vaut 2, car elle utilise les valeurs 0, 1 et 2. Elle vaut 0 si le mot n'apparaît pas, 1 s'il apparaît une fois et 2 s'il apparaît plusieurs fois. |
| |
Même si le mot apparaît quatre fois, nous l'avons codé comme un 2. La fréquence est ensuite très simple : il s'agit simplement du nombre de fois où chaque mot apparaît dans le document. |
| |
Voilà donc trois méthodes très simples. Nous proposons également la pondération TF-IDF, qui s'apparente à une fréquence relative. Vous trouverez plus d'informations sur ces schémas de pondération dans [lien/document/référence]. |
| |
Plateforme Text Explorer. |
| |
Quelle est donc la prochaine étape ? Quelle est la prochaine chose que vous pourriez vouloir utiliser ? |
| |
Vous pourriez utiliser ce texte pour faciliter l'obtention d'un résultat. J'ai donc créé des avis sur des meubles, chacun associé à une note en étoiles. |
| |
On pourrait donc penser que ces avis nous donnent des indications sur les raisons pour lesquelles un utilisateur attribue une note plus ou moins élevée à un produit. Ainsi, dès la première ligne, l'utilisateur indique : « Les instructions étaient frustrantes », et nous a attribué la note de 3. Si ce schéma se répète fréquemment et que de nombreuses personnes laissent des avis… |
| |
Beaucoup de notes basses sont liées aux instructions, ce qui pourrait indiquer que nous devons améliorer les instructions fournies avec nos meubles. |
| |
L'idée est donc simple : utiliser ces données comme modèle de régression. Nous allons… nous allons prendre notre matrice document-terme… |
| |
Nous allons combiner ces données avec nos informations de réponse, et nous allons simplement effectuer une régression. |
| |
Et cela nous aidera à comprendre pourquoi les clients aiment ou n'aiment pas nos meubles, ou tout autre produit que nous fabriquons. |
| |
Cela peut nous aider à classer les objets, en fonction de leurs descriptions – nous en verrons plus tard –, ou peut-être voulons-nous comprendre pourquoi certaines machines tombent en panne ou non, en nous basant sur leurs dossiers de maintenance. |
| |
Et la façon dont nous procédons est vraiment très simple. |
| |
En réalité, nous créons simplement un modèle de régression, où chacune de nos variables explicatives (X) correspond à une colonne de la matrice des termes. Ainsi, si nous modélisons les évaluations de produits, il s'agit d'une simple régression linéaire, et si nous… |
| |
si nous modélisons un résultat binaire, comme le fait qu'un client recommande ou non notre produit |
| |
Le texte pourrait contenir des centaines de mots, et il serait judicieux de ne pas tous les utiliser. Toutes les données ne seront pas utiles ; nous allons donc appliquer une technique de sélection de variables à notre modèle de régression afin d'obtenir un modèle plus simple, facile à interpréter et présentant un bon ajustement. |
| |
Et ici, en bas, il est facile de visualiser la combinaison de ces variables indicatrices avec notre évaluation de réponse, notre système d'étoiles. |
| |
La solution que nous allons intégrer à JMP 16 consiste à intégrer les modèles de régression à la plateforme Text Explorer. Si vous avez déjà utilisé la plateforme de régression généralisée pour la sélection de variables, sachez que nous l'intégrons directement à Text Explorer. |
| |
Si vous utilisez JMP Pro, vous verrez l'élément de sélection des termes dans le menu triangulaire rouge de l'Explorateur de texte. |
| |
C'est ce qui nous enthousiasme vraiment. Cela permet de créer et d'affiner facilement et rapidement ce type de modèles de régression. |
| |
Donc, lorsque vous lancerez cette plateforme, et nous passerons en revue quelques démos dans un instant, mais rapidement, |
| |
Dès le début du lancement, il s'agit simplement de recueillir des informations sur notre réponse et sur le type de modèle que nous souhaitions adapter. |
| |
Il peut donc gérer à la fois les réponses continues, comme une note par étoiles, et lorsque vous spécifiez une réponse continue, il fournit un filtre vous permettant de filtrer certaines lignes en fonction de la réponse. |
| |
Et lorsqu'une colonne de réponse nominale est présente, nous sélectionnons le niveau cible. Dans ce cas précis, recommanderiez-vous notre produit ? Oui ou non ? Nous allons modéliser… |
| |
nous allons modéliser la recommandation égale à non. |
| |
Et si nous avons une réponse à plusieurs niveaux comme bleu, vert, jaune, nous choisirons le niveau que nous voulons modéliser et nous verrons un exemple de cela dans une minute. |
| |
Ensuite, une fois que vous aurez spécifié la réponse, nous allons fournir à la plateforme des informations sur le type de modèle que nous souhaitons utiliser. |
| |
Pour la sélection des variables, allons-nous utiliser le Elastic Net ou le Lasso ? Ce sont deux techniques de sélection de variables intégrées à la régression généralisée. Et comment allons-nous procéder à la validation ? Préférons-nous utiliser l’AIC ou le BIC ? |
| |
De plus, nous pouvons préciser les détails de notre matrice document-terme. Nous pouvons choisir la pondération et le nombre maximal de termes à prendre en compte. Par exemple, si nous voulons considérer les 200 mots les plus fréquents, la valeur actuelle est de 200. |
| |
Alors, que se passe-t-il quand vous le lancez et que vous appuyez sur le bouton « Exécuter » ? En gros, il fait tout. |
| |
Il vous suffit de suivre ces instructions. Le programme configure correctement les données en arrière-plan, vous n'avez donc pas à vous en soucier. Il effectue une sélection des variables, ce qui nous permet de n'obtenir qu'un petit sous-ensemble de mots que nous jugeons utiles pour prédire notre réponse, et il présente les résultats de manière simple. |
| |
pour interpréter le rapport, et c'est assez interactif, comme nous le verrons dans un instant. Auparavant, vous pouviez le faire en |
| |
enregistrer la matrice document-terme dans votre ensemble de données, lancer vous-même une plateforme de régression généralisée, |
| |
Mais vous n'avez plus besoin de faire ça. Tout est question de sélection maintenant. |
| |
Donc, concernant les spécifications du modèle, comment savons-nous quoi sélectionner ? |
| |
Les méthodes d'estimation disponibles sont le filet élastique et le lasso. Voici un moyen simple de se souvenir de la différence entre ces deux méthodes : |
| |
Le fait que le filet élastique tende à sélectionner des groupes de prédicteurs corrélés est révélateur. Ainsi, dans ce contexte, lorsque nos prédicteurs sont tous des mots, |
| |
Cela signifie qu'il aura tendance à sélectionner des groupes de mots qui apparaissent fréquemment ensemble. Par exemple, si l'on pense aux mots « instruction » et « manuel », |
| |
Ces mots apparaissent fréquemment ensemble en raison des manuels d'utilisation. Par conséquent, ces deux prédicteurs seraient fortement corrélés et le modèle Elastic Net les sélectionnerait probablement tous les deux, tandis que le modèle Lasso sélectionnerait probablement « instruction » ou « manuel », mais pas nécessairement les deux. |
| |
En matière de méthodes de validation, nous disposons de l'AIC et du BIC. |
| |
En règle générale, le critère d'information d'Akaike (AIC) tend à sur-sélectionner les modèles, tandis que le critère d'information de Beck (BIC) tend à les sous-sélectionner. Dans nos spécifications, |
| |
Il se trouve que l'AIC aura tendance à sélectionner un ensemble de mots plus important, tandis que le BIC en sélectionnera un ensemble plus restreint. |
| |
Personnellement, j'ai tendance à beaucoup utiliser l'AIC dans la configuration car je préfère avoir plus de mots que nécessaire plutôt que moins, mais c'est vraiment une question de préférence. |
| |
Et la pondération des termes du document... |
| |
Je veux dire, la pondération de la matrice document-terme. |
| |
Cela dépend vraiment de votre problème. Donc, dans cet exemple, |
| |
Le mot « peinture » apparaît plusieurs fois dans la critique. Cela pourrait signifier que le critique était très… |
| |
La peinture était très importante pour ce critique et cela pourrait être significatif dans notre modèle de régression ; nous devrions donc utiliser une pondération comme la fréquence plutôt que binaire. |
| |
Donc, une fois la sélection des termes lancée, vous vous retrouverez dans un endroit comme celui-ci, où nous avons |
| |
Voici un résumé de tous les documents à gauche et de tous les mots sélectionnés à droite. Je vais passer cette étape pour le moment ; ce sera plus clair lors de la démonstration. |
| |
Autre point que nous jugeons très utile : le résumé. Vous pouvez ainsi utiliser la sélection de termes pour ajuster une séquence de modèles, puis les résultats sont tous résumés en haut de la page, ce qui vous permet de passer facilement de l’un à l’autre. Nous y reviendrons dans un instant. |
| |
Alors, jetons un coup d'œil à la plateforme. |
| |
Nous allons donc commencer par examiner ceci. |
| |
Ensemble de données sur les incidents d'aéronefs qui se trouve dans le dossier de données d'exemple de JMP. |
| |
Chaque ligne de notre tableau correspond à un incident. Nous connaissons l'étendue des dégâts subis par l'appareil, la nature des blessures et nous disposons d'une description détaillée. Cette dernière colonne décrit précisément le déroulement de l'incident. |
| |
Nous allons donc lancer Text Explorer, et si vous n'avez jamais utilisé Text Explorer auparavant, à gauche nous avons les termes les plus fréquents, et à droite nous avons les expressions les plus fréquentes, c'est-à-dire des groupes de mots. |
| |
Nous voulons donc utiliser ces mots pour peut-être comprendre |
| |
Qu'est-ce qui fait qu'un accident entraîne davantage de dégâts, voire des blessures plus graves ? Nous allons donc accéder au menu du triangle rouge et sélectionner le terme de l'accident. |
| |
Nous voyons maintenant ce lancement que nous observions il y a un instant, et je souhaite en savoir plus sur les dégâts. Plus précisément, je voudrais… Je voudrais peut-être faire la distinction entre les incidents où l'appareil a été détruit et ceux où il a subi des dégâts moindres ; nous allons donc sélectionner le niveau cible de destruction. |
| |
Je tiens à préciser que cet arrêt anticipé est une fonctionnalité qui permet de gagner du temps. |
| |
La sélection de variables peut s'avérer très chronophage, notamment pour les problèmes complexes. Si vous laissez cette case cochée, le système affichera en quelque sorte : |
| |
Nous pensons avoir un modèle suffisamment bon ; nous allons donc arrêter le développement plus tôt que prévu. Personnellement, je décoche cette option sauf si je constate un problème bien plus important. |
| |
Je vais donc laisser ça avec Elastic Net, AIC et on lance la course. |
| |
Donc, en arrière-plan, le système a créé les données nécessaires à l'ajustement de ce modèle de régression, et il ajuste ce modèle en coulisses. J'ai maintenant mon résumé. |
| |
Chaque document est résumé dans ce panneau de gauche ; voici donc le premier incident d’avion, voici le deuxième, qui est vierge. |
| |
Le premier incident est le suivant : l'avion a heurté un banc de neige en bordure de la piste. |
| |
Et nous avons mis en évidence tous les mots importants ; les mots bleus ont des coefficients négatifs, les mots orange ont des coefficients positifs. |
| |
Et si les mots nous intéressent, on peut regarder ce panneau à droite. J'ai tendance à trier par coefficient ; il suffit donc de cliquer en haut. |
| |
Dans ce cas précis, les mots ayant des coefficients négatifs ont moins de chances d'avoir été détruits. Donc si |
| |
Le document contient le mot « atterrissage ». Si l'avion a atteint le point d'atterrissage, il ne s'agit probablement pas d'un incident très grave. Ces incidents sont donc moins susceptibles d'être graves. |
| |
détruit. À l'inverse, on peut examiner les termes les plus positifs, qui sont les mots les plus associés à la destruction de l'avion. |
| |
Et ce sont des mots comme « incendie », « témoins ». S'ils interrogent des témoins pour décrire l'incident, cela signifie probablement que les personnes qui se trouvaient à bord de l'avion n'ont pas pu être interrogées. |
| |
Feu, radar, rotation, nuit, autant de mots fortement associés à |
| |
en étant détruit. |
| |
Maintenant, nous nous intéressons peut-être aussi au niveau des blessures, et plus précisément, nous allons examiner les niveaux de blessures les plus graves. |
| |
Et nous procéderons à une nouvelle sélection des termes. |
| |
Et je vais m'en contenter pour faire court. |
| |
Nous pouvons donc maintenant faire les mêmes choses, mais en nous concentrant cette fois sur le niveau de blessure. |
| |
Donc, si l'interview inclut le capitaine ou l'atterrissage, il est probable que les blessures ne soient pas très graves. |
| |
Mais si, à nouveau, il est question de radar, de nuit ou de montagnes, ce sont des termes beaucoup plus graves. On peut donc rapidement passer d'une réponse à l'autre et voir quels mots sont prédictifs de ces deux situations. |
| |
Niveau de blessure et niveau de dommages. |
| |
Prenons donc un autre exemple. |
| |
Alors, voici un sujet que j'apprécie particulièrement. Tout à l'heure, je parlais de pizza dans mes exemples. Maintenant, nous allons parler de bière. Ce sont donc, de toute évidence, des choses qui me tiennent à cœur. |
| |
Alors voilà, j'ai téléchargé une description de chaque style de bière, d'après certaines critiques de bières. |
| |
corps. |
| |
Chaque bière a donc sa propre description. |
| |
Et il est indiqué d'où provient la bière. Donc nous avons... |
| |
Les États-Unis, l'Allemagne, l'Irlande. |
| |
Utilisez la sélection de termes pour afficher |