【发布时间】:2017-09-15 23:50:31
【问题描述】:
我有一个模型方程,我们称之为 eq_m:
我知道我的数据集如下,我正在尝试将我的数据拟合到 eq_m 以便我可以使用拟合的参数来预测新数据。
但是这个 eq_m 是非线性的,因此我使用 scipy 的 curve_fit 来获取 lambda、mu、sigma 参数值,使用以下 sn-p:
opt_parms, parm_cov = o.curve_fit(eq_m, x, y,maxfev=50000)
lamb , mu, sigm = opt_parms
我在所有应该遵循这个模型的各种数据组上运行这个模型,55/60 给了我很好的结果,但是剩下的 5 个组是高度过度拟合的,并且预测的参数具有很高的正值。有没有办法可以使用 scipy/numpy 或 scikit-learn 规范曲线拟合并惩罚高幅度参数值?
我的主管建议使用共轭先验,但我不知道该怎么做。
谁能帮我解决这个问题?如果我必须提供一个猜测来解决这个问题,有人可以告诉我如何计算这些猜测吗?
【问题讨论】:
标签: python scipy scikit-learn curve-fitting non-linear-regression