shapley

    Описание

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

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

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

    Создание

    Описание

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

    пример

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

    пример

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

    пример

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

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

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

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

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

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

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

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

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

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

      Поддерживаемая модельПолный или компактный объект модели классификации
      Классификатор дискриминантного анализаClassificationDiscriminant, CompactClassificationDiscriminant
      Модель Multiclass для машин опорных векторов или других классификаторовClassificationECOC, CompactClassificationECOC
      Ансамбль учеников для классификацииClassificationEnsemble, CompactClassificationEnsemble, ClassificationBaggedEnsemble
      Гауссова модель классификации ядер использование случайного расширения функцииClassificationKernel
      Обобщенная аддитивная модельClassificationGAM, CompactClassificationGAM
      k- соседний классификаторClassificationKNN
      Линейная модель классификацииClassificationLinear
      Мультикласс наивная модель BayesClassificationNaiveBayes, 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 таким же образом как 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 возразите и вычисляет значения Шепли для точки запроса q использование расширения kernelSHAP алгоритма.

    Категориальные предикторы перечисляют в виде одного из значений в этой таблице.

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

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

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

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

    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

    Алгоритм расчета значения Шепли в виде '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

    Типы данных: логический

    Свойства

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

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

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

    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

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

    Алгоритм расчета значения Шепли в виде 'interventional-kernel' или 'conditional-kernel'.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Шепли оценивает за точку запроса (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Вычислите значения Шепли для точки запроса
    plotПостройте значения Шепли

    Примеры

    свернуть все

    Обучите модель классификации и создайте 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' }
    
    

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

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

    Создайте 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'
    
    

    Как предупреждающее сообщение указывает, расчет может быть медленным, потому что данные о предикторе имеют более чем 1 000 наблюдений. Для более быстрого расчета используйте меньшую выборку набора обучающих данных или задайте '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
    
    

    ShapleyValues свойство содержит значения Шепли всех функций каждого класса.

    Постройте значения Шепли для предсказанного класса при помощи 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 объект, если вы не задаете точку запроса, затем программное обеспечение, не вычисляет значения Шепли. Используйте объектный функциональный fit вычислить значения Шепли для заданной точки запроса. Затем создайте столбчатый график значений Шепли при помощи объектного функционального plot.

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

    load carbig

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

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

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

    tbl = rmmissing(tbl);

    Обучите модель черного ящика 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 вычисляет значения Шепли с помощью предсказанного ответа и хранит их в 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  
    
    

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

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

    load carbig

    Составьте таблицу, содержащую переменные предикторы Acceleration, Cylinders, и так далее.

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

    Обучите модель черного ящика MPG при помощи TreeBagger функция.

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

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

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

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

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