回复:如何将许多重复验证自动化并汇总到一个输出表中?我想你可以通过迭代来添加 100 个验证列:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Validation",
numeric,
"Nominal",
Formula( Make Validation Formula( [.6, .2, .2] ) ),
Set Property( "Value Labels", {0 = "Training", 1 = "Validation", 2 = "Test"} )
);
然后拟合您的模型,遍历每个验证列,并保存每个列的汇总表,将它们全部保存到一个文件夹中。
然后使用多个文件打开打开并连接文件。
...或者可能...
打开您的表,添加验证列,运行模型,保存摘要,关闭不保存的表,然后迭代 100 次。
然后使用多个文件打开并连接表格以获得总体摘要。
回复:如何将许多重复验证自动化并汇总到一个输出表中?谢谢回复,。因为我没有听到任何消息,所以我一直在研究我上周五刚刚完成的自己的解决方案。
我按照您的建议开始创建 100 个验证列。
我逐步分析每个报告,从每个报告中提取我需要的表格作为数据表。
我将每个表加入到我的主文件中,然后关闭报告和数据表,所以虽然我生成了 200 个文件,但我一次只能打开 3 个。我可以使用表格堆栈功能,通过在生成的列中搜索关键字并分析结果数据,从所有需要的新列中提取我需要的数据。我唯一没有管理的部分(这将节省堆叠是从报告表中导出我需要的列)我已经尝试了很多次但失败了。
Report( discriminant[1] )[Outline Box("Probabilities to Each Group")] [Table Box (1)] << Make Data Table( "discrim_table " || char(i) );我从报告中确定了名为“每个组的概率”的表格。这些是此表中的 4 列(用于我的数据),我有兴趣提取名为“AAAAAA”的第三列作为标签用于盲目目的。属性很清楚,这是数据表 Col Box( :AAAAA),这个 col 框嵌套在“每个组的概率”下。我知道我可以编写脚本从主文件中删除这些额外的列,但这似乎效率不高。我试过 NumberColBox("AAAAA") ETC。,但没有喜悦,有没有人有任何想法?
回复:如何将许多重复验证自动化并汇总到一个输出表中?你好@TDF ,
也许一个更简单的过程可以帮助您:
1.创建一个验证列公式(这里是 Big Class 数据集):

2. 在模型中使用这个公式:

3. 根据您想重复模型拟合的位置/内容,您可以右键单击要重复的指标/估计值,然后单击“模拟”(在我的示例中,我在“参数”上执行此操作估计”面板值):

您可以指定所需的样本数量并固定随机种子(如果您想要可重现的结果):

4.点击“确定”后,模型通过改变训练集和验证集(根据分层抽样公式)进行100次拟合,您直接得到一个包含模型100次结果的汇总表(见附例) ,然后您可以在其中使用 Distributions(此表中自动生成的脚本)或 Graph Builder 平台(此处为 Distributions 平台的示例,在截距和权重的参数估计上)以图形方式显示结果:

您可以非常轻松地创建这些步骤,然后使用日志复制生成的脚本以自动化步骤/分析。
希望这个回答能帮到你
回复:如何将许多重复验证自动化并汇总到一个输出表中?谢谢维克多。
我想我的回答应该更清楚。我已经解决了我的问题并且编码完成了。
最好只添加我需要的 100 列(从报告中提取),而不是提取完整的表格(400 列)并且必须从第三列开始选择每四列。
对我来说它现在的知识兴趣是,我可以从报告中的表格中提取特定的列吗?这可能是不可能的,或者如果是的话,它可能对其他社区成员有用。
感谢 Byron 和你自己花时间发布有用的选项。
回复:如何将许多重复验证自动化并汇总到一个输出表中?你好@TDF ,
抱歉造成误会,我还以为案子还没结呢。
由于讨论围绕创建 100 个单独的验证列展开,我认为更简单(也可能更优雅)的解决方案可能是使用验证列公式在任何平台上可用的“模拟”功能,以便自动重复模型适合各种训练和验证集,可以访问显示这些重复结果的汇总表,而无需使用大量验证列扩展数据表,也不必手动连接每个单独的结果。
很高兴您找到了脚本的解决方法。
关于您的问题,可以将部分报告提取为数据表:右键单击您感兴趣的面板/部分,然后选择“制作成数据表”或“制作组合数据表”(如果您有多个回复例如)。 该脚本在 Big Class Dataset 上看起来像这样:
// Make TableBox into a Data Table
Local( {obj},
obj = Data Table( "Big Class" ) << Fit Model(
Y( :height ),
Effects( :age, :sex, :weight ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:height << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
),
SendToReport(
Dispatch( {"Response height"}, "age", OutlineBox, {Close( 1 )} ),
Dispatch( {"Response height"}, "sex", OutlineBox, {Close( 1 )} ),
Dispatch( {"Response height"}, "weight", OutlineBox, {Close( 1 )} )
)
);
Report( obj )["Response height", "Whole Model", "Parameter Estimates",
Table Box( 1 )] << Make Into Data Table;
obj << Close Window;
)
但我没有看到专门从此小组报告中选择某些列的选项。 查看属性,我必须特别要求不要在新数据表中显示和导出某个 NumberColBox,例如:

也许更高级的 Scripter 用户可能会帮助解决这个问题(如果我理解得很好的话)。 或者在脚本中直接添加一些代码以根据特定属性(名称、索引...)删除无用的列可能更简单。 这里也有关于这个主题的有趣答案:已解决:将 AIC 导出到新数据表的脚本 - JMP 用户社区
我希望这能帮到您,
一切顺利,
如何将许多重复验证自动化并汇总到一个输出表中?我正在运行判别分析并使用分层验证列来检查我的模型的质量。
鉴于工作的性质(对未知样本的来源进行分类),我想确保模型是稳健的。理想情况下,我想创建 100 个验证列,对每个列运行一次分析,然后创建一个汇总分类表 - 我不想手动打开和复制 100 个表。
我在这里查看分类计数,但解决方案可能是组合任何一组相同的输出表。
我正在运行 Pro v16(如果它能让任务更容易,我可以更新到 v17)
非常感谢, 特雷弗
Discriminant(
X( :Class for LDA ),
Validation( :Validation 0·7 0·2 0·1 ),
Y(
:"7.2"n, :"3.14"n, :"1.92"n, :"1.9"n, :"1.7"n, :"1.72"n, :"1.88"n, :"1.74"n,
:"1.76"n, :"1.78"n, :"0.98"n, :"0.96"n, :"1.82"n, :"2.4"n, :"2.12"n,
:"1.68"n, :"1.84"n, :"7.92"n, :"2.08"n, :"1.8"n, :"1.86"n, :"1.04"n,
:"3.12"n, :"1.06"n, :"0.94"n, :"2.42"n, :"8.4"n, :"2.46"n, :"7.24"n,
:"2.36"n, :"1.08"n, :"2.38"n, :"2.34"n, :"8.46"n, :"2.44"n, :"8.44"n, :"1"n,
:"2.48"n, :"1.48"n, :"1.66"n, :"1.94"n, :"2.14"n, :"8.42"n, :"3.16"n,
:"8.52"n, :"7.46"n, :"2.54"n, :"3.02"n, :"8.38"n, :"3.18"n
),
Discriminant Method( "Wide Linear" ),
Show Biplot Rays( 0 ),
Canonical 3D Plot( 1, Frame3D( Set Rotation( -54, 0, 38 ) ) ),
Show Classification Counts( 1 ),
Use Matrix Columns( 1 ),
Cross Validate by Excluded Rows( 1 )
)
数据混合和清理预测建模和机器学习