def choose_best_lag(seq, pre_period, lags = range(1,30)):
"""
????lazzy model,?????
???(?????????)
"""
models = []
# ???
std_sca = StandardScaler().fit(np.array(seq).reshape(-1,1))
seq = std_sca.transform(np.array(seq).reshape(-1,1))
# ????????????,???????
from sklearn.model_selection import train_test_split
for input_lag in lags:
# window = input_lag + pre_period
X, Y = create_dataset(seq.flatten(), input_lag, pre_period)
# do more cv
# for state in range(0,3):
err = 0.0
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.01, random_state=0)
for lag in lags:
hidden = (lag + pre_period + 3)/2
reg = MLPRegressor(activation = 'relu',hidden_layer_sizes = (hidden,),
max_iter=10000,learning_rate='adaptive',
tol=0.0,warm_start=True,solver='adam')
reg.fit(X_train,y_train)
y_pred = reg.predict(X_test)
err += err_evaluation(y_pred,y_test)
models.append((err/len(X_test),lag))
models.sort()
best_lag = models[0][1]
return models, best_lag
# df for dataframe, s for series
评论列表
文章目录