Open HaoLi111 opened 1 year ago
But then If we change the previous block to
def fit_exp_smo_model(train_data, params):
(t, d, s, sp, u) = params
model = ExponentialSmoothing(train_data, trend = t, damped = d, seasonal = s, seasonal_periods = sp, use_boxcox = u)
model_fit = model.fit(optimized = True)
return model_fit
Then we have
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-28-d7948105976f> in <module>
10 count = 0
11 params = (t, d, s, sp, u)
---> 12 model = fit_exp_smo_model(train_df["spx_ret"][1:], params)
13
14 model_predictions = model.predict(start = test_df.index[0], end = test_df.index[-1])
<ipython-input-27-4a05bacdb636> in fit_exp_smo_model(train_data, params)
1 def fit_exp_smo_model(train_data, params):
2 (t, d, s, sp, u) = params
----> 3 model = ExponentialSmoothing(train_data, trend = t, damped = d, seasonal = s, seasonal_periods = sp, use_boxcox = u)
4 model_fit = model.fit(optimized = True)
5 return model_fit
~/anaconda3/envs/torch/lib/python3.7/site-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
205 else:
206 kwargs[new_arg_name] = new_arg_value
--> 207 return func(*args, **kwargs)
208
209 return cast(F, wrapper)
~/anaconda3/envs/torch/lib/python3.7/site-packages/statsmodels/tsa/holtwinters/model.py in __init__(self, endog, trend, damped_trend, seasonal, seasonal_periods, initialization_method, initial_level, initial_trend, initial_seasonal, use_boxcox, bounds, dates, freq, missing)
289 self._use_boxcox = use_boxcox
290 self._lambda = np.nan
--> 291 self._y = self._boxcox()
292 self._initialize()
293 self._fixed_parameters = {}
~/anaconda3/envs/torch/lib/python3.7/site-packages/statsmodels/tsa/holtwinters/model.py in _boxcox(self)
335 y = boxcox(self._y, self._use_boxcox)
336 else:
--> 337 raise TypeError("use_boxcox must be True, False or a float.")
338 return y
339
TypeError: use_boxcox must be True, False or a float.
So I haven;t been able to fix it. Also its error message is different from what is written in the previous markdown block, on what options we have for this block. may be we should have an if structure to detect if the input is a string or float or boolean and parse into different function calls? Or maybe just use GridSearch with scikitlearn(if it is possible to cooporate it in that way)
I think it should be (I am not very sure)