essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieureJe fais un très grand nombre de tests de validation sur un modèle de prédiction de régression multiple que je continue de peaufiner et j'aimerais automatiser une partie du processus de test de validation à l'aide d'un script.Jusqu'à présent, je n'ai pas pu « enregistrer dans un script » la partie du processus où je génère et enregistre un sous-ensemble aléatoire de lignes de mon ensemble de données d'entraînement à utiliser pour les tests de validation.
Lorsque je fais cela manuellement, je : 1) génère un sous-ensemble aléatoire de lignes (20 %) à partir de ma table principale, 2) enregistre le sous-ensemble et 3) supprime ces lignes de sous-ensemble de la table principale et enregistre la « nouvelle » table principale ( notez que je me suis assuré que la table de sous-ensemble est liée à la table principale pour permettre cette étape).Je procède ensuite à l'analyse du modèle sur la nouvelle table principale et teste l'ajustement des lignes de la table du sous-ensemble (c'est-à-dire les tests de validation.)
Comment faire en sorte que JMP « enregistre » ces mouvements dans un script ?Jusqu'à présent, je n'ai pas réussi à reconnaître ces mouvements.Merci d'avance!
ScriptRe : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieureRegardez dans l'entrée source dans la table de données du sous-ensemble et il aura le jsl pour le sous-ensembleRe : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieuresalut @Campbell_Ted_R ,
Le script suivant devrait vous aider à démarrer là où vous voulez aller. Je ne recommanderais pas de lier le sous-ensemble à la table principale, car si vous le faites, lorsque nous supprimons ces lignes de la table principale à l'aide du script, les lignes de la table de sous-ensemble seront également supprimées. Quoi qu'il en soit, cela devrait vous aider à démarrer dans la direction que vous voulez aller.
Names default to here (1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Random_rows = dt<<SELECT randomly=""></SELECT>
J'espère que cela t'aides!,
DS
Re : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieureParfait!Et existe-t-il une commande pour nommer les nouveaux fichiers (c'est-à-dire le nouveau fichier de sous-ensemble et le nouveau fichier de table principale) dans le script ?Idéalement, il nommerait les deux nouveaux fichiers avec un nombre croissant séquentiellement chaque fois que le script est exécuté (par exemple, sous-ensemble 1, principal 1..... sous-ensemble 2, principal 2..... sous-ensemble 3, principal 3, ... ..etc) mais cela ne me dérange pas de le réinitialiser manuellement moi-même dans le script si nécessaire car cela représente déjà un énorme gain de temps.
Re : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieuresalut @Campbell_Ted_R ,
Oui, lorsque vous appelez la fonction Enregistrer ou Enregistrer sous dans JSL, vous pouvez définir le nom. Si vous faites cela de manière itérative, vous pouvez tout mettre dans une boucle For plus grande et tout faire automatiquement pour vous. Maintenant que je pense à ce que vous faites avec les données, il semble presque que vous faites quelque chose de similaire à la validation croisée K-fold. Si c'est le cas, la plupart des plates-formes d'ajustement de JMP géreront cela très facilement. Selon la plate-forme de modélisation, vous pouvez la sélectionner comme option de validation croisée ou vous devrez peut-être créer plusieurs colonnes de validation k-fold, comme cela est nécessaire dans XGBoost. Dans tous les cas, vous pouvez créer une colonne de validation avec des colonnes d'entraînement, de validation et de test, et vous pouvez stratifier la colonne de validation en fonction de la colonne de réponse ou des colonnes de facteur, mais cela fonctionne le mieux pour votre situation.
En passant, si vous envisagez de commencer à créer des scripts pour gagner du temps, je vous recommande vivement d'utiliser l'index de script (Aide > Index de script) pour vous aider. Vous pouvez rechercher des commandes, et il existe des exemples de la façon dont il est utilisé pour effectuer ces actions/commandes.
J'espère que cela t'aides!,
DS
Re : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieureAvant d'aller plus loin, je me demande s'il y a un avantage à une autre approche. Vous pouvez utiliser l'état de ligne Exclu au lieu d'un sous-ensemble. Ajuster les moindres carrés n'inclura pas les lignes exclues dans la formation du modèle. Vous pouvez enregistrer une formule de prédiction dans une nouvelle colonne et la réponse prédite des lignes exclues sera là.
De plus, JMP Pro offre un rôle d'analyse de validation pour rendre ces évaluations très simples et pratiques.
Re : essayer de créer et d'enregistrer un sous-ensemble aléatoire de lignes et de l'enregistrer dans un script pour une utilisation ultérieureMerci Diedrich !Et merci d'avoir suggéré l'index de script JSL pour vous aider.Cela fonctionne parfaitement.