And*_*rew 5 python machine-learning scikit-learn data-science
我正在尝试使用GaussianProcessRegressor 作为 scikit-learn 0.18.1 的一部分
我正在训练 200 个数据点,并为我的内核使用 13 个输入特征 - 一个常数乘以具有十二个元素的径向基函数。该模型运行时没有任何抱怨,但如果我多次运行相同的脚本,我会注意到有时会得到不同的解决方案。可能值得注意的是,一些优化的参数正在运行到我提供的范围内(我目前正在研究哪些功能很重要)。
我尝试将参数n_restarts_optimizer增加到 50,虽然这需要更长的时间来运行,但并没有消除明显的随机性元素。虽然我没有运气,但似乎可以更改优化器本身。从快速扫描来看,语法上最相似的是 scipy's fmin_tncand fmin_slsqp(其他优化器不包括边界)。但是,使用其中任何一个都会导致其他问题:例如,fmin_tnc不会返回目标函数的最小值。
关于如何拥有更具确定性的脚本有什么建议吗?理想情况下,无论迭代如何,我都希望它打印相同的值,因为就目前而言,它感觉有点像彩票(因此得出任何结论都是有问题的)。
我正在使用的代码片段:
from sklearn.gaussian_process import GaussianProcessRegressor as GPR
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
lbound = 1e-2
rbound = 1e1
n_restarts = 50
n_features = 12 # Actually determined elsewhere in the code
kernel = C(1.0, (lbound,rbound)) * RBF(n_features*[10], (lbound,rbound))
gp = GPR(kernel=kernel, n_restarts_optimizer=n_restarts)
gp.fit(train_input, train_outputs)
test_model, sigma2_pred = gp.predict(test_input, return_std=True)
print gp.kernel_
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1953 次 |
| 最近记录: |