meilleur modèleBonjour
ma question est de savoir comment puis-je trouver le meilleur modèle paramétrique qui s'adapte très bien à mon ensemble de données ?
je veux trouver un modèle paramétrique qui puisse bien prédire ma réponse
Modélisation statistique avancéeAnalyse et modélisation des données de baseRe : meilleur modèleBonjour @maryam_nourmand ,
Votre question concerne un vaste sujet, et il peut y avoir (beaucoup) de questions à aborder et à répondre avant de répondre à cette question :
- Comment les données sont-elles collectées ? Étude observationnelle, conception expérimentale, ... ? Représentativité et exhaustivité du jeu de données ? Une analyse exploratoire des données peut être utile pour détecter certains modèles et pièges possibles concernant les hypothèses des modèles de régression , comme la multicolinéarité qui peut nécessiter un modèle adapté comme le PLS ou des étapes de pré-traitement comme l'ACP.
- Objectif du ou des modèles ? Explications causales, prédiction et optimisation, ou les deux (également liées à l'ensemble de données disponible et à la méthode de collecte) ?
- Stratégie de validation/sélection des fonctionnalités ? Comment s'assurer que le ou les modèles créés ont le bon niveau de complexité tout en conservant de bonnes performances prédictives par exemple ? Évaluez-vous les performances et la robustesse du modèle via une stratégie de validation de Machine Learning « standard » (avec validation croisée ou fractionnements train/validation/test), ou via une approche « à orientation statistique », basée sur des critères de vraisemblance, d'information (AICc, BIC), valeurs p ... ? Notez que la complexité du modèle doit également être directement limitée par la collecte de données : si vous avez des facteurs avec 3 niveaux différents par exemple, vous ne pourrez pas ajuster des termes supérieurs aux termes de 2ème ordre.
- Paramètres et seuils d'évaluation/sélection ? Comment évaluez-vous les modèles ? Quel est le processus/critère de sélection : sélectionnez-vous ceux avec les meilleurs résultats prédictifs avec la métrique sélectionnée, ou sélectionnez-vous tous les modèles qui ont de meilleures performances qu'un modèle de référence ou un modèle naïf, ... ? Comment finalement tester le modèle ?
Certaines de ces questions et réponses ont déjà été décrites dans des articles précédents :
https://community.jmp.com/t5/Discussions/Statistical-Significance/mp/765928/highlight/true#M94573
https://community.jmp.com/t5/Discussions/Analysis-of-split-plot-design-with-full-factorial-vs-RSM/mp/770579/highlight/true#M95183
La création, la comparaison et la sélection de modèle(s) nécessitent des métriques d'évaluation liées à votre objectif et des seuils/critères pour sélectionner un ou plusieurs modèles. Si vous souhaitez simplement le meilleur modèle prédictif, vous pouvez :
- Créer un modèle avec une stratégie de validation ML standard (validation croisée par exemple) ou une stratégie capable de contrôler la complexité du modèle,
- Utilisez une ou plusieurs métriques liées à la précision prédictive, comme RMSE, MAPE, ...
- Comparez les modèles en fonction de la(des) métrique(s) et de l'expertise du domaine : lesquels sont les plus appropriés/pertinents pour votre sujet et lesquels ont les meilleures performances,
- Choisissez d'estimer les prédictions individuelles avec le(s) modèle(s) sélectionné(s) pour voir comment/où elles diffèrent, et/ou d'utiliser un modèle combiné pour faire la moyenne des erreurs de prédiction.
- Testez le modèle en situation/environnement de production « réel ».
Vous pourriez également être intéressé par ces ressources :
Quel modèle quand ?
Spécification et ajustement des modèles
Construire et comprendre des modèles prédictifs
Création de modèles prédictifs pour les données corrélées et de grande dimension
Création de meilleurs modèles prédictifs à l'aide de JMP Pro - Sélection de modèles (cela peut aider à filtrer les options de modèles paramétriques et d'apprentissage automatique et à les comparer simultanément)
Modélisation prédictive
Module STIPS 7 : Modélisation prédictive et exploration de texte
Quel modèle quand ? (et quel type de modélisation ?) - (2023-US-PO-1509)
Choix de modèles dans JMP avec des critères de sélection de modèle - (2023-US-30MP-1456)
Exploration de données et modélisation prédictive
J'espère que ce premier démarreur de discussion vous aidera,
Re : meilleur modèle
Si je veux expliquer mon objectif plus précisément :
J'ai un premier ensemble de données lié aux données des patients atteints de cancer. Je souhaite trouver un modèle statistique paramétrique approprié qui correspond le mieux à mon ensemble de données. En utilisant ce modèle, je vise à simuler des données afin d'appliquer un décalage dans l'interception du modèle. En fin de compte, je veux voir à quelle vitesse mon modèle d'apprentissage automatique préexistant peut détecter ce changement dans une carte de contrôle (c'est-à-dire l'obtention de l'ARL). À cette fin, j'ai besoin du modèle le mieux adapté à mes données afin de pouvoir simuler les données à partir de celui-ci.
Re : meilleur modèleSalut @maryam_nourmand ,
Ok, alors vous serez plus probablement dans une approche de Data Mining, avec un ensemble de données fixe de données d'observation dans lequel vous essayez d'adapter un modèle prédictif acceptable. L'utilisation de colonnes de validation (avec stratification sur vos fonctionnalités) aidera à valider (pour éviter le surajustement) et à tester votre modèle sur les données de production. En termes de stratégie de modélisation, vous utiliserez très probablement des approches par étapes pour sélectionner les fonctionnalités, ainsi que des approches de régression généralisée avec la méthode des colonnes de validation.
A titre d'exemple, j'ai utilisé l'ensemble de données Cancer_Data de Kaggle pour prédire s'il existe un cancer bénin ou malin en fonction de caractéristiques individuelles : https://www.kaggle.com/datasets/erdemtaha/cancer-data?resource=download
Après une première analyse exploratoire des données axée principalement sur les distributions et corrélations entre caractéristiques, j'ai créé une formule de colonne de validation (stratification sur les caractéristiques) avec des ratios 70/20/10 pour les ensembles d'entraînement/validation/test, puis j'ai utilisé un modèle de régression généralisée avec méthode de colonne de validation, et toutes les caractéristiques des effets principaux et les termes d'interactions à 2 caractéristiques entrés comme termes possibles dans le modèle. Je choisis un Elastic Net adaptatif car les fonctionnalités sont fortement corrélées, mais il peut également y avoir d'autres options, comme le prétraitement PLS ou PCA.
Vous pouvez ensuite enregistrer la formule de ce modèle et utiliser le Prediction Profiler pour créer des simulations , évaluer l'impact des effets des caractéristiques sur la réponse et éventuellement estimer l'effet de l'augmentation du bruit sur la réponse prédite.
J'espère que ces quelques options pourront vous aider pour votre sujet,
Re : meilleur modèleVotre réponse m'amène à vous demander : qu'entendez-vous par "modèle statistique paramétrique ?" Je considère généralement les modèles d'apprentissage automatique comme non paramétriques, excluez-vous donc ces modèles ici. Ce n'est pas clair puisque vous dites que vous disposez d'un modèle d'apprentissage automatique préexistant. Souhaitez-vous comparer un modèle paramétrique et non paramétrique ? Si vous utilisez la plateforme de sélection de modèles, vous pouvez créer un certain nombre des deux types de modèles prédictifs. En utilisant ce que vous trouvez être le « meilleur ajustement », vous pouvez ensuite enregistrer la formule de prédiction afin d'effectuer des simulations. Je ne suis pas entièrement sûr de ce que vous entendez par "changement dans l'interception du modèle", mais je pense que vous pourriez simplement introduire une perturbation additive dans la formule pour générer les données simulées.
Re : meilleur modèleMerci pour votre réponse.
Mais je pense que pour la simulation, il vaut mieux aller dans la section « enregistrer les colonnes->enregistrer la formule de simulation » car elle contient une formule de simulation que je peux également utiliser pour écrire du code, non ?
Et merci d'avoir présenté l'ensemble de données.
Mais disposez-vous d’un ensemble de données lié à un processus de traitement qui comprend plusieurs étapes ? Je veux dire, après le premier traitement, la maladie rechute, et le deuxième traitement est effectué, et les informations sur le traitement telles que la dose du médicament, etc., sont enregistrées. Si vous disposez d'un tel ensemble de données, j'apprécierais que vous puissiez le partager.
Re : meilleur modèleOui, par « modèle paramétrique », je n’entends pas les modèles d’apprentissage automatique.
Mon objectif dans la recherche du meilleur modèle paramétrique est de simuler et de générer des données avec une quantité plus grande que mon ensemble de données initial. Je souhaite utiliser plus de données pour mon modèle d'apprentissage automatique, mais je souhaite que les données simulées ressemblent étroitement et soient similaires à mon ensemble de données initial.
Re : meilleur modèleJe ne vois pas pourquoi vous avez besoin d'un modèle paramétrique pour faire ça. Vous pouvez exécuter n'importe quel modèle prédictif et utiliser le profileur pour simuler n'importe quel nombre de points de données supplémentaires, en spécifiant différentes valeurs pour les variables indépendantes et en ajoutant du bruit aléatoire aux prédictions. Peut-être que je ne comprends pas ce que vous avez l'intention de faire, mais je ne considère pas la partie modèle paramétrique comme nécessaire.
Re : meilleur modèleQuelle est la différence entre l'enregistrement des formules de simulation via « Enregistrer les colonnes -> Enregistrer la formule de simulation » et la simulation à l'aide de l'outil Profiler ?
La raison pour laquelle j'utilise un modèle paramétrique pour la simulation est que je souhaite avoir la relation et la formule de simulation afin de pouvoir écrire le code correspondant et répéter ce processus 100 fois en boucle (pour obtenir l'ARL de ma carte de contrôle basée sur le modèle que j'ai construit en phase I ).
Si je devais le faire manuellement avec le logiciel, cela prendrait du temps et serait difficile.
Re : meilleur modèleSalut @maryam_nourmand ,
Cela dépend quel est votre objectif.
L'enregistrement d'une formule de simulation peut vous aider à évaluer les distributions de coefficients de votre modèle, en basculant la réponse du diagnostic avec la formule de simulation du diagnostic : Simuler

La formule de simulation n'est qu'une version condensée des formules de prédiction que vous pouvez enregistrer à partir du rapport d'ajustement du modèle : au lieu d'avoir une colonne de probabilité pour chaque classe et une colonne de classification finale, vous n'enregistrez qu'une seule colonne avec le calcul des probabilités et la classification dans la même formule. .
Si vous êtes plus intéressé par la robustesse de votre modèle concernant les variations de vos entrées, alors utiliser le simulateur de Prediction Profiler avec des variations dans les entrées (et éventuellement ajouter du bruit dans la sortie) et exécuter une expérience de simulation peut vous aider. Vous pouvez ensuite générer des variations dans vos entrées et éventuellement modifier les distributions de vos caractéristiques pour voir comment cela affecte votre modèle, ainsi qu'augmenter le bruit pour voir la robustesse de votre modèle de prédiction.
En passant et en lien avec les points apportés par @dlehman1 :
Mon objectif dans la recherche du meilleur modèle paramétrique est de simuler et de générer des données avec une quantité plus grande que mon ensemble de données initial. Je souhaite utiliser plus de données pour mon modèle d'apprentissage automatique, mais je souhaite que les données simulées ressemblent étroitement et soient similaires à mon ensemble de données initial.
Afin de simuler et de générer des données similaires aux données réelles collectées, vous devez « imiter » le processus de génération de données. S'il existe de fortes non-linéarités, corrélations ou autres modèles trouvés par votre modèle ML et non pris en compte par le modèle paramétrique, vous devez simuler et générer des données avec le modèle ML, sinon vous introduirez un fort biais dans la simulation/ données générées. Je ne comprends pas la nécessité de disposer d'un modèle distinct pour la génération et la prédiction de données pour ce cas d'utilisation.
Notez que peu importe à quel point un modèle peut être prédictif, il ne s'agit que d'une simplification d'un phénomène que vous essayez de comprendre et de prédire, de sorte que la génération de données à partir de ce modèle peut toujours être plus ou moins biaisée (et générer probablement des résultats moins bruyants que les résultats réels). données).Mais il peut toujours être utile d’évaluer sa robustesse aux variations des données, comme vous avez l’intention de le faire.
Et non désolé, je n'ai pas d'ensemble de données comprenant un traitement en plusieurs étapes. Je viens de trouver celui-ci et je l'utilise pour fournir un exemple d'illustration qui pourrait correspondre à votre cas d'utilisation, c'est tout.
J'espère que cette réponse vous aidera,
Re : meilleur modèle@VictorG
Je suppose que je vais apprendre quelques nouvelles fonctionnalités de JMP. S'il vous plaît dites-moi où vous avez obtenu la fenêtre de simulation avec les colonnes à désactiver que vous affichez. Je ne peux le trouver nul part. Je vois où exécuter des expériences de simulation, mais je ne trouve aucun endroit qui invite à enregistrer une formule de simulation. Merci.
Re : meilleur modèleSalut @dlehman1 ,
La fonction de simulation est accessible en cliquant avec le bouton droit sur n'importe quel panneau/rapport de la plateforme de modèle : Lancer la fonction de simulation
Voici à titre d'exemple le résumé du modèle de SVM :

Ensuite, vous serez invité à choisir les colonnes à activer et à désactiver. Dans le cadre de Simulate, vous pouvez l'utiliser sur les estimations des paramètres d'un modèle de régression linéaire, en commutant la réponse avec la réponse simulée pour évaluer la distribution des estimations des paramètres, ou sur le résumé du modèle pour évaluer la cohérence des performances du modèle : Simuler une fenêtre
Concernant la formule de simulation, elle peut être trouvée et enregistrée comme l'une des options sous "Enregistrer les colonnes" dans la plateforme de Régression Généralisée :

J'utilise cette option « Simuler » pour évaluer la robustesse des modèles de Machine Learning à l'aide d'une formule de colonne de validation. En utilisant cette colonne comme validation dans la fenêtre de dialogue du modèle, je peux ensuite simuler et activer et désactiver ces valeurs de colonne, pour représenter des ensembles de formation/validation/test légèrement différents avec la même méthode de stratification ou de regroupement. Cela peut aider à évaluer la robustesse de l'algorithme (comme la validation croisée permettrait également : https://community.jmp.com/t5/Discussions/How-can-I-automate-and-summarize-many-repeat-validations-into /mp/632192/highlight/true#M83061 ), et éventuellement tester l'amélioration des performances (le cas échéant) du modèle en affinant les hyperparamètres ( https://community.jmp.com/t5/Discussions/Boosted-Tree- Tuning-TABLE-DESIGN/mp/609591/highlight/true#M81062 ).
J'espère que cette réponse pourra vous aider,
Re : meilleur modèlebonjour à nouveau
par exemple regardez cette formule de simulation :
(-0,741104921699375) + 0,0237113448295257 * :poids + Correspondance( :sexe,
0, (:âge - 33,8085106382979) * 0,0091364700024452,
1, (:âge - 33.8085106382979) * 0,
.
) + (:poids - 63,3936170212766) * Correspondance( :famille, 0, -0,015643799304455, 1, 0, . ) + (:taille de la tumeur - 2,49893617021277) *
Match( :famille, 0, 0,441690642908435, 1, 0, . ) + (:taille de la tumeur - 2,49893617021277) * Match( :hyper, 0, -0,346279666197286, 1, 0, . )
+Match( :hyper, 0, Match( :dissection, 0, 0.354356313550484, 1, 0, . ), 1, Match( :dissection, 0, 0, 1, 0, . ), . ) + (0.15468861367462
+ 0) * Tangente( Pi() * (Random Uniform() - 0.5) )
j'ai besoin d'une telle formule comme celle-ci pour mon projet car je devrais écrire un code python et générer 100 fois pour calculer l'ARL
ai-je réussi à faire passer mon message ?