Modélisation de partition : qu'est-ce qui dicte la taille minimale de la division ?Je ne suis pas un statisticien de facto, mais j'ai acquis une grande expérience en biostatistique au cours de nombreuses années, en grande partie grâce à l'utilisation de la version standard de JMP (actuellement v13). Je ne peux certainement pas imaginer utiliser autre chose et en faire régulièrement la promotion.
Je définis actuellement progressivement des partitions dans une variété de variables continues pour optimiser le résultat dans une variable catégorique binomiale (échec contre réussite). J'ai beaucoup lu et regardé concernant cette plate-forme et je comprends la nécessité d'inclure la validation et de limiter le nombre de covariables à une courte liste pratique mais logique.
Cependant, la taille minimale est un paramètre dont je ne suis pas sûr. Mon intention est de définir des partitions qui minimisent, voire atténuent complètement, l'échec de la variable de résultat. La partition résultante semble fortement dépendante de la taille/proportion minimale de fractionnement choisie. Mon sentiment est qu'il faut choisir une taille aussi grande que possible (en s'efforçant d'atteindre 50%) tout en gardant un œil sur les valeurs LogWorth générées par chaque fractionnement. Je pense qu'une taille de fractionnement trop petite pourrait être analogue à un risque d'erreur de type II. Comment alors, outre ce que j'ai suggéré, détermine-t-on quelle proportion utiliser ?
De plus, et je suppose que le modèle de partition ne prend pas en compte la correction pour les comparaisons multiples, pourquoi la valeur p équivalente de LogWorth pour la division initiale ne correspond-elle pas au résultat exact de Fisher lorsque l'on enregistre la division résultante et effectue une analyse de contingence 2x2 ?
Fusion et nettoyage des donnéesModélisation prédictive et apprentissage automatiqueRe : Modélisation de partition : qu'est-ce qui dicte la taille minimale de la division ?Cher DS
Encore une fois, merci pour votre réponse détaillée qui m'a été très utile. Je dois admettre que, bien que j'aie été assez accompli en tant que programmeur dans Filemaker, je n'ai jamais vraiment exploré JSL, mais c'est peut-être l'incitation dont j'ai besoin pour le faire. En ce qui concerne R ^ 2, j'en étais conscient et je surveille certainement l'historique de division par rapport à ce coefficient. Heureusement, je suis tombé sur l'utilisation peu médiatisée des lignes exclues pour la validation, ce qui semblait le plus contre-intuitif à ce à quoi on est habitué pendant le fonctionnement normal.
Re : Modélisation de partition : qu'est-ce qui dicte la taille minimale de la division ?Salut @34Sud ,
XGBoost est vraiment puissant et très stable. Si vous le réexécutez plusieurs fois, vous obtenez la même réponse, ce qui n'est pas toujours le cas pour la forêt d'amorçage ou l'arbre boosté.
j'ai trouvé ça site Internet pour être TRÈS utile sur la façon de régler XGBoost et d'améliorer les modèles. Et, puisqu'il est écrit pour les personnes qui utilisent Python, vous devriez être prêt à partir.
Avez-vous envisagé de créer des scripts pour vos routines d'ajustement afin de pouvoir automatiser une partie du processus et de pouvoir les laisser s'exécuter sans surveillance ? Cela pourrait être plus rapide à long terme. Je le fais lors de la recherche de l'espace des paramètres de réglage pour les autres plates-formes arborescentes dans JMP - souvent en exécutant plus de 30 000 calculs. Selon la plate-forme, cela peut prendre 8 à 10 bonnes heures, mais je le laisse tourner pendant que je fais autre chose.
Vous voudrez certainement surveiller votre R^2 pour la formation et la validation afin de vous assurer que vous ne surajustez pas les données. J'essaie d'exécuter certains modèles maintenant, mais je trouve que jusqu'à présent avec les plates-formes Neural Net et GenReg, il revient avec R ^ 2 qui sont plus grands pour l'ensemble de validation que l'ensemble de formation, ce qui est un gros avertissement signe. Personnellement, je pense que c'est à cause de l'ensemble de données dont je dispose et de la distribution hautement non normale des données.
Une très bonne chose à propos de la mise de côté des données de test - en fait, supprimez ces données de la table de données d'entraînement afin qu'il n'y ait aucun moyen pour JMP d'y accéder lors de l'exécution de l'ajustement. J'ai eu l'expérience avant cela, même si j'ai caché et exclu certaines lignes, les données étaient toujours utilisées pendant la validation croisée, et donc lors de la comparaison d'un tracé réel vs prédit pour l'ensemble de données de test, il semblait meilleur qu'il ne l'était réellement parce que certains de les données de test étaient utilisées dans la formation.
DS
Re : Modélisation de partition : qu'est-ce qui dicte la taille minimale de la division ?Cher DS
Merci pour votre réponse détaillée. Malheureusement, je n'ai pas la version Pro ($$$). L'approche que j'ai adoptée dans l'intervalle consistait à spécifier 20 % pour la validation, puis à commencer par une répartition de taille minimale de 45 %. Si cela échouait, je le réduirais de 5% à 40% et ainsi de suite jusqu'à ce que j'obtienne une scission. Je l'affinerais ensuite avec des incréments ascendants de 1 %, mais je le limiterais à l'endroit où la valeur LogWorth indiquait une signification. Alternativement, je définirais la division sur le nombre d'échecs dans l'ensemble d'origine, ou un peu plus, pour obtenir le placement de 100 % des cas ayant échoué dans l'un des sous-ensembles résultants définis par la division. Je prends votre point concernant un ensemble de test et j'essaierai de le faire à condition qu'il reste un nombre suffisant pour la validation et la formation. J'ai essayé XGBoost après avoir installé Python, mais il y a une courbe d'apprentissage pour le faire fonctionner.
Re : Modélisation de partition : qu'est-ce qui dicte la taille minimale de la division ?Salut @34Sud ,
Avez-vous JMP Pro ou avez-vous accès à JMP Pro ? Je demande parce que la plate-forme de partition n'est pas la meilleure approche (la plus stable) pour générer des formules de prédiction. Les plateformes Boosted Tree et Boostrap Forest sont bien meilleures. Ou, si vous avez accès à des versions supérieures, vous pouvez également exécuter la plate-forme XGBoost, qui est très stable.
Mais, pour votre question sur la répartition de la taille minimale. La taille minimale des fractionnements contrôle la complexité de la "souche" de l'arbre. Si le nombre d'observations dans un fractionnement est inférieur à la valeur que vous avez définie, aucun fractionnement n'est généré. Il n'est pas trop pertinent lorsque vous utilisez le boosting dans votre arbre de décision, mais peut être utilisé pour le contrôler. Vous ne voulez pas qu'il soit trop petit (c'est-à-dire 1 observation) et vous ne voulez pas non plus qu'il soit trop grand (par exemple 1000 observations). Un bon point de départ typique serait d'environ 5 pour une méthode d'arbre simple. Si vous utilisez quelque chose comme la plate-forme de forêt bootstrap, vous voudrez utiliser N/2 pour les schémas de classification comme vous utilisez - où N est le nombre d'observations. Vous pourrez peut-être ajuster votre modèle en ajustant ce paramètre, puis en le comparant aux différents modèles sur un ensemble de données de test.
Si vous avez suffisamment de données, je vous recommande de diviser une partie, peut-être 20-25% et de la conserver comme un ensemble de données de test qui n'est pas utilisé pour former ou valider votre modèle. Avec les données restantes, vous pouvez générer une colonne de validation stratifiée avec des données d'entraînement et de validation (disons 80/20) pour optimiser la complexité de votre modèle tout en l'empêchant de sur-ajuster. Après avoir généré plusieurs modèles, vous pouvez utiliser les données de test précédentes pour comparer quel modèle est réellement le meilleur pour prédire correctement les résultats. Puisque vous recherchez un modèle de décision binaire, vous pouvez même l'optimiser davantage en examinant l'apprentissage sensible aux coûts.
Je ne suis pas un expert dans la façon dont JMP calcule la valeur du journal ou le test exact de Fischer, donc j'espère que quelqu'un de JMP pourra répondre à cela, mais je suppose que cela a à voir avec l'ensemble des données et le calcul de la valeur du journal par rapport à quand vous enregistrez la formule de répartition et faire un tableau de contingence.
J'espère que cela aide - ou donne au moins quelques éléments de réflexion.
Bonne modélisation !,
DS