Class: Necropsy::Bench::Evaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/necropsy/bench/evaluator.rb

Constant Summary collapse

ABLATION_ANALYZERS =
{
  'name_resolution' => [Analyzers::Static::NameResolution],
  'cha' => [Analyzers::Static::CHA],
  'rta' => [Analyzers::Static::RTA],
  'name_resolution+cha' => [Analyzers::Static::NameResolution, Analyzers::Static::CHA],
  'name_resolution+rta' => [Analyzers::Static::NameResolution, Analyzers::Static::RTA],
  'all_static' => [Analyzers::Static::NameResolution, Analyzers::Static::CHA, Analyzers::Static::RTA]
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(report:, gold_standard_path:, min_confidence: :low, root: nil, config_path: nil, ablation: false, precision_threshold: 0.85, recall_threshold: nil) ⇒ Evaluator

Returns a new instance of Evaluator.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/necropsy/bench/evaluator.rb', line 17

def initialize(
  report:,
  gold_standard_path:,
  min_confidence: :low,
  root: nil,
  config_path: nil,
  ablation: false,
  precision_threshold: 0.85,
  recall_threshold: nil
)
  @report = report
  @gold_standard_path = gold_standard_path
  @min_confidence = min_confidence
  @root = root
  @config_path = config_path
  @ablation = ablation
  @precision_threshold = precision_threshold
  @recall_threshold = recall_threshold
end

Instance Method Details

#callObject



37
38
39
40
41
42
43
44
# File 'lib/necropsy/bench/evaluator.rb', line 37

def call
  result = metrics_for(report)
  result['by_classification'] = grouped_metrics(:classification)
  result['by_confidence'] = grouped_metrics(:confidence)
  result['ablation'] = ablation_metrics if ablation && root
  result['release_criteria'] = release_criteria(result)
  result
end