|
@@ -1,6 +1,7 @@
|
|
|
package com.tzld.piaoquan.ad.engine.service.predict.model.threshold;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.tzld.piaoquan.ad.engine.commons.util.DateUtils;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.util.JSONUtils;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.RandWContainer;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
|
|
@@ -27,14 +28,21 @@ public class RandomPredict667Model extends ThresholdPredictModel {
|
|
|
hash = hash < 0 ? -hash : hash;
|
|
|
double score = (hash + RandWContainer.getRandW()) % 100 / 100d;
|
|
|
|
|
|
- String thresholdParamKey = modelParam.getAppType() + "_" + modelParam.getUserExtraFuture("shareType").toString().replace("return", "").replace("mids", "");
|
|
|
+ String keySuffix = modelParam.getUserExtraFuture("shareType").toString()
|
|
|
+ .replace("return", "")
|
|
|
+ .replace("mids", "");
|
|
|
|
|
|
- double threshold = Double.parseDouble(modelParam.getExtraParam().getOrDefault(thresholdParamKey, -1).toString());
|
|
|
+ Integer appType = modelParam.getAppType();
|
|
|
+ String thresholdParamKey = appType + "_" + keySuffix;
|
|
|
|
|
|
+ double threshold = Double.parseDouble(modelParam.getExtraParam().getOrDefault(thresholdParamKey, -1).toString());
|
|
|
if (threshold < 0d) {
|
|
|
- thresholdParamKey = "default_threshold";
|
|
|
- threshold = Double.parseDouble(modelParam.getExtraParam().getOrDefault(thresholdParamKey, "0.5").toString());
|
|
|
+ thresholdParamKey = "default_" + keySuffix;
|
|
|
+ threshold = Double.parseDouble(modelParam.getExtraParam().getOrDefault(thresholdParamKey, "-1").toString());
|
|
|
}
|
|
|
+ double correction = Double.parseDouble(modelParam.getExtraParam().getOrDefault("E620_" + appType + "_" + DateUtils.getCurrentHour(), 1).toString());
|
|
|
+ threshold = threshold * correction;
|
|
|
+
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
result.put("ad_predict", score < threshold ? 2 : 1);
|
|
|
result.put("score", score);
|
|
@@ -51,7 +59,6 @@ public class RandomPredict667Model extends ThresholdPredictModel {
|
|
|
logJson.put("abCode", modelParam.getAbTestCode());
|
|
|
logJson.put("extraParam", modelParam.getExtraParam());
|
|
|
logJson.put("shareType", modelParam.getUserExtraFuture("shareType").toString());
|
|
|
- logJson.putAll(result);
|
|
|
|
|
|
log.info("广告跳出选择 -- 667实验结果: {}, 参数: {}",
|
|
|
JSONUtils.toJson(result), logJson.toJSONString());
|