使用自定义分析器自动(脚本)优化“每一行”您好,我有一位客户@Solvay 使用自定义分析器。
他的目标是遍历性能低于规格的每一行,获取因子值,锁定他无法控制的因子并使用他可以控制的因子优化性能,然后保存新设置和预期性能。
这可以手动完成,但不幸的是日志没有保存相应的代码。
由于他有一个很大的数据表,他希望编写该过程的脚本以使其自动化。
有谁知道对应的代码吗?
注意:我想这应该会在接下来的几天内出现在 JMP 社区中。
以马内利
回复:使用自定义分析器自动(脚本)优化“每一行”谢谢你们俩 :)
回复:使用自定义分析器自动(脚本)优化“每一行”我正在考虑做类似的事情。
Names Default To Here( 1 );
// comment out the nexct line if the script is pasted into a table
dt = Open( "AutoProfiler Tiretread.jmp" );
// uncomment the next line if the script is pasted into a table
//dt=current data table();
//This is where your profiler script goes
obj = dt << Profiler(
Y(
:Pred Formula ABRASION,
:Pred Formula MODULUS,
:Pred Formula ELONG,
:Pred Formula HARDNESS
),
Profiler(
1,
Term Value(
SILICA( 1.25, Lock( 0 ), Show( 1 ) ),
SILANE( 50, Lock( 0 ), Show( 1 ) ),
SULFUR( 2.25, Lock( 0 ), Show( 1 ) )
),
Simulator(
1,
Factors(
SILICA << Random( Normal( 1.25, 0.3266 ) ),
SILANE << Random( Normal( 50, 6.532 ) ),
SULFUR << Random( Normal( 2.25, 0.3266 ) )
),
Automatic Histogram Update( 1 )
)
)
);
//your profiler goes above here
obj << Simulator( 1 );
obj2 = obj << Get Simulator;
obj2 << Automatic Histogram Update( 1 );
For( i = 1, i <= N Rows( dt ), i++,
obj << Set to Data in Row( i );
obj << Remember Settings(Column(1)[i]); //"Column(1)[i]" is the firtst column of the table, ith row
);//end of for loop
obj<<DISPATCH></DISPATCH>
它运行探查器并保存表中所有行的设置。 您的客户必须对缺陷行进行子集化,然后运行这样的脚本。

回复:使用自定义分析器自动(脚本)优化“每一行”除了(除了?)嵌套循环和使用“最大化并记住”之外,还有可以探索的“最大化每个网格点”消息。
回复:使用自定义分析器自动(脚本)优化“每一行”这是一个通过仅锁定一个变量来完成此操作的脚本。 要逐步锁定多个变量,您需要嵌套更多 For 循环:
dt = open ("$SAMPLE_DATA\Body Fat.jmp");
dt << New Column ("Formula", Set Formula (109.665262588823 + 0.329339426252964 * :"Weight (lbs)"n +
-1.47623913006859 * :"Height (inches)"n + -0.492211525467987 *
:"Neck circumference (cm)"n + -1.41262250197006 *
:"Wrist circumference (cm)"n + (:"Height (inches)"n
-70.1488095238095) * ((:"Height (inches)"n - 70.1488095238095) *
-0.0306978267773712) + (:"Height (inches)"n - 70.1488095238095) * ((
:"Neck circumference (cm)"n - 37.9920634920635) * -0.121564139238233)
+ (:"Neck circumference (cm)"n - 37.9920634920635) * ((
:"Neck circumference (cm)"n - 37.9920634920635) * -0.127296845579246)));
dt:Formula << Set Property ("Response Limits", {Goal( Match Target ), Lower (20, .05), Middle (25, 1), Upper (30, .05)});
prof = dt << Profiler ( Y(:Formula));
for (i = 60, i <= 74, i++,
prof << Term Value ("Height (inches)" (i, Lock (1)) );
prof << Maximize and Remember;
);