Ver Fonte

更改增加howlongago

anweiguo há 1 mês atrás
pai
commit
2772a22b52

+ 3 - 2
models_processing/model_predict/model_prediction_bp.py

@@ -12,7 +12,7 @@ app = Flask('model_prediction_bp——service')
 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])
@@ -21,11 +21,12 @@ 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(scaled_features).flatten()])))
+    result['howlongago'] = howlongago
     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']
+    features_reserve = col_reserve + ['model', 'predict', 'howlongago']
     return result[set(features_reserve)]
 
 

+ 3 - 2
models_processing/model_predict/model_prediction_lightgbm.py

@@ -73,7 +73,7 @@ def forecast_data_distribution(pre_data,args):
 
 
 def model_prediction(df,args):
-    mongodb_connection,mongodb_database,mongodb_model_table,model_name,col_reserve = "mongodb://root:sdhjfREWFWEF23e@192.168.1.43:30000/",args['mongodb_database'],args['mongodb_model_table'],args['model_name'],str_to_list(args['col_reserve'])
+    mongodb_connection,mongodb_database,mongodb_model_table,model_name,col_reserve,howlongago = "mongodb://root:sdhjfREWFWEF23e@192.168.1.43:30000/",args['mongodb_database'],args['mongodb_model_table'],args['model_name'],str_to_list(args['col_reserve']),int(args['howlongago'])
     client = MongoClient(mongodb_connection)
     db = client[mongodb_database]
     collection = db[mongodb_model_table]
@@ -88,8 +88,9 @@ def model_prediction(df,args):
         df['predict'] = model.predict(df[model.feature_name()])
         df.loc[df['predict']<0,'predict']=0
         df['model'] = model_name
+        df['howlongago'] = howlongago
         print("model predict result  successfully!")
-    features_reserve = col_reserve + ['model','predict']
+    features_reserve = col_reserve + ['model', 'predict', 'howlongago']
     return df[set(features_reserve)]
 
 

+ 3 - 2
models_processing/model_predict/model_prediction_lstm.py

@@ -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'])
     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,11 +72,12 @@ 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['howlongago'] = howlongago
     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']
+    features_reserve = col_reserve + ['model', 'predict', 'howlongago']
     return result[set(features_reserve)]