murinj commited on
Commit
649b3ae
·
1 Parent(s): ace4a3e
Files changed (1) hide show
  1. hter.py +10 -7
hter.py CHANGED
@@ -72,10 +72,10 @@ class Hter(evaluate.Metric):
72
  )
73
 
74
  def _compute(self, predictions, references):
75
- TP = 0 # True Positive
76
- TN = 0 # True Negative
77
- FP = 0 # False Positive
78
- FN = 0 # False Negative
79
 
80
  for pred, ref in zip(predictions, references):
81
  if pred == 1 and ref == 1:
@@ -87,9 +87,12 @@ class Hter(evaluate.Metric):
87
  elif pred == 0 and ref == 1:
88
  FN += 1
89
 
90
- # 计算 FAR FRR
91
- FAR = FP / (FP + TN) if (FP + TN) > 0 else 0
92
- FRR = FN / (FN + TP) if (FN + TP) > 0 else 0
 
 
 
93
 
94
  # 计算 HTER
95
  HTER = (FAR + FRR) / 2.0
 
72
  )
73
 
74
  def _compute(self, predictions, references):
75
+ TP = 0 # 预测为欺骗(1),真实为欺骗(1)→ 正确拒绝攻击
76
+ TN = 0 # 预测为真实(0),真实为真实(0)→ 正确接受真实
77
+ FP = 0 # 预测为欺骗(1),真实为真实(0)→ 错误拒绝真实(导致FRR)
78
+ FN = 0 # 预测为真实(0),真实为欺骗(1)→ 错误接受欺骗(导致FAR)
79
 
80
  for pred, ref in zip(predictions, references):
81
  if pred == 1 and ref == 1:
 
87
  elif pred == 0 and ref == 1:
88
  FN += 1
89
 
90
+ # FAR = 欺骗样本中被错误接受的比例 = FN / (TP + FN)
91
+ FAR = FN / (TP + FN) if (TP + FN) > 0 else 0
92
+ # FRR = 真实样本中被错误拒绝的比例 = FP / (TN + FP)
93
+ FRR = FP / (TN + FP) if (TN + FP) > 0 else 0
94
+
95
+ HTER = (FAR + FRR) / 2.0
96
 
97
  # 计算 HTER
98
  HTER = (FAR + FRR) / 2.0