def compute_loss(input_compute_loss):
Model = input_compute_loss["Model"]
config = input_compute_loss["config"]
X_train = input_compute_loss["X_train"]
y_train = input_compute_loss["y_train"]
dates_train = input_compute_loss["dates_train"]
X_test = input_compute_loss["X_test"]
y_test = input_compute_loss["y_test"]
is_y_log = input_compute_loss["is_y_log"]
is_boxcox = input_compute_loss["is_boxcox"]
loss_func = input_compute_loss["loss_func"]
model = Model(**config)
if hasattr(model ,"dates_train"):
model.dates_train = dates_train
if is_y_log:
model.fit(X_train, np.log(y_train))
predict_y_test = np.exp(model.predict(X_test))
elif is_boxcox:
model.fit(X_train, boxcox(y_train, boxcox_lambda))
predict_y_test = invboxcox(model.predict(X_test), boxcox_lambda)
else:
model.fit(X_train, y_train)
predict_y_test = model.predict(X_test)
if loss_func is None:
loss = mape_loss(y_test, predict_y_test)
else:
loss = loss_func(y_test, predict_y_test)
return (repr(config), config, loss)
评论列表
文章目录