【发布时间】:2016-11-01 20:29:00
【问题描述】:
我正在尝试通过选择正确的“退出率”(r) 来最小化预测误差。我对 Pandas 还是很陌生,对 SciPy 还是很陌生。请帮忙!
import pandas as pd
from scipy.optimize import fmin
data = pd.DataFrame({'Division': [1,2,3]*3,
'Month': ['May','May','May','June','June','Jun','Jul','Jul','Jul'],
'Definite_Units':[8]*9,
'Maybe_Units':[3,2,1]*3,
'Actually_Shipped_Units':[9]*9})
p = lambda r,x,y: x+y*r
e = lambda r,x,y,z: abs(1-(p(x,y,r)/z))
x = div_data['Definite_Units'].sum
y = div_data['Maybe_Units'].sum
z = div_data['Actually_Shipped_Units'].sum
for d in range(1,4):
r0 = 1
div_data = data['Division']=d
x = div_data['Definite_Units'].sum()
y = div_data['Maybe_Units'].sum()
z = div_data['Actually_Shipped_Units'].sum()
t = fmin(e,r0,args=(x,y,z))
print d, t
我希望每个部门都有一个 r 来最小化 e。
所以在这种情况下,我的输出应该是:
- 第 1 部分:r = 0.33,e = 0
- 第 2 部分:r = 0.50,e = 0
- 第 3 部分:r = 1.00,e = 0
【问题讨论】:
-
那么问题是什么...
-
@sascha 我如何设置它以获得最小化 e 的每个部门的 r?
-
我现在明白 fmin 要求 args 在一个数组中,我正在努力。
-
@sascha 我在我的代码上做了很多工作并在这里发布了一个新问题:stackoverflow.com/questions/38152316/…
标签: python python-2.7 scipy