如何确定哪个回归曲线更适合?python

2024-05-19 07:56:49 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,社区:

最近我问过如何做指数回归(Exponential regression function Python),认为对于那个数据集,最佳回归是双曲型的。在

x_data = np.arange(0, 51) 
y_data = np.array([0.001, 0.199, 0.394, 0.556, 0.797, 0.891, 1.171, 1.128, 1.437, 
          1.525, 1.720, 1.703, 1.895, 2.003, 2.108, 2.408, 2.424,2.537, 
          2.647, 2.740, 2.957, 2.58, 3.156, 3.051, 3.043, 3.353, 3.400, 
          3.606, 3.659, 3.671, 3.750, 3.827, 3.902, 3.976, 4.048, 4.018, 
          4.286, 4.353, 4.418, 4.382, 4.444, 4.485, 4.465, 4.600, 4.681, 
          4.737, 4.792, 4.845, 4.909, 4.919, 5.100])

现在,我怀疑:

Exponential

Hyperbolic

第一种是指数拟合。第二种是双曲型。我不知道哪个更好。。。如何确定?我应该遵循哪些标准?有什么python函数吗?在

提前谢谢!在


Tags: 数据函数data标准npfunction双曲指数
3条回答

一个常见的拟合统计量是R平方(R2),它可以计算为“R2=1.0-(绝对误差方差/相依数据方差)”,它告诉你模型解释了相依数据方差的哪一部分。例如,如果R平方值为0.95,那么您的模型解释了95%的相关数据方差。由于您使用的是numpy,R平方值通常计算为“R2=1.0-(abs)”_误差变量()/部门_数据.var())”因为numpy数组有一个var()方法来计算方差。将数据拟合到Michaelis-Menten方程“y=ax/(b+x)”,参数值为a=1.0232217656373191E+01和b=5.2016057362771100E+01时,我计算出的R平方值为0.9967,这意味着“y”数据中99.67%的方差由该模型解释。然而,没有银弹,它总是很好的验证其他拟合统计和视觉检查模型。以下是我使用的示例的图: model.png

你可以取函数和拟合线之间的2-范数。Python有一个函数np.linalg.normR平方值用于线性回归。在

好吧,你应该计算一个误差函数来衡量你的拟合程度。您可以使用许多不同的错误函数,但是从一开始,均方误差应该是有效的(如果您对进一步的度量感兴趣,请看一下http://scikit-learn.org/stable/modules/model_evaluation.html)。在

一旦确定了回归问题的系数,就可以手动实现均方误差:

from sklearn.metrics import mean_squared_error
f = lambda x: a * np.exp(b * x) + c 
mse = mean_squared_error(y_data, f(x_data))

相关问题 更多 >

    热门问题