瀏覽代碼

1-debug,调整序列数据的时候和注释print函数。

bijl 5 年之前
父節點
當前提交
b06b34533a
共有 1 個文件被更改,包括 26 次插入14 次删除
  1. 26 14
      algorithm/src/main/java/org/algorithm/core/neural/dataset/NNDataSet.java

+ 26 - 14
algorithm/src/main/java/org/algorithm/core/neural/dataset/NNDataSet.java

@@ -32,6 +32,7 @@ public abstract class NNDataSet {
     private boolean doFilterDiagnosis = false;  // 是否做疾病过滤
 
     private final float firstRateThreshold = 0.1f;  // 第一个疾病的概率阈值
+    private final float lastRateThreshold = 0.01f;  // 最后一个概率阈值
     private final float rateSumThreshold = 0.6f;  // 概率和阈值
     private final int numToPush = 3;  // 推荐推送的个数
     private final float rapidFallTimes = 5;  // 骤降倍数
@@ -142,28 +143,39 @@ public abstract class NNDataSet {
         float rateSum = 0.0f;  // 概率和
 
         while (it.hasNext()) {
+//            NameAndValue nameAndValue = it.next();
+//            if (!deleteTheRest) {
+//                // 相对于前一个疾病概率骤降rapidFallTimes倍
+//                if (preRate / nameAndValue.getValue() >= this.rapidFallTimes)
+//                    deleteTheRest = true;
+//                else {
+//                    rateSum += nameAndValue.getValue();
+//                    preRate = nameAndValue.getValue();
+//                    restCnt += 1;
+//                }
+//            }
+//
+//            if (deleteTheRest)  // 删除剩下的疾病
+//                it.remove();
+//
+//
+//            if (!deleteTheRest && restCnt >= this.numToPush) {
+//
+//                // 如果超过尽量推送的个数,那么做概率和阈值过滤【从下一个开始删除】
+//                if (rateSum >= this.rateSumThreshold)
+//                    deleteTheRest = true;
+//            }
+
             NameAndValue nameAndValue = it.next();
             if (!deleteTheRest) {
-                // 相对于前一个疾病概率骤降rapidFallTimes倍
-                if (preRate / nameAndValue.getValue() >= this.rapidFallTimes)
+                // 最后一个必须大于某个阈值
+                if (nameAndValue.getValue() < this.lastRateThreshold)
                     deleteTheRest = true;
-                else {
-                    rateSum += nameAndValue.getValue();
-                    preRate = nameAndValue.getValue();
-                    restCnt += 1;
-                }
             }
 
             if (deleteTheRest)  // 删除剩下的疾病
                 it.remove();
 
-
-            if (!deleteTheRest && restCnt >= this.numToPush) {
-
-                // 如果超过尽量推送的个数,那么做概率和阈值过滤【从下一个开始删除】
-                if (rateSum >= this.rateSumThreshold)
-                    deleteTheRest = true;
-            }
         }
 
     }