0

我正在尝试将逻辑回归模型拟合到具有多个测量值的数据集。当我通过 CurveFit、Lmfit StepModel/Model 输入数据时,我得到的最佳拟合曲线数量与测量集的数量相同,而不是一个模型最适合整个数据集。有没有办法获得单个输出?

为简单起见,这是我的 Step-like 模型的代码。我正在查看前 500 行数据,以便获得一个不那么混乱的数字。x 数据是整数形式的时间步长,范围在 0 到 20 之间,对应于 y 数据中的气体水平(从 -200 到 15000 的任意位置)。

from lmfit.models import StepModel
step_mod = StepModel(form='logistic')
pars = step_mod.make_params(amplitude=15000,center=10,sigma=20)

n=500
x = xdata.head(n)
y = ydata.head(n)

out = step_mod.fit(y, pars, x=x)

plt.plot(x, y, 'b.')
plt.plot(x, out.init_fit, 'k--', label='initial fit')
plt.plot(x, out.best_fit, 'r-', label='best fit')
plt.legend(loc='best')
plt.show()

结果图。我想要所有蓝色数据点的一条红线。 结果图。 我想要所有蓝色数据点的一条红线。

有没有办法做到这一点?看起来应该是多元逻辑回归,但我可以在网上找到任何信息。我也很困惑为什么它不能将数据大小与输出大小分开处理。任何帮助,将不胜感激!

4

0 回答 0