Преглед на файлове

V2版本更新,去除掉推荐商户数量和投放量参数,新增核心商户列表进入推荐计算

Sherlock преди 1 седмица
родител
ревизия
5553454f86
променени са 2 файла, в които са добавени 5 реда и са изтрити 4 реда
  1. 3 3
      api_test.py
  2. 2 1
      models/item2vec/inference.py

+ 3 - 3
api_test.py

@@ -4,9 +4,9 @@ import json
 url = "http://127.0.0.1:7960/brandcultivation/api/v1/recommend"
 payload = {
     "city_uuid": "00000000000000000000000011445301",
-    "product_code": "310101",
-    "cust_code_list": ["445300108802", "445300108803"],
-    "cultivacation_id": "10000001",
+    "product_code": "700239",
+    "cust_code_list": ["445300108802", "445300108803", "445300104219"],
+    "cultivacation_id": "10000003",
     "limit_cycle_name": "202606W1(06.01-06.07)"
 }
 headers = {'Content-Type': 'application/json'}

+ 2 - 1
models/item2vec/inference.py

@@ -78,7 +78,8 @@ class Item2VecModel:
 
         # 对销量进行归一化:先 log1p 压缩幂律分布的长尾,再 StandardScaler + sigmoid
         # 不做 log 变换时,头部商户 z-score 过大会导致 sigmoid 饱和,分数全为 100
-        log_qty = np.log1p(recommend_cust["sale_qty"].values).reshape(-1, 1)
+        sale_qty_values = recommend_cust["sale_qty"].fillna(0).astype(float).values
+        log_qty = np.log1p(sale_qty_values).reshape(-1, 1)
         scaler = StandardScaler()
         normalized = scaler.fit_transform(log_qty)
         recommend_cust["recommend_score"] = ((1 / (1 + np.exp(-normalized))) * 100).flatten()