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 à partir 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 passe ensuite à l'analyse du modèle sur la nouvelle table principale et teste l'adéquation des lignes de la table de sous-ensemble (c'est-à-dire les tests de validation).
Comment puis-je faire en sorte que JMP "enregistre" ces mouvements dans un script ?Jusqu'à présent, je ne l'ai pas fait reconnaître ces mouvements.Merci d'avance!
Fusion et nettoyage des donnéesExploration et visualisation des donnéesRe : 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érieureOui, c'est beaucoup mieux d'approcher Mark.J'apprécie vraiment que vous preniez le temps de me le faire savoir.
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érieure
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 Mark - L'état de la ligne exclue permet-il d'exclure une sélection aléatoire de lignes (disons 20 %) de l'ensemble de données d'origine ?Ce n'était pas évident dans l'index des scripts JSL.
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érieuretxnelson - Merci pour le conseil !
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.
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'inclut 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érieureSalut @learning_JSL ,
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 cela peut 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 tel est le cas, de nombreuses plates-formes d'ajustement de JMP s'en chargeront 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 les deux 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 mieux pour votre situation.
En passant, si vous allez commencer à écrire des scripts pour gagner du temps, je vous recommande fortement 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é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 principal) dans le script ?Idéalement, il nommerait les deux nouveaux fichiers avec un numéro croissant de manière séquentielle à chaque exécution du script (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 redéfinir 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 @learning_JSL ,
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 dans la table principale à l'aide du script, cela supprimera également les lignes de la table du sous-ensemble. Quoi qu'il en soit, cela devrait vous aider à démarrer dans la direction où 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érieureRegardez dans l'entrée source dans la table de données du sous-ensemble et il y aura le jsl pour le sous-ensemble