|
@@ -1,8 +1,6 @@
|
|
|
package com.tzld.piaoquan.ad.engine.service.predict.container;
|
|
|
|
|
|
import com.tdunning.math.stats.Centroid;
|
|
|
-import com.tdunning.math.stats.MergingDigest;
|
|
|
-import com.tzld.piaoquan.ad.engine.service.predict.model.threshold.ScoreV2ThresholdPredictModel;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.model.threshold.ThresholdPredictModel;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -17,12 +15,11 @@ import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.Executors;
|
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
@Component
|
|
|
public class ThresholdModelContainer {
|
|
|
|
|
|
- private final static Logger log = LoggerFactory.getLogger(ScoreV2ThresholdPredictModel.class);
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(ThresholdModelContainer.class);
|
|
|
|
|
|
@Autowired
|
|
|
private ApplicationContext applicationContext;
|
|
@@ -30,7 +27,7 @@ public class ThresholdModelContainer {
|
|
|
private double position;
|
|
|
|
|
|
public static Map<String,ThresholdPredictModel> modelMap=new HashMap<>();
|
|
|
-// public static Map<Integer,MergingDigest> mergingDigestMap=new HashMap<>();
|
|
|
+
|
|
|
|
|
|
private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
|
|
@PostConstruct
|
|
@@ -39,22 +36,7 @@ public class ThresholdModelContainer {
|
|
|
beanMap.forEach((s,model)->{
|
|
|
modelMap.put(model.getName(), model);
|
|
|
});
|
|
|
- //只关注重点app
|
|
|
-// mergingDigestMap.put(0, new MergingDigest(10000));
|
|
|
-// mergingDigestMap.put(3, new MergingDigest(10000));
|
|
|
-// mergingDigestMap.put(4, new MergingDigest(10000));
|
|
|
-// mergingDigestMap.put(5, new MergingDigest(10000));
|
|
|
-// mergingDigestMap.put(21, new MergingDigest(10000));
|
|
|
-// final Runnable task = new Runnable() {
|
|
|
-// public void run() {
|
|
|
-// try {
|
|
|
-// printDigestThreshold();
|
|
|
-// }catch (Exception e){
|
|
|
-// e.printStackTrace();
|
|
|
-// }
|
|
|
-// }
|
|
|
-// };
|
|
|
-// scheduler.scheduleAtFixedRate(task, 0, 1, TimeUnit.MINUTES); // 10分钟
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public static ThresholdPredictModel getThresholdPredictModel(String modelName){
|
|
@@ -65,44 +47,5 @@ public class ThresholdModelContainer {
|
|
|
return modelMap.get("basic");
|
|
|
}
|
|
|
|
|
|
-// public static void mergingDigestAddScore(Integer appType,Double score){
|
|
|
-// mergingDigestMap.getOrDefault(appType,new MergingDigest(1)).add(score);
|
|
|
-// }
|
|
|
-
|
|
|
-// public static double getThresholdByTDigest(Integer appType,Double sortPosition){
|
|
|
-// return mergingDigestMap.getOrDefault(appType,new MergingDigest(1)).quantile(sortPosition);
|
|
|
-// }
|
|
|
-
|
|
|
-// public void printDigestThreshold(){
|
|
|
-// try {
|
|
|
-// for(Map.Entry<Integer,MergingDigest> entry:mergingDigestMap.entrySet()){
|
|
|
-// log.info("svc=printDigestThreshold modelName=modelV2 appType={} mergingDigestThreshold={}"
|
|
|
-// , entry.getKey(),entry.getValue().quantile(position));
|
|
|
-// }
|
|
|
-//
|
|
|
-// }catch (Exception e){
|
|
|
-// e.printStackTrace();
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
|
|
|
-// public static void main(String[] args){
|
|
|
-// MergingDigest mergingDigest = new MergingDigest(100);
|
|
|
-// for(long i=0;i<1000;i++){
|
|
|
-// double newDataPoint = Math.random() * 100;
|
|
|
-// // 向MergingDigest中添加新数据
|
|
|
-// mergingDigest.add(newDataPoint);
|
|
|
-// }
|
|
|
-// System.out.println(mergingDigest.quantile(0.12));
|
|
|
-// System.out.println(mergingDigest.quantile(0.6));
|
|
|
-// Iterable<Centroid> centroids = mergingDigest.centroids();
|
|
|
-// Integer totalW=0;
|
|
|
-// Integer totalS=0;
|
|
|
-// // 遍历质点列表并输出
|
|
|
-// for (Centroid centroid : centroids) {
|
|
|
-// System.out.println("值: " + centroid.mean() + ", 权重: " + centroid.count());
|
|
|
-// }
|
|
|
-// System.out.println(totalW);
|
|
|
-// System.out.println(totalS);
|
|
|
-// }
|
|
|
}
|