/ tests / metrics / test_multiple_classification.py
test_multiple_classification.py
 1  import pandas as pd
 2  
 3  from evidently import BinaryClassification
 4  from evidently import DataDefinition
 5  from evidently import Dataset
 6  from evidently import Report
 7  from evidently.presets import ClassificationQuality
 8  
 9  
10  def test_multiple_classification():
11      data = pd.DataFrame(
12          data={
13              "a1": ["a", "b", "a", "b"],
14              "predict1": ["a", "b", "a", "b"],
15              "predict2": [0.1, 0.7, 0.1, 0.8],
16              "predict3": [0.8, 0.7, 0.1, 0.8],
17          }
18      )
19  
20      report = Report(
21          [ClassificationQuality("c1")],
22      )
23  
24      dataset = Dataset.from_pandas(
25          data,
26          DataDefinition(
27              classification=[
28                  BinaryClassification(name="c1", target="a1", prediction_labels="predict1", pos_label="b"),
29                  BinaryClassification(name="c2", target="a1", prediction_labels="predict2", pos_label="b"),
30                  BinaryClassification(name="c3", target="a1", prediction_labels="predict3", pos_label="b"),
31              ]
32          ),
33      )
34      run1 = report.run(dataset)
35  
36      run2 = Report([ClassificationQuality("c3")]).run(dataset)
37      run3 = Report([ClassificationQuality("c1"), ClassificationQuality("c3")]).run(dataset)
38  
39      assert run1.dict()["metrics"] + run2.dict()["metrics"] == run3.dict()["metrics"]