Table de réglage pour l'estimation des modèles de partition : résultatsUne option pour les modèles de partitionnement (arbre, bootstrap, boosté) consiste à utiliser une table de conception de réglage. Les résultats commencent par un tableau qui comprend les points de conception ainsi que le R-carré de validation et le RMSE de validation pour chaque point de conception. J'ai besoin que ce tableau montre également le R-carré d'entraînement, le RMSE d'entraînement, le R-carré de test et le RMSE de test. Quelqu'un peut-il nous aider ici, peut-être avec un script ?
Ces statistiques, et bien d'autres, sont affichées sous le tableau pour le modèle choisi, mais j'ai besoin de ces statistiques pour tous les points de conception. La méthode de ma folie est la suivante : je veux être capable de produire un graphique montrant, disons, à la fois la validation R2 et la formation R2 par rapport au taux d'apprentissage pour montrer la quantité de surapprentissage qui se produit avec l'augmentation du taux d'apprentissage.
Re : Table de réglage pour l'estimation des modèles de partition : résultatsJ'apprends beaucoup sur les tenants et aboutissants du script de JMP, Cameron. Encore une fois, cela fonctionne très bien. Merci encore à vous. J'apprécie beaucoup votre aide.
Re : Table de réglage pour l'estimation des modèles de partition : résultatsOn dirait que NumberBox ne reconnaît pas "<< Get".Vérifiez l'index de script pour NumberBox et vous verrez tous les messages que ce type d'objet reconnaîtra.L'un d'eux est << Obtenir du texte ; cependant, cela renverra une chaîne.Vous pouvez le convertir en nombre en utilisant num().
num(report["Specifications"][NumberBox(1)] << Get Text);
Re : Table de réglage pour l'estimation des modèles de partition : résultatsBonjour Cameron :
J'ai modifié votre script (merci encore !) mais je suis bloqué sur un dernier problème. En plus des résultats RSq, RMSE, etc. des arbres boostés, j'aimerais maintenant également récupérer le nombre final de couches. Je pensais que ce serait une simple modification de votre script original. Veuillez consulter la ligne 13 à partir du bas :
NL = report["Specifications"][NumberBox(1)] << Get;
Cela ne fonctionne pas, apparemment. Savez-vous s'il y a quelque chose de différent dans la partie « Spécifications » du rapport par rapport aux « Statistiques globales » ?
dt = Data Table("C.jmp");
dt_pars = Data Table("table 3400.jmp");
//Get copy of pars table to store results
dt_results = dt_pars << Subset( All rows, Selected columns only( 0 ) );
dt_results << New Column("Seed");
dt_results << New Column("Final N Layers");
dt_results << New Column("Rsq Training");
dt_results << New Column("Rsq Validation");
dt_results << New Column("Rsq Test");
dt_results << New Column("RMSE Training");
dt_results << New Column("RMSE Validation");
dt_results << New Column("RMSE Test");
dt_results << New Column("N Training");
dt_results << New Column("N Validation");
dt_results << New Column("N Test");
for(i = 1, i<= N Row(dt_pars), i++,
SED = dt_pars: Seeds[i];
SPT = dt_pars:Splits Per Tree[i];
LR = dt_pars:Learning Rate[i];
RSR = dt_pars:Row Sampling Rate[i];
CSR = dt_pars:Column Sampling Rate[i];
MSS = dt_pars:Minimum Size Split[i];
NL = dt_pars:Number of Layers[i];
str = Eval Insert("\[report = (dt << Boosted Tree(
Y( :PR ),
X(
:Pe,
:To,
:Td,
),
Validation( :Name( "Train/Valid/Test" ) ),
Set Random Seed( ^SED^ ),
Method( "Boosted Tree" ),
Splits per Tree( ^SPT^ ),
Number of Layers( ^NL^ ),
Learning Rate( ^LR^ ),
Row Sampling Rate( ^RSR^ ),
Column Sampling Rate( ^CSR^ ),
Minimum Size Split( ^MSS^ ),
Go,
invisible
)) << Report;]\");
//Fit the boosted tree
Eval(Parse(str));
//Get the Rsq values and insert them into the results table
R2 = report["Overall Statistics"][NumberColBox(1)] << Get;
RMSE = report["Overall Statistics"][NumberColBox(2)] << Get;
N = report["Overall Statistics"][NumberColBox(3)] << Get;
NL = report["Specifications"][NumberBox(1)] << Get;
report << Close Window;
dt_results:Final N Layers[i] = NL[1];
dt_results:Rsq Training[i] = R2[1];
dt_results:Rsq Validation[i] = R2[2];
dt_results:Rsq Test[i] = R2[3];
dt_results:RMSE Training[i] = RMSE[1];
dt_results:RMSE Validation[i] = RMSE[2];
dt_results:RMSE Test[i] = RMSE[3];
dt_results:N Training[i] = N[1];
dt_results:N Validation[i] = N[2];
dt_results:N Test[i] = N[3];
);
Re : Table de réglage pour l'estimation des modèles de partition : résultatsHeureux d'avoir pu aider!Re : Table de réglage pour l'estimation des modèles de partition : résultatsTout fonctionne très bien maintenant, Cameron. Je ne peux pas vous dire à quel point j'apprécie votre sagesse !
Re : Table de réglage pour l'estimation des modèles de partition : résultatsLa colonne RMSE sera dans numcolbox(2), vous pourrez donc la récupérer dans le script de la même manière que vous récupérez R2.
Pour extraire de telles valeurs des rapports, il vous suffit de déterminer où elles se trouvent dans l'arborescence d'affichage. Vous pouvez voir comment procéder ici : https://www.jmp.com/support/help/14/view-the-display-tree.shtml
Dans mon script, j'ai une variable « rapport » qui contient une référence à la fenêtre de rapport de la sortie de l'arborescence améliorée. Dans le rapport, l'encadré intitulé « Statistiques globales » contient le tableau avec les R2 et les RMSE. J'arrive à l'élément d'affichage numcolbox avec les valeurs R2 en utilisant 'report["Overall Statistics"][numcolbox(1)]'Re : Table de réglage pour l'estimation des modèles de partition : résultatsCela a fonctionné à merveille, Cameron ! Au risque de mettre votre patience à rude épreuve, comment puis-je récupérer les RMSE ainsi que les R2 ? Ou, plus généralement pour ma formation, comment déterminer les noms des variables pour R2, RMSE, etc. afin de pouvoir les appeler dans le script ?
Re : Table de réglage pour l'estimation des modèles de partition : résultatsJ'ai changé d'avis.Ce n'est pas trop difficile à écrire.Voici un exemple avec des arbres améliorés et les données physiques de la voiture de l'exemple de bibliothèque de données.J'ai créé une table de réglage pour essayer cela, que je joins.J'ai également mis une colonne de validation dans le tableau Données physiques de la voiture.
Voici le script :
dt = Data Table("Car Physical Data");
dt_pars = Data Table("TuningTable");
//Get copy of pars table to store results
dt_results = dt_pars << Subset( All rows, Selected columns only( 0 ) );
dt_results << New Column("Rsq Training");
dt_results << New Column("Rsq Validation");
for(i = 1, i<= N Row(dt_pars), i++,
SPT = dt_pars:SplitsPerTree[i];
LR = dt_pars:Learning Rate[i];
RSR = dt_pars:Row Sampling Rate[i];
CSR = dt_pars:Column Sampling Rate[i];
str = Eval Insert("\[report = (dt << Boosted Tree(
Y( :Weight ),
X(
:Country,
:Type,
:Turning Circle,
:Displacement,
:Horsepower,
:Gas Tank Size
),
Validation( :Validation ),
Method( "Boosted Tree" ),
Splits per Tree( ^SPT^ ),
Number of Layers( 50 ),
Learning Rate( ^LR^ ),
Row Sampling Rate( ^RSR^ ),
Column Sampling Rate( ^CSR^ ),
Go,
invisible
)) << Report;]\");
//Fit the boosted tree
Eval(Parse(str));
//Get the Rsq values and insert them into the results table
R2 = report["Overall Statistics"][NumberColBox(1)] << Get;
report << Close Window;
dt_results:Rsq Training[i] = R2[1];
dt_results:Rsq Validation[i] = R2[2];
);J'ai fait une pile des colonnes R2 pour le tableau des résultats pour faire le graphique suivant :
Cela devrait être assez facile à adapter aux autres plateformes que vous avez mentionnées.
Re : Table de réglage pour l'estimation des modèles de partition : résultatsJe pense que vous devrez écrire un script pour cela, qui devra effectivement reproduire les résultats de la fonctionnalité intégrée + récupérer vos autres métriques souhaitées pour l'ensemble de formation.C'est certainement faisable, mais je ne suis pas sûr que cela en vaille la peine.