Skip to content

[BUG] Temporal imprortance curves for DrCIF #3140

@TonyBagnall

Description

@TonyBagnall

Describe the issue linked to the documentation

the classifier DrCIF has a function temporal_importance_curves which should return the importance of each time point for classification

from aeon.datasets import load_classification
from aeon.classification.interval_based import DrCIFClassifier
X, y = load_classification("GunPoint", split="TRAIN")
print("Fitting DrCIFClassifier on GunPoint")
dr = DrCIFClassifier()
dr.fit(X,y)
print("Fit complete DrCIFClassifier")
curve = dr.temporal_importance_curves()
print(curve)

The function is inherited However, from BaseIntervalForest, but the above code gives

Fitting DrCIFClassifier on GunPoint
Fit complete DrCIFClassifier
Traceback (most recent call last):
  File "C:\Code\tsml-eval\local\debug.py", line 26, in <module>
    curve = dr.temporal_importance_curves()
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Code\tsml-eval\venv\Lib\site-packages\aeon\base\_estimators\interval_based\base_interval_forest.py", line 1162, in temporal_importance_curves
    raise ValueError(
ValueError: base_estimator for temporal importance curves must be ContinuousIntervalTree.

But DrCif now uses the scikit DecisionTreeClassifier rather than the bespoke interval tree. Solution is either to remove functionality from DrCIF or somehow implement this desirable feature around the DecisionTreeClassifier. @MatthewMiddlehurst any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingclassificationClassification package

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions