|
@@ -6,6 +6,7 @@ import com.tzld.piaoquan.ad.engine.commons.score.ScoreParam;
|
|
import com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils;
|
|
import com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils;
|
|
import com.tzld.piaoquan.ad.engine.commons.util.CommonCollectionUtils;
|
|
import com.tzld.piaoquan.ad.engine.commons.util.CommonCollectionUtils;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.PredictPidContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.PredictPidContainer;
|
|
|
|
+import com.tzld.piaoquan.ad.engine.service.predict.container.RandWContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.ThresholdModelContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.ThresholdModelContainer;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
|
|
import com.tzld.piaoquan.ad.engine.service.remote.FeatureRemoteService;
|
|
import com.tzld.piaoquan.ad.engine.service.remote.FeatureRemoteService;
|
|
@@ -18,12 +19,16 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Random;
|
|
import java.util.Random;
|
|
|
|
+import java.util.concurrent.Executors;
|
|
|
|
+import java.util.concurrent.ScheduledExecutorService;
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import static com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils.BREAK_CONFIG;
|
|
import static com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils.BREAK_CONFIG;
|
|
import static com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils.SHARE0_CONFIG;
|
|
import static com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils.SHARE0_CONFIG;
|
|
@@ -31,16 +36,13 @@ import static com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils.SHARE0_CONFI
|
|
@Component
|
|
@Component
|
|
public class NoShareUserThresholdPredictModel extends ThresholdPredictModel {
|
|
public class NoShareUserThresholdPredictModel extends ThresholdPredictModel {
|
|
private final static Logger log = LoggerFactory.getLogger(NoShareUserThresholdPredictModel.class);
|
|
private final static Logger log = LoggerFactory.getLogger(NoShareUserThresholdPredictModel.class);
|
|
- @Autowired
|
|
|
|
- private FeatureRemoteService featureRemoteService;
|
|
|
|
-
|
|
|
|
- Random random=new Random();
|
|
|
|
|
|
|
|
@Value("${ad.predict.threshold.share0:0.4}")
|
|
@Value("${ad.predict.threshold.share0:0.4}")
|
|
private double threshold;
|
|
private double threshold;
|
|
@Value("${ad.model.pid.type.share0:-1}")
|
|
@Value("${ad.model.pid.type.share0:-1}")
|
|
private double pidType;
|
|
private double pidType;
|
|
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
String initName() {
|
|
String initName() {
|
|
return "share0";
|
|
return "share0";
|
|
@@ -49,86 +51,13 @@ public class NoShareUserThresholdPredictModel extends ThresholdPredictModel {
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> predict(ThresholdPredictModelParam modelParam) {
|
|
public Map<String, Object> predict(ThresholdPredictModelParam modelParam) {
|
|
|
|
|
|
-
|
|
+ double score=(modelParam.getMid().hashCode()+ RandWContainer.getRandW())%100/100d;
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- double score=modelParam.getMid().hashCode()%100/100d;
|
|
|
|
score=score<0?-score:score;
|
|
score=score<0?-score:score;
|
|
|
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
- result.put("ad_predict", score>threshold?2:1);
|
|
+ result.put("ad_predict", score<threshold?2:1);
|
|
result.put("score", score);
|
|
result.put("score", score);
|
|
|
|
|
|
return result;
|
|
return result;
|