|
@@ -70,9 +70,33 @@ def get_features_importance(args):
|
|
|
print("暂无该城市的模型,请先进行模型训练")
|
|
print("暂无该城市的模型,请先进行模型训练")
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
- # 加载模型
|
|
|
|
|
- model = GbdtLrModel(os.path.join(model_dir, args.model_name))
|
|
|
|
|
- cust_features_importance, product_features_importance = model.generate_feats_importance()
|
|
|
|
|
|
|
+ # # 加载模型
|
|
|
|
|
+ # model = GbdtLrModel(os.path.join(model_dir, args.model_name))
|
|
|
|
|
+ # cust_features_importance, product_features_importance = model.generate_feats_importance()
|
|
|
|
|
+
|
|
|
|
|
+ # # 将字典列表转换为 DataFrame
|
|
|
|
|
+ # cust_df = pd.DataFrame([
|
|
|
|
|
+ # {"Features": list(item.keys())[0], "Importance": list(item.values())[0]}
|
|
|
|
|
+ # for item in cust_features_importance
|
|
|
|
|
+ # ])
|
|
|
|
|
+
|
|
|
|
|
+ # product_df = pd.DataFrame([
|
|
|
|
|
+ # {"Features": list(item.keys())[0], "Importance": list(item.values())[0]}
|
|
|
|
|
+ # for item in product_features_importance
|
|
|
|
|
+ # ])
|
|
|
|
|
+
|
|
|
|
|
+ # cust_file_path = os.path.join(model_dir, "cust_features_importance.csv")
|
|
|
|
|
+ # product_file_path = os.path.join(model_dir, "product_features_importance.csv")
|
|
|
|
|
+ # cust_df.to_csv(cust_file_path, index=False, encoding='utf-8')
|
|
|
|
|
+ # product_df.to_csv(product_file_path, index=False, encoding='utf-8')
|
|
|
|
|
+
|
|
|
|
|
+ get_features_importance_by_model(model_dir, "ori_model")
|
|
|
|
|
+ get_features_importance_by_model(model_dir, "pos_model")
|
|
|
|
|
+ get_features_importance_by_model(model_dir, "shopping_model")
|
|
|
|
|
+
|
|
|
|
|
+def get_features_importance_by_model(model_dir, modelname):
|
|
|
|
|
+ model = GbdtLrModel(os.path.join(model_dir, f"{modelname}.pkl"))
|
|
|
|
|
+ cust_features_importance, product_features_importance, order_features_importance = model.generate_feats_importance()
|
|
|
|
|
|
|
|
# 将字典列表转换为 DataFrame
|
|
# 将字典列表转换为 DataFrame
|
|
|
cust_df = pd.DataFrame([
|
|
cust_df = pd.DataFrame([
|
|
@@ -85,10 +109,29 @@ def get_features_importance(args):
|
|
|
for item in product_features_importance
|
|
for item in product_features_importance
|
|
|
])
|
|
])
|
|
|
|
|
|
|
|
- cust_file_path = os.path.join(model_dir, "cust_features_importance.csv")
|
|
|
|
|
- product_file_path = os.path.join(model_dir, "product_features_importance.csv")
|
|
|
|
|
|
|
+ order_df = pd.DataFrame([
|
|
|
|
|
+ {"Features": list(item.keys())[0], "Importance": list(item.values())[0]}
|
|
|
|
|
+ for item in order_features_importance
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ importance_dir = os.path.join(model_dir, "importance")
|
|
|
|
|
+ if modelname == 'ori_model':
|
|
|
|
|
+ importance_dir = os.path.join(importance_dir, "ori")
|
|
|
|
|
+ elif modelname == 'pos_model':
|
|
|
|
|
+ importance_dir = os.path.join(importance_dir, "pos")
|
|
|
|
|
+ elif modelname == 'shopping_model':
|
|
|
|
|
+ importance_dir = os.path.join(importance_dir, "shopping")
|
|
|
|
|
+
|
|
|
|
|
+ if not os.path.exists(importance_dir):
|
|
|
|
|
+ os.makedirs(importance_dir)
|
|
|
|
|
+
|
|
|
|
|
+ cust_file_path = os.path.join(importance_dir, "cust_features_importance.csv")
|
|
|
|
|
+ product_file_path = os.path.join(importance_dir, "product_features_importance.csv")
|
|
|
|
|
+ order_file_path = os.path.join(importance_dir, "order_features_importance.csv")
|
|
|
|
|
+
|
|
|
cust_df.to_csv(cust_file_path, index=False, encoding='utf-8')
|
|
cust_df.to_csv(cust_file_path, index=False, encoding='utf-8')
|
|
|
product_df.to_csv(product_file_path, index=False, encoding='utf-8')
|
|
product_df.to_csv(product_file_path, index=False, encoding='utf-8')
|
|
|
|
|
+ order_df.to_csv(order_file_path, index=False, encoding='utf-8')
|
|
|
|
|
|
|
|
def run():
|
|
def run():
|
|
|
parser = argparse.ArgumentParser()
|
|
parser = argparse.ArgumentParser()
|