浏览代码

add 607实验模型

gufengshou1 1 年之前
父节点
当前提交
525c415d32

+ 9 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/impl/PredictModelServiceImpl.java

@@ -56,6 +56,9 @@ public class PredictModelServiceImpl implements PredictModelService {
     @Value("${ad.predict.share0.exp.code:000}")
     private String adPredictNoShareUserExpCode;
 
+    @Value("${ad.predict.immersion.exp.code:607}")
+    private String adPredictImmersionExpCode;
+
     @Value("${ad.predict.param.testIds:0}")
     private String testIds;
     @Value("${ad.predict.without.ad.video_ids:0}")
@@ -212,6 +215,12 @@ public class PredictModelServiceImpl implements PredictModelService {
                     .predict(modelParam);
         } else if(expCodes.contains("599")){
 //        if(randomModelExpCode!=null){
+//            modelParam.addUserExtraFuture("randomModelKey",ExpCodeEnum.valueOfExpCode(randomModelExpCode).getRandomModelKey());
+            result = ThresholdModelContainer.
+                    getThresholdPredictModel("random")
+                    .predict(modelParam);
+        }else if(expCodes.contains(adPredictImmersionExpCode)){
+//        if(randomModelExpCode!=null){
 //            modelParam.addUserExtraFuture("randomModelKey",ExpCodeEnum.valueOfExpCode(randomModelExpCode).getRandomModelKey());
             result = ThresholdModelContainer.
                     getThresholdPredictModel("random")

+ 44 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/model/threshold/RandomImmersionPredictModel.java

@@ -0,0 +1,44 @@
+package com.tzld.piaoquan.ad.engine.service.predict.model.threshold;
+
+import com.tzld.piaoquan.ad.engine.service.predict.container.RandWContainer;
+import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class RandomImmersionPredictModel extends ThresholdPredictModel {
+    private final static Logger log = LoggerFactory.getLogger(RandomImmersionPredictModel.class);
+
+    @Override
+    String initName() {
+        return "immersion";
+    }
+
+
+    @Override
+    public Map<String, Object> predict(ThresholdPredictModelParam modelParam) {
+        int hash=modelParam.getMid().hashCode();
+        hash=hash<0?-hash:hash;
+        double score=(hash+ RandWContainer.getRandW())%100/100d;
+        double threshold=Double.parseDouble(
+                modelParam.getExtraParam().getOrDefault(modelParam.getAppType()+"_"+modelParam.getUserExtraFuture("shareType").toString().replace("return","").replace("mids",""),-1
+                ).toString());
+        if(threshold<0d){
+            threshold=Double.parseDouble(
+                    modelParam.getExtraParam().getOrDefault("default_threshold","0.5")
+                    .toString());
+        }
+        Map<String, Object> result = new HashMap<>();
+        result.put("ad_predict", score<threshold?2:1);
+        result.put("score", score);
+        result.put("threshold", threshold);
+        result.put("model", "random");
+
+        return result;
+    }
+
+}