FEDOT

Форк
0
/
explainers.py 
39 строк · 1.7 Кб
1
from fedot.core.data.data import InputData
2
from fedot.core.pipelines.pipeline import Pipeline
3
from fedot.core.repository.tasks import TaskTypesEnum
4
from fedot.explainability.surrogate_explainer import SurrogateExplainer
5

6

7
def pick_pipeline_explainer(pipeline: 'Pipeline', method: str, task_type: TaskTypesEnum):
8
    if method == 'surrogate_dt':
9
        if task_type == TaskTypesEnum.classification:
10
            surrogate = 'dt'
11
        elif task_type == TaskTypesEnum.regression:
12
            surrogate = 'dtreg'
13
        else:
14
            raise ValueError(f'Surrogate tree is not applicable for the {task_type} task')
15
        explainer = SurrogateExplainer(pipeline, surrogate=surrogate)
16
    else:
17
        raise ValueError(f'Explanation method {method} is not supported')
18

19
    return explainer
20

21

22
def explain_pipeline(pipeline: 'Pipeline', data: 'InputData', method: str = 'surrogate_dt',
23
                     visualization: bool = False, **kwargs) -> SurrogateExplainer:
24
    """Create explanation for the `pipeline` according to the selected `method`.
25
    An `Explainer` instance is returned.
26

27
    :param pipeline: pipeline to explain.
28
    :param data: samples to be explained.
29
    :param method: explanation method, defaults to 'surrogate_dt'. Options: ['surrogate_dt', ...]
30
    :param visualization: print and plot the explanation simultaneously, defaults to True.
31
        The explanation can be retrieved later by executing `explainer.visualize()`.
32
    """
33
    if not pipeline:
34
        raise AssertionError('The pipeline might be fit before explanation!')
35

36
    explainer = pick_pipeline_explainer(pipeline, method, data.task.task_type)
37
    explainer.explain(data, visualization=visualization, **kwargs)
38

39
    return explainer
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.