|
@@ -63,7 +63,7 @@ def forecast_data_distribution(pre_data,args):
|
|
|
def model_prediction(df,args):
|
|
|
if 'is_limit' in df.columns:
|
|
|
df = df[df['is_limit'] == False]
|
|
|
- features, time_steps, col_time, model_name,col_reserve = str_to_list(args['features']), int(args['time_steps']),args['col_time'],args['model_name'],str_to_list(args['col_reserve'])
|
|
|
+ features, time_steps, col_time, model_name,col_reserve,howlongago = str_to_list(args['features']), int(args['time_steps']),args['col_time'],args['model_name'],str_to_list(args['col_reserve']),int(args['howlongago'])
|
|
|
feature_scaler,target_scaler = get_scaler_model_from_mongo(args)
|
|
|
df = df.sort_values(by=col_time).fillna(method='ffill').fillna(method='bfill')
|
|
|
scaled_features = feature_scaler.transform(df[features])
|
|
@@ -72,12 +72,14 @@ def model_prediction(df,args):
|
|
|
# model = load_model(f'{farmId}_model.h5', custom_objects={'rmse': rmse})
|
|
|
model = get_h5_model_from_mongo(args)
|
|
|
y_predict = list(chain.from_iterable(target_scaler.inverse_transform([model.predict(X_predict).flatten()])))
|
|
|
+
|
|
|
result = df[-len(y_predict):]
|
|
|
result['predict'] = y_predict
|
|
|
result.loc[result['predict'] < 0, 'predict'] = 0
|
|
|
result['model'] = model_name
|
|
|
- features_reserve = col_reserve + ['model', 'predict']
|
|
|
- return result[set(features_reserve)]
|
|
|
+ result['howlongago'] = howlongago
|
|
|
+ features_reserve = col_reserve + ['model', 'predict', 'howlongago']
|
|
|
+ return result[list(set(features_reserve))]
|
|
|
|
|
|
|
|
|
@app.route('/model_prediction_lstm', methods=['POST'])
|