shapley

    Описание

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

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

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

    Создание

    Описание

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

    пример

    explainer = shapley(blackbox,X) создает shapley объект, использующий данные предиктора в X.

    пример

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

    пример

    explainer = shapley(___,Name,Value) задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера задайте 'UseParallel',true для параллельного вычисления значений Шепли.

    Входные параметры

    расширить все

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

    • Полный или компактный объект модели - можно задать полный или компактный объект регрессии или классификации модели, который имеет 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) в возвращаемом объекте NaNs. В противном случае, shapley указатели NaNs в queryPoint так же, как и blackboxpredict функция объекта от 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 использует подмножество входа переменных в качестве предикторов, затем программа индексирует предикторы, используя только подмножество. The '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 выбирает подмножества для использования, см. «Комплексность вычислений значений Шепли».

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

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

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

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

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

    Для получения дополнительной информации об этих алгоритмах см. «Алгоритмы расчета значения Шепли».

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

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

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

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

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

    Свойства

    расширить все

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

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

    The blackbox аргумент устанавливает это свойство.

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

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

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

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

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

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

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

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

    • Если вы задаете 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] с условной функции ценности.

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

    Для получения дополнительной информации об этих алгоритмах см. «Алгоритмы расчета значения Шепли».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Примеры

    свернуть все

    Обучите классификационную модель и создайте shapley объект. Когда вы создаете shapley задайте точку запроса, чтобы программа вычисляла значения Shapley для точки запроса. Затем создайте штриховой график значений Шепли с помощью функции объекта 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 вычисляет значения Шепли, используя предсказанный счет класса для каждого класса. Отобразите значения в 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
    
    

    The ShapleyValues свойство содержит значения 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. Используйте функцию объекта fit для вычисления значений Shapley для указанной точки запроса. Затем создайте штриховой график значений Шепли с помощью функции объекта 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 объект с помощью указателя на функцию в predict функция модели. Используйте функцию объекта fit для вычисления значений 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