大家好,
我正在使用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信息(或您想要使用的任何指标)。这是神经平台特有的。如果你想改变其他类型的激活函数的数量或进入提升等,你可以把更复杂的逻辑放在一起。
希望这有帮助,如果您有其他问题,请告诉我。