def choose_best_lag(seq, pre_period, lags = range(1,30), Kmax = 200):
"""
????lazzy model,?????
"""
models = []
# ???
std_sca = StandardScaler().fit(np.array(seq).reshape(-1,1))
# rob_sca = RobustScaler().fit(np.array(seq).reshape(-1,1))
seq = std_sca.transform(np.array(seq).reshape(-1,1))
# ????????????,???????
for input_lag in lags:
# window = input_lag + pre_period
X, Y = create_dataset(seq.flatten(), input_lag, pre_period)
lazzy_models = lazzy_loo(X[-1], X[0:-1], Y[:-1], Kmax)
y_pred = lazzy_prediction(X[-1], X[0:-1], Y[:-1], lazzy_models)
err = err_evaluation(y_pred, Y[-1])
lazzy_models.sort()
models.append((err, input_lag, lazzy_models[0][1] ))
models.sort()
best_lag = models[0][1]
best_k = models[0][2]
return models, best_lag, best_k
评论列表
文章目录