Browse Source

[Minor] Neural: Allow to have flat classification if needed

tags/3.0
Vsevolod Stakhov 3 years ago
parent
commit
6244d64b43
2 changed files with 11 additions and 2 deletions
  1. 1
    0
      lualib/plugins/neural.lua
  2. 10
    2
      src/plugins/lua/neural.lua

+ 1
- 0
lualib/plugins/neural.lua View File

@@ -57,6 +57,7 @@ local default_options = {
-- Check ROC curve and AUC in the ML literature
spam_score_threshold = nil, -- neural score threshold for spam (must be 0..1 or nil to disable)
ham_score_threshold = nil, -- neural score threshold for ham (must be 0..1 or nil to disable)
flat_threshold_curve = false, -- use binary classification 0/1 when threshold is reached
symbol_spam = 'NEURAL_SPAM',
symbol_ham = 'NEURAL_HAM',
max_inputs = nil, -- when PCA is used

+ 10
- 2
src/plugins/lua/neural.lua View File

@@ -121,7 +121,11 @@ local function ann_scores_filter(task)
local result = score

if not rule.spam_score_threshold or result >= rule.spam_score_threshold then
task:insert_result(rule.symbol_spam, result, symscore)
if rule.flat_threshold_curve then
task:insert_result(rule.symbol_spam, 1.0, symscore)
else
task:insert_result(rule.symbol_spam, result, symscore)
end
else
lua_util.debugm(N, task, '%s:%s:%s ann score: %s < %s (spam_score_threshold)',
rule.prefix, set.name, set.ann.version, symscore,
@@ -131,7 +135,11 @@ local function ann_scores_filter(task)
local result = -(score)

if not rule.ham_score_threshold or result >= rule.ham_score_threshold then
task:insert_result(rule.symbol_ham, result, symscore)
if rule.flat_threshold_curve then
task:insert_result(rule.symbol_ham, 1.0, symscore)
else
task:insert_result(rule.symbol_ham, result, symscore)
end
else
lua_util.debugm(N, task, '%s:%s:%s ann score: %s < %s (ham_score_threshold)',
rule.prefix, set.name, set.ann.version, result,

Loading…
Cancel
Save