大家好,
我正在使用jsl在應用程序中編碼(是的,我知道我可以創建一個儀表板來做到這一點:))我正在使用代理人。到目前為止,它的工作方式是我手動嘗試不同類型的代理(例如逐步,NN,多項式等),並根據我的R2和其他可用指標,我決定為我的分析的每個因變量選擇哪一個。我的問題是:是否有一種較少的手動方式讓JMP自動創建代理,嘗試不同的類型並保持最準確的適合而不是我繼續並手動創建不同的類型並選擇?
謝謝,
伊娃
你好伊娃,
請看下面的例子:
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
neural_fits = Neural(
Y( :chas ),
X( :crim, :indus, :nox, :rooms, :age, :distance, :radial ),
);
// =========== You need to modify the above for your specific problem
min_neurons = 5;
max_neurons = 10;
r2_list = {};
For( i=min_neurons, i<=max_neurons, i++,
neural_fits << Fit( NTanH( i ) )
);
For( i=1, i<=(max_neurons-min_neurons+1), i++,
r2_list = Insert( r2_list, ( neural_fits << ( Fit[i] << Get RSquare Validation ) )[1] )
);
best_r2_fit = Loc Max( Matrix( r2_list ) );
For( i=(max_neurons-min_neurons+1), i>=1, i--, // must be backwards because the fit numbers shift as you remove them
If( i != best_r2_fit,
neural_fits << ( Fit[i] << Remove Fit )
)
);該腳本創建6個不同的神經模型,並根據驗證R2做出選擇。在這里和那裡插入一些“show”語句,看看發生了什麼。
當您將此擴展到其他方法時,您必須找到他們的特定命令來提取R2信息(或您想要使用的任何指標)。這是神經平台特有的。如果你想改變其他類型的激活函數的數量或進入提升等,你可以把更複雜的邏輯放在一起。
希望這有幫助,如果您有其他問題,請告訴我。