Skip to content

Commit

Permalink
Predictions: Add models and folds to output Results
Browse files Browse the repository at this point in the history
  • Loading branch information
janezd committed Feb 25, 2022
1 parent 0cefc17 commit b817423
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Orange/widgets/evaluate/owpredictions.py
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,8 @@ def _commit_evaluation_results(self):
nanmask = numpy.isnan(self.data.get_column_view(self.class_var)[0])
data = self.data[~nanmask]
results = Results(data, store_data=True)
results.folds = None
results.folds = [...]
results.models = numpy.array([[p.predictor for p in self.predictors]])
results.row_indices = numpy.arange(len(data))
results.actual = data.Y.ravel()
results.predicted = numpy.vstack(
Expand Down
2 changes: 1 addition & 1 deletion Orange/widgets/evaluate/tests/test_owcalibrationplot.py
Original file line number Diff line number Diff line change
Expand Up @@ -642,7 +642,7 @@ def test_warn_nan_probabilities(self, *_):
@patch("Orange.widgets.evaluate.owcalibrationplot.ThresholdClassifier")
@patch("Orange.widgets.evaluate.owcalibrationplot.CalibratedLearner")
def test_no_folds(self, *_):
"""Warn about omitted points with nan probabiities"""
"""Don't crash on malformed Results with folds=None"""
widget = self.widget

self.results.folds = None
Expand Down
4 changes: 4 additions & 0 deletions Orange/widgets/evaluate/tests/test_owpredictions.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

from Orange.base import Model
from Orange.classification import LogisticRegressionLearner, NaiveBayesLearner
from Orange.classification.majority import ConstantModel
from Orange.data.io import TabReader
from Orange.evaluation.scoring import TargetScore
from Orange.preprocess import Remove
Expand Down Expand Up @@ -507,6 +508,9 @@ def test_multi_inputs(self):
def check_evres(expected):
out = self.get_output(w.Outputs.evaluation_results)
self.assertSequenceEqual(out.learner_names, expected)
self.assertEqual(out.folds, [...])
self.assertEqual(out.models.shape, (1, len(out.learner_names)))
self.assertIsInstance(out.models[0, 0], ConstantModel)

check_evres(["P1", "P2", "P3"])

Expand Down

0 comments on commit b817423

Please sign in to comment.