import pandas as pd
from scipy.optimize import fmin
data = pd.DataFrame({'DIV': [1,2,3]*3,
'MONTH': ['May','May','May','June','June','Jun','Jul','Jul','Jul'],
'C':[8]*9,
'U':[3,2,1]*3,
'S':[9]*9})
data.to_csv(r'C:\Users\mbabski\Documents\Unit Plan Summer 2016\data_test.csv')
def return_array(x):
return x.values
def mape(c,u,s,r): #returns an array of line level Mean Absolute Percentage Errors
p = c + u * r
m = abs(1.0-(p/s))
return m
def e(c,u,s,r): #calculates average of the MAPEs
return np.mean(mape(c,u,s,r))
for d in range(1,4):
div_data = data[data.DIV==d]
c = return_array(div_data.C)
u = return_array(div_data.U)
s = return_array(div_data.S)
r0 = [[1.0]]
t = fmin(e,r0,args=(c,u,s))
print 'r:',t
Оптимизация завершена успешно.
Текущее значение функции: 0.000000
Повторы: 29
Функциональные оценки: 58
г: [. -69]
Оптимизация успешно завершена.
Текущее значение функции: 0.000000
Повторы: 29
Функциональные оценки: 58
г: [. -70]
Оптимизация успешно завершена.
Текущее значение функции: 0.000000
Повторы: 29
Функциональные оценки: 58
г:
Почему я получаю неправильные результаты от scipy.optimize.fmin?
Почему я получаю г = -69, -70 и -71 [-71.]? Я должен получать r = 0.333, 0.555 и 0.999 с этими данными.
ти; ; Я работала так тяжело на это! – Mateyobi