Class: Crystalball::PredictorEvaluator
- Inherits:
-
Object
- Object
- Crystalball::PredictorEvaluator
- Defined in:
- lib/crystalball/predictor_evaluator.rb
Overview
Class to collect statistics about prediction quality
Instance Attribute Summary collapse
-
#actual_failures ⇒ Object
readonly
Returns the value of attribute actual_failures.
-
#predictor ⇒ Object
readonly
Returns the value of attribute predictor.
Instance Method Summary collapse
- #diff_size ⇒ Object
-
#initialize(predictor, actual_failures:) ⇒ PredictorEvaluator
constructor
A new instance of PredictorEvaluator.
- #map_size ⇒ Object
- #predicted_failures ⇒ Object
- #prediction_rate ⇒ Object
- #prediction_scale ⇒ Object
- #prediction_size ⇒ Object
- #prediction_to_diff_ratio ⇒ Object
- #unpredicted_failures ⇒ Object
Constructor Details
#initialize(predictor, actual_failures:) ⇒ PredictorEvaluator
Returns a new instance of PredictorEvaluator.
10 11 12 13 |
# File 'lib/crystalball/predictor_evaluator.rb', line 10 def initialize(predictor, actual_failures:) @predictor = predictor @actual_failures = actual_failures end |
Instance Attribute Details
#actual_failures ⇒ Object (readonly)
Returns the value of attribute actual_failures.
6 7 8 |
# File 'lib/crystalball/predictor_evaluator.rb', line 6 def actual_failures @actual_failures end |
#predictor ⇒ Object (readonly)
Returns the value of attribute predictor.
6 7 8 |
# File 'lib/crystalball/predictor_evaluator.rb', line 6 def predictor @predictor end |
Instance Method Details
#diff_size ⇒ Object
25 26 27 |
# File 'lib/crystalball/predictor_evaluator.rb', line 25 def diff_size predictor.diff.lines end |
#map_size ⇒ Object
45 46 47 |
# File 'lib/crystalball/predictor_evaluator.rb', line 45 def map_size predictor.map.size end |
#predicted_failures ⇒ Object
15 16 17 18 19 |
# File 'lib/crystalball/predictor_evaluator.rb', line 15 def predicted_failures @predicted_failures ||= actual_failures.select do |failure| prediction.any? { |p| failure.include?(p) } end end |
#prediction_rate ⇒ Object
37 38 39 |
# File 'lib/crystalball/predictor_evaluator.rb', line 37 def prediction_rate actual_failures.empty? ? 1.0 : predicted_failures.size.to_f / actual_failures.size end |
#prediction_scale ⇒ Object
33 34 35 |
# File 'lib/crystalball/predictor_evaluator.rb', line 33 def prediction_scale prediction_size.to_f / map_size end |
#prediction_size ⇒ Object
41 42 43 |
# File 'lib/crystalball/predictor_evaluator.rb', line 41 def prediction_size @prediction_size ||= predictor.map.example_groups.keys.select { |example| prediction.any? { |p| example.include?(p) } }.size end |
#prediction_to_diff_ratio ⇒ Object
29 30 31 |
# File 'lib/crystalball/predictor_evaluator.rb', line 29 def prediction_to_diff_ratio prediction_size.to_f / diff_size end |
#unpredicted_failures ⇒ Object
21 22 23 |
# File 'lib/crystalball/predictor_evaluator.rb', line 21 def unpredicted_failures actual_failures - predicted_failures end |