使用自訂分析器自動(腳本)優化“每一行”您好,我有一位客戶@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;
);