我使用Multipolyfit函数创建具有3个独立变量(trivariate quadratic)的二度函数。代码如下
data=numpy.loadtxt("file.txt")
hour=data[:,3]
day=data[:,4]
temp=data[:,5]
load=data[:,6]
a=multipolyfit.multipolyfit(numpy.vstack((hour,day,temp)).T, load, 2)
print a
日,临时和负载是自变量。负载是我试图预测的变量。 输出似乎是我的三元二次方的8个系数的列表。
[ 27011. 771. 5462. -394. -29. -83. 10. -804. 9. 1]
上述系数的顺序是什么?
答案 0 :(得分:0)
Multipolyfit的记录很少。作者甚至在他们的github自述文件中提到了以下内容:
我很少回答有关此存储库的问题。它很奇怪,但实现非常密集,所以这个项目产生了大量合理的问题。不幸的是,我没有时间回应所有这些。
如果它包含一个有用的算法,我会更关心这个项目。它没有。
幸运的是,对我们来说,整个代码不到一百行,很容易导航。它产生系数幂的排列:
[[2 0 0 0]
[1 1 0 0]
[1 0 1 0]
[1 0 0 1]
[0 2 0 0]
[0 1 1 0]
[0 1 0 1]
[0 0 2 0]
[0 0 1 1]
[0 0 0 2]]
其中列分别对应于[1,小时,日,温度]的幂。因此,对于您的系数,您得到27011*(1**2) + 771*(1**1 * hour**1) + ...
。您可以通过设置关键字参数powers_out=True
:
>>> a,powers=multipolyfit.multipolyfit(numpy.vstack((hour,day,temp)).T,
load, 2, powers_out=True)
[array([2, 0, 0, 0]), array([1, 1, 0, 0]), array([1, 0, 1, 0]), array([1, 0, 0, 1]), array([0, 2, 0, 0]), array([0, 1, 1, 0]), array([0, 1, 0, 1]), array([0, 0, 2, 0]), array([0, 0, 1, 1]), array([0, 0, 0, 2])]