Source code for Orange.classification.catgb

from typing import Tuple

import numpy as np

import catboost

from Orange.base import CatGBBaseLearner, CatGBModel
from Orange.classification import Learner, Model
from Orange.data import Variable, DiscreteVariable, Table
from Orange.preprocess.score import LearnerScorer

__all__ = ["CatGBClassifier"]


class _FeatureScorerMixin(LearnerScorer):
    feature_type = Variable
    class_type = DiscreteVariable

    def score(self, data: Table) -> Tuple[np.ndarray, Tuple[Variable]]:
        model: CatGBClassifier = self(data)
        return model.cat_model.feature_importances_, model.domain.attributes


class CatGBClsModel(CatGBModel, Model):
    pass


[docs]class CatGBClassifier(CatGBBaseLearner, Learner, _FeatureScorerMixin): __wraps__ = catboost.CatBoostClassifier __returns__ = CatGBClsModel