exponenta event banner

shapley

    Описание

    Значение Shapley признака для точки запроса объясняет отклонение прогноза для точки запроса от среднего прогноза из-за признака. Для каждой точки запроса сумма значений Шепли для всех признаков соответствует общему отклонению прогноза от среднего значения.

    Можно создать shapley объект для модели машинного обучения с указанной точкой запроса (queryPoint). Программа создает объект и вычисляет значения Shapley всех элементов для точки запроса.

    Используйте значения Shapley, чтобы объяснить вклад отдельных элементов в прогноз в указанной точке запроса. Используйте plot для создания гистограммы значений Shapley. Можно вычислить значения Shapley для другой точки запроса с помощью fit функция.

    Создание

    Описание

    explainer = shapley(blackbox) создает shapley объект с использованием объекта модели машинного обучения blackbox содержит данные предиктора. Для вычисления значений Shapley используйте fit функция с explainer.

    пример

    explainer = shapley(blackbox,X) создает shapley с использованием данных предиктора в X.

    пример

    explainer = shapley(___,'QueryPoint',queryPoint) также вычисляет значения Shapley для точки запроса queryPoint и сохраняет вычисленные значения Shapley в ShapleyValues имущество explainer. Можно указать queryPoint в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах.

    пример

    explainer = shapley(___,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов «имя-значение». Например, укажите 'UseParallel',true для параллельного вычисления значений Shapley.

    Входные аргументы

    развернуть все

    Модель машинного обучения, подлежащая интерпретации, заданная как объект полной или компактной регрессии или модели классификации или дескриптор функции.

    • Объект полной или компактной модели - можно указать объект полной или компактной регрессии или модели классификации, имеющий predict объектная функция. Программное обеспечение использует predict для вычисления значений Шепли.

      • Если указан объект модели, который не содержит данных предиктора (например, компактная модель), необходимо предоставить данные предиктора с помощью X.

      • При обучении модели используйте числовую матрицу или таблицу для данных предиктора, где строки соответствуют отдельным наблюдениям.

      Объект регрессионной модели

      Поддерживаемая модельОбъект модели полной или компактной регрессии
      Ансамбль регрессионных моделейRegressionEnsemble, RegressionBaggedEnsemble, CompactRegressionEnsemble
      Модель регрессии ядра Гаусса с использованием случайного расширения признаковRegressionKernel
      Регрессия гауссова процессаRegressionGP, CompactRegressionGP
      Обобщенная аддитивная модельRegressionGAM, CompactRegressionGAM
      Линейная регрессия для высокоразмерных данныхRegressionLinear
      Модель регрессии нейронной сетиRegressionNeuralNetwork, CompactRegressionNeuralNetwork
      Регрессионное деревоRegressionTree, CompactRegressionTree
      Поддержка векторной машинной регрессииRegressionSVM, CompactRegressionSVM

      Объект классификационной модели

      Поддерживаемая модельОбъект модели полной или компактной классификации
      Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminant
      Многоклассовая модель для поддержки векторных машин или других классификаторовClassificationECOC, CompactClassificationECOC
      Ансамбль учащихся для классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemble
      Модель классификации ядра Гаусса с использованием случайного расширения признаковClassificationKernel
      Обобщенная аддитивная модельClassificationGAM, CompactClassificationGAM
      k-ближайший классификатор соседейClassificationKNN
      Модель линейной классификацииClassificationLinear
      Многоклассовая наивная модель БайесаClassificationNaiveBayes, CompactClassificationNaiveBayes
      Нейросетевой классификаторClassificationNeuralNetwork, CompactClassificationNeuralNetwork
      Поддержка векторного машинного классификатора для одноклассной и двоичной классификацииClassificationSVM, CompactClassificationSVM
      Двоичное дерево решений для многоклассовой классификацииClassificationTree, CompactClassificationTree
    • Дескриптор функции - можно указать дескриптор функции, который принимает данные предиктора и возвращает вектор столбца, содержащий прогноз для каждого наблюдения в данных предиктора. Предсказание представляет собой прогнозируемый ответ на регрессию или прогнозируемый балл одного класса для классификации. Необходимо предоставить данные предиктора с помощью X.

    Данные предиктора, указанные как числовая матрица или таблица. Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

    • Для числовой матрицы:

      • Переменные, составляющие столбцы X должен иметь тот же порядок, что и обучаемые переменные предиктора blackbox, хранится в blackbox.X.

      • Если вы тренировались blackbox используя таблицу, затем X может быть числовой матрицей, если таблица содержит все числовые переменные предиктора.

    • Для таблицы:

      • Если вы тренировались blackbox использование таблицы (например, Tbl), затем все переменные предиктора в X должны иметь те же имена переменных и типы данных, что и в Tbl. Однако порядок столбцов X не обязательно соответствовать порядку столбцов Tbl.

      • Если вы тренировались blackbox используя числовую матрицу, затем имена предикторов в blackbox.PredictorNames и соответствующие имена переменных предиктора в X должно быть то же самое. Чтобы указать имена предикторов во время обучения, используйте 'PredictorNames' аргумент «имя-значение». Все переменные предиктора в X должны быть числовыми векторами.

      • X может содержать дополнительные переменные (переменные ответа, веса наблюдения и т.д.), но shapley игнорирует их.

      • shapley не поддерживает многозначные переменные или массивы ячеек, отличные от массивов ячеек символьных векторов.

    Если blackbox объект модели, не содержащий данных предиктора или дескриптора функции, необходимо указать X. Если blackbox является полным объектом модели машинного обучения, и вы указываете этот аргумент, затем shapley не использует данные предиктора в blackbox; он использует только указанные данные предиктора.

    Типы данных: single | double

    Точка запроса, в которой shapley объясняет прогноз, заданный как вектор строки числовых значений или однострочная таблица.

    • Для вектора строки числовых значений:

      • Переменные, составляющие столбцы queryPoint должен иметь тот же порядок, что и X или переменные предиктора, которые прошли обучение blackbox, хранится в blackbox.X.

      • Если вы тренировались blackbox используя таблицу, затем queryPoint может быть числовым вектором, если таблица содержит все числовые переменные.

    • Для однострочной таблицы:

      • Если вы тренировались blackbox использование таблицы (например, Tbl), затем все переменные предиктора в queryPoint должны иметь те же имена переменных и типы данных, что и в Tbl. Однако порядок столбцов queryPoint не обязательно соответствовать порядку столбцов Tbl.

      • Если вы тренировались blackbox используя числовую матрицу, затем имена предикторов в blackbox.PredictorNames и соответствующие имена переменных предиктора в queryPoint должно быть то же самое. Чтобы указать имена предикторов во время обучения, используйте 'PredictorNames' аргумент «имя-значение». Все переменные предиктора в queryPoint должны быть числовыми векторами.

      • queryPoint может содержать дополнительные переменные (переменные ответа, веса наблюдения и т.д.), но shapley игнорирует их.

      • shapley не поддерживает многозначные переменные или массивы ячеек, отличные от массивов ячеек символьных векторов.

    Если queryPoint содержит NaNs для непрерывных предикторов и 'Method' является 'conditional-kernel', затем значения Шепли (ShapleyValues) в возвращенном объекте: NaNс. В противном случае shapley ручки NaNs в queryPoint таким же образом, как blackbox( predict объектная функция blackbox или дескриптор функции, указанный blackbox).

    Пример: blackbox.X(1,:) указывает точку запроса как первое наблюдение данных предиктора в модели полного машинного обучения blackbox.

    Типы данных: single | double | table

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

    Пример: shapley(blackbox,'QueryPoint',q,'Method','conditional-kernel') создает shapley и вычисляет значения Shapley для точки запроса q использование расширения к алгоритму kernelSHAP.

    Список категориальных предикторов, указанный как одно из значений в этой таблице.

    СтоимостьОписание
    Вектор положительных целых чисел

    Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до p, где p - количество предикторов, используемых для обучения модели.

    Если blackbox использует подмножество входных переменных в качестве предикторов, затем программное обеспечение индексирует предикторы, используя только подмножество. 'CategoricalPredictors' значения не подсчитывают переменную отклика, переменную веса наблюдения и любые другие переменные, которые функция не использует.

    Логический вектор

    A true ввод означает, что соответствующий столбец данных предиктора является категориальной переменной. Длина вектора равна p.

    Символьная матрицаКаждая строка матрицы является именем предикторной переменной. Имена должны совпадать с именами переменных данных предиктора в виде таблицы. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину.
    Строковый массив или массив ячеек символьных векторовКаждый элемент массива является именем переменной предиктора. Имена должны совпадать с именами переменных данных предиктора в виде таблицы.
    'all'Все предикторы категоричны.

    • При указании blackbox в качестве дескриптора функции, затем shapley идентифицирует категориальные предикторы из данных предиктора X. Если данные предиктора находятся в таблице, shapley предполагает, что переменная категорична, если она является логическим вектором, неупорядоченным категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей, shapley предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».

    • При указании blackbox в качестве объекта модели регрессии или классификации, затем shapley идентифицирует категориальные предикторы с помощью CategoricalPredictors свойства объекта модели.

    shapley поддерживает упорядоченный категориальный предиктор, когда blackbox поддерживает упорядоченные категориальные предикторы и 'Method' является 'interventional-kernel'.

    Пример: 'CategoricalPredictors','all'

    Типы данных: single | double | logical | char | string | cell

    Максимальное число подмножеств предикторов, используемых для вычисления значения Шапли, указанное как положительное целое число.

    Для получения подробной информации о том, как shapley выбирает используемые подмножества, см. раздел Сложность вычисления значений Shapley.

    Пример: 'MaxNumSubsets',100

    Типы данных: single | double

    Алгоритм вычисления значения Shapley, указанный как 'interventional-kernel' или 'conditional-kernel'.

    • 'interventional-kernel' (по умолчанию) - shapley использует алгоритм kernelSHAP [1] с функцией интервенционного значения.

    • 'conditional-kernel'shapley использует расширение алгоритма kernelSHAP [2] с функцией условного значения.

    Дополнительные сведения об этих алгоритмах см. в разделе Алгоритмы вычисления значений Shapley.

    Пример: 'Method','conditional-kernel'

    Типы данных: char | string

    Флаг для параллельного выполнения, указанный как true или false. При указании 'UseParallel',true, shapley функция выполняет для итераций цикла параллельно с помощью parfor. Для этого параметра требуется Toolbox™ параллельных вычислений.

    Пример: 'UseParallel',true

    Типы данных: logical

    Свойства

    развернуть все

    Это свойство доступно только для чтения.

    Интерпретируемая модель машинного обучения, заданная как объект регрессионной или классификационной модели или дескриптор функции.

    blackbox аргумент задает это свойство.

    Это свойство доступно только для чтения.

    Прогноз для точки запроса, вычисленной по модели машинного обучения (BlackboxModel), указанный как скаляр.

    • Если BlackboxModel является объектом модели, то BlackboxFitted является прогнозируемым ответом на регрессию или классифицированной меткой для классификации.

    • Если BlackboxModel является дескриптором функции, то BlackboxFitted - значение, возвращаемое дескриптором функции, либо прогнозируемый отклик для регрессии, либо прогнозируемый балл одного класса для классификации.

    Типы данных: single | double | categorical | logical | char | string | cell

    Это свойство доступно только для чтения.

    Индексы категориального предиктора, указанные как вектор положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не категоричен, то это свойство пустое ([]).

    • При указании blackbox используя дескриптор функции, shapley идентифицирует категориальные предикторы из данных предиктора X. При указании 'CategoricalPredictors' аргумент name-value, затем аргумент задает это свойство.

    • При указании blackbox в качестве объекта модели регрессии или классификации, затем shapley определяет это свойство с помощью CategoricalPredictors свойства объекта модели.

    shapley поддерживает упорядоченный категориальный предиктор, когда blackbox поддерживает упорядоченные категориальные предикторы и 'Method' является 'interventional-kernel'.

    Типы данных: single | double

    Это свойство доступно только для чтения.

    Алгоритм вычисления значения Shapley, указанный как 'interventional-kernel' или 'conditional-kernel'.

    • 'interventional-kernel'shapley использует алгоритм kernelSHAP [1] с функцией интервенционного значения.

    • 'conditional-kernel'shapley использует расширение алгоритма kernelSHAP [2] с функцией условного значения.

    'Method' аргумент shapley или 'Method' аргумент fit задает это свойство.

    Дополнительные сведения об этих алгоритмах см. в разделе Алгоритмы вычисления значений Shapley.

    Типы данных: char | string

    Это свойство доступно только для чтения.

    Число подмножеств предикторов, используемых для вычисления значения Шапли, указанное как положительное целое число.

    'MaxNumSubsets' аргумент shapley или 'MaxNumSubsets' аргумент fit задает это свойство.

    Для получения подробной информации о том, как shapley выбирает используемые подмножества, см. раздел Сложность вычисления значений Shapley.

    Типы данных: single | double

    Это свойство доступно только для чтения.

    Точка запроса, в которой shapley объясняет прогноз, используя значения Шепли (ShapleyValues), указанный как вектор строки числовых значений или однострочная таблица.

    queryPoint аргумент shapley или queryPoint аргумент fit задает это свойство.

    Типы данных: single | double | table

    Это свойство доступно только для чтения.

    Значения Shapley для точки запроса (QueryPoint), указанный как таблица.

    • Для регрессии таблица содержит два столбца. Первый столбец содержит имена переменных предиктора, а второй столбец содержит значения Шапли предикторов.

    • Для классификации таблица имеет два или более столбцов, в зависимости от количества классов в BlackboxModel. Первый столбец содержит имена переменных предиктора, а остальные столбцы содержат значения Шапли предикторов для каждого класса.

    Типы данных: table

    Это свойство доступно только для чтения.

    Данные предиктора, указанные как числовая матрица или таблица.

    Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

    • При указании X аргумент, затем он устанавливает это свойство.

    • При указании blackbox как полный объект модели машинного обучения и не указывать X, то это значение свойства является данными предиктора, используемыми для обучения blackbox.

    Если наблюдение содержит NaNs для непрерывных предикторов и Method является 'conditional-kernel', то shapley не использует наблюдение для вычисления значения Шапли. В противном случае shapley ручки NaNs в X таким же образом, как BlackboxModel( predict объектная функция BlackboxModel или дескриптор функции, указанный BlackboxModel).

    shapley сохраняет все наблюдения, включая строки с отсутствующими значениями, в этом свойстве.

    Типы данных: single | double | table

    Функции объекта

    fitВычислить значения Shapley для точки запроса
    plotГрафик значений Шейпли

    Примеры

    свернуть все

    Обучение модели классификации и создание shapley объект. При создании shapley укажите точку запроса так, чтобы программа вычисляла значения Shapley для точки запроса. Затем создайте гистограмму значений Shapley с помощью функции object plot.

    Загрузить CreditRating_Historical набор данных. Набор данных содержит идентификаторы клиентов и их финансовые коэффициенты, отраслевые наклейки и кредитные рейтинги.

    tbl = readtable('CreditRating_Historical.dat');

    Отображение первых трех строк таблицы.

    head(tbl,3)
    ans=3×8 table
         ID      WC_TA    RE_TA    EBIT_TA    MVE_BVTD    S_TA     Industry    Rating
        _____    _____    _____    _______    ________    _____    ________    ______
    
        62394    0.013    0.104     0.036      0.447      0.142       3        {'BB'}
        48608    0.232    0.335     0.062      1.969      0.281       8        {'A' }
        42444    0.311    0.367     0.074      1.935      0.366       1        {'A' }
    
    

    Обучение модели кредитных рейтингов blackbox с помощью fitcecoc функция. Используйте переменные из второго-седьмого столбцов в tbl в качестве переменных предиктора. Рекомендуется указывать имена классов, чтобы задать порядок классов.

    blackbox = fitcecoc(tbl,'Rating', ...
        'PredictorNames',tbl.Properties.VariableNames(2:7), ...
        'CategoricalPredictors','Industry', ...
        'ClassNames',{'AAA' 'AA' 'A' 'BBB' 'BB' 'B' 'CCC'});

    Создать shapley объект, который объясняет прогноз для последнего наблюдения. Укажите точку запроса, чтобы программное обеспечение вычисляло значения Shapley и сохраняло их в ShapleyValues собственность.

    queryPoint = tbl(end,:)
    queryPoint=1×8 table
         ID      WC_TA    RE_TA    EBIT_TA    MVE_BVTD    S_TA    Industry    Rating
        _____    _____    _____    _______    ________    ____    ________    ______
    
        73104    0.239    0.463     0.065      2.924      0.34       2        {'AA'}
    
    
    explainer = shapley(blackbox,'QueryPoint',queryPoint)
    Warning: Computation can be slow because the predictor data has over 1000 observations. Use a smaller sample of the training set or specify 'UseParallel' as true for faster computation.
    
    explainer = 
      shapley with properties:
    
                BlackboxModel: [1x1 ClassificationECOC]
                   QueryPoint: [1x8 table]
               BlackboxFitted: {'AA'}
                ShapleyValues: [6x8 table]
                   NumSubsets: 64
                            X: [3932x6 table]
        CategoricalPredictors: 6
                       Method: 'interventional-kernel'
    
    

    Как указывает предупреждающее сообщение, вычисление может быть медленным, поскольку данные предиктора содержат более 1000 наблюдений. Для ускорения вычислений используйте меньший образец обучающего набора или укажите 'UseParallel' как true.

    Для классификационной модели: shapley вычисляет значения Shapley, используя прогнозируемый балл класса для каждого класса. Отображение значений в ShapleyValues собственность.

    explainer.ShapleyValues
    ans=6×8 table
        Predictor        AAA            AA             A             BBB            BB              B             CCC    
        __________    __________    __________    ___________    ___________    ___________    ___________    ___________
    
        "WC_TA"         0.014716     0.0064376      0.0026704     0.00048884     -0.0079014      -0.011841      -0.011395
        "RE_TA"         0.047919      0.026918       0.014751     -0.0031481       -0.02512      -0.059926       -0.08418
        "EBIT_TA"     0.00034271    0.00015025     0.00011977     3.3903e-05    -0.00018924    -0.00038136    -0.00033784
        "MVE_BVTD"       0.38333       0.37376        0.17563      -0.032136       -0.18729       -0.24829       -0.19584
        "S_TA"        -0.0037304    -0.0026011    -8.8854e-05    -0.00081781    -5.4964e-05     0.00047888    -0.00068999
        "Industry"     -0.028972     -0.013906      0.0010435       0.023298       0.026474       0.029895       0.045394
    
    

    ShapleyValues содержит значения Shapley всех элементов для каждого класса.

    Постройте график значений Shapley для прогнозируемого класса с помощью plot функция. Чтобы отобразить существующее подчеркивание в любом имени предиктора, измените TickLabelInterpreter значение осей для 'none'.

    f = figure;
    plot(explainer)
    f.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes contains an object of type bar. This object represents AA.

    Горизонтальная гистограмма показывает значения Shapley для всех переменных, отсортированные по их абсолютным значениям. Каждое значение Шепли объясняет отклонение оценки для точки запроса от средней оценки прогнозируемого класса из-за соответствующей переменной.

    Обучение регрессионной модели и создание shapley объект. При создании shapley если точка запроса не указана, то программа не вычисляет значения Shapley. Использовать функцию объекта fit для вычисления значений Shapley для указанной точки запроса. Затем создайте гистограмму значений Shapley с помощью функции object plot.

    Загрузить carbig набор данных, содержащий замеры автомобилей, сделанные в 1970-х и начале 1980-х годов.

    load carbig

    Создание таблицы, содержащей переменные предиктора Acceleration, Cylindersи так далее, а также переменная ответа MPG.

    tbl = table(Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight,MPG);

    Удаление отсутствующих значений в обучающем наборе может помочь сократить потребление памяти и ускорить обучение для fitrkernel функция. Удалить отсутствующие значения в tbl.

    tbl = rmmissing(tbl);

    Тренировка модели blackbox MPG с помощью fitrkernel функция

    rng('default') % For reproducibility
    mdl = fitrkernel(tbl,'MPG','CategoricalPredictors',[2 5]);

    Создать shapley объект. Укажите набор данных tbl, потому что mdl не содержит данных обучения.

    explainer = shapley(mdl,tbl)
    explainer = 
      shapley with properties:
    
                BlackboxModel: [1x1 RegressionKernel]
                   QueryPoint: []
               BlackboxFitted: []
                ShapleyValues: []
                   NumSubsets: 64
                            X: [392x7 table]
        CategoricalPredictors: [2 5]
                       Method: 'interventional-kernel'
    
    

    explainer сохраняет данные обучения tbl в X собственность.

    Вычислите значения Шапли всех переменных предиктора для первого наблюдения в tbl.

    queryPoint = tbl(1,:)
    queryPoint=1×7 table
        Acceleration    Cylinders    Displacement    Horsepower    Model_Year    Weight    MPG
        ____________    _________    ____________    __________    __________    ______    ___
    
             12             8            307            130            70         3504     18 
    
    
    explainer = fit(explainer,queryPoint);

    Для регрессионной модели: shapley вычисляет значения Shapley с использованием прогнозируемого ответа и сохраняет их в ShapleyValues собственность. Отображение значений в ShapleyValues собственность.

    explainer.ShapleyValues
    ans=6×2 table
          Predictor       ShapleyValue
        ______________    ____________
    
        "Acceleration"       -0.1561  
        "Cylinders"         -0.18306  
        "Displacement"      -0.34203  
        "Horsepower"        -0.27291  
        "Model_Year"         -0.2926  
        "Weight"            -0.32402  
    
    

    Отображение прогнозируемого ответа для точки запроса и график значений Shapley для точки запроса с помощью plot функция. Чтобы отобразить существующее подчеркивание в любом имени предиктора, измените TickLabelInterpreter значение осей для 'none'.

    explainer.BlackboxFitted
    ans = 21.0495
    
    f = figure; 
    plot(explainer)
    f.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes contains an object of type bar.

    Горизонтальная гистограмма показывает значения Shapley для всех переменных, отсортированные по их абсолютным значениям. Каждое значение Шепли объясняет отклонение прогноза для точки запроса от среднего значения из-за соответствующей переменной.

    Обучение регрессионной модели и создание shapley с помощью дескриптора функции для predict функция модели. Использовать функцию объекта fit для вычисления значений Shapley для указанной точки запроса. Затем постройте график значений Shapley с помощью функции объекта plot.

    Загрузить carbig набор данных, содержащий замеры автомобилей, сделанные в 1970-х и начале 1980-х годов.

    load carbig

    Создание таблицы, содержащей переменные предиктора Acceleration, Cylindersи так далее.

    tbl = table(Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight);

    Тренировка модели blackbox MPG с помощью TreeBagger функция.

    rng('default') % For reproducibility
    Mdl = TreeBagger(100,tbl,MPG,'Method','regression','CategoricalPredictors',[2 5]);

    shapley не поддерживает TreeBagger объект напрямую, поэтому нельзя указать первый входной аргумент (модель blackbox) shapley в качестве TreeBagger объект. Вместо этого можно использовать дескриптор функции для predict функция. Можно также указать параметры predict с использованием аргументов «имя-значение» функции.

    Создайте дескриптор функции для predict функции TreeBagger объект Mdl. Укажите массив индексов дерева для использования в качестве 1:50.

    f = @(tbl) predict(Mdl,tbl,'Trees',1:50);

    Создать shapley объект с помощью дескриптора функции f. При указании модели blackbox в качестве дескриптора функции необходимо указать данные предиктора. tbl включает категориальные предикторы (Cylinder и Model_Year) с помощью double тип данных. По умолчанию shapley не обрабатывает переменные с помощью double тип данных как категориальные предикторы. Укажите второе (Cylinder) и пятый (Model_Year) переменные как категориальные предикторы.

    explainer = shapley(f,tbl,'CategoricalPredictors',[2 5]);
    explainer = fit(explainer,tbl(1,:));

    Постройте график значений Шепли.

    plot(explainer)

    Figure contains an axes. The axes contains an object of type bar.

    Отображение имен предикторов в порядке важности.

    tbl.Properties.VariableNames([3 2 6 4 5 1])
    ans = 1x6 cell
      Columns 1 through 4
    
        {'Displacement'}    {'Cylinders'}    {'Weight'}    {'Horsepower'}
    
      Columns 5 through 6
    
        {'Model_Year'}    {'Acceleration'}
    
    

    Подробнее

    развернуть все

    Ссылки

    [1] Лундберг, Скотт М. и С. Ли. «Единый подход к интерпретации предсказаний модели». Достижения в системах обработки нейронной информации 30 (2017): 4765-774.

    [2] Аас, Кьерсти, Мартин. Джуллум и Андерс Лёланд. «Объяснение индивидуальных предсказаний, когда особенности зависимы: более точные приближения к значениям Шепли». arXiv:1903.10464 (2019).

    Расширенные возможности

    Представлен в R2021a