График значений Шейпли
plot( создает горизонтальную гистограмму значений Shapley explainer)shapley объект explainer. Эти значения хранятся в объекте ShapleyValues собственность. На каждой панели отображается значение Shapley каждого элемента в модели blackbox (explainer.) для точки запроса (BlackboxModelexplainer.).QueryPoint
plot( указывает дополнительные параметры, использующие один или несколько аргументов «имя-значение». Например, укажите explainer,Name,Value)'NumImportantPredictors',5 для построения графика значений Shapley пяти элементов с самыми высокими абсолютными значениями Shapley.
b = plot(___) возвращает объект гистограммы b используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Использовать b запрос или изменение свойств панели после ее создания.
Обучение модели классификации и создание 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 объект, который объясняет прогноз для последнего наблюдения. Для более быстрого вычисления выполните выборку 25% наблюдений из tbl с расслоением и использовать образцы для вычисления значений Шапли.
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'}
rng('default') % For reproducibility c = cvpartition(tbl.Rating,'Holdout',0.25); tbl_s = tbl(test(c),:); explainer = shapley(blackbox,tbl_s,'QueryPoint',queryPoint);
Для классификационной модели: shapley вычисляет значения Shapley, используя прогнозируемый балл класса для каждого класса. Отображение значений в ShapleyValues собственность.
explainer.ShapleyValues
ans=6×8 table
Predictor AAA AA A BBB BB B CCC
__________ __________ __________ ___________ __________ ___________ ___________ ___________
"WC_TA" 0.014584 0.0064698 0.0027468 0.00045585 -0.007959 -0.011812 -0.011279
"RE_TA" 0.047797 0.027083 0.015166 -0.0031936 -0.025054 -0.059563 -0.08344
"EBIT_TA" 0.00034326 0.0001524 0.00012384 3.5202e-05 -0.00019141 -0.00038252 -0.00033693
"MVE_BVTD" 0.38221 0.38229 0.19383 -0.007901 -0.15755 -0.2152 -0.17022
"S_TA" -0.0035663 -0.0025991 -0.00021177 -0.0010166 -2.1005e-05 0.00041421 -0.00058884
"Industry" -0.028313 -0.013392 0.00089644 0.022877 0.025636 0.028482 0.044832
ShapleyValues содержит значения Shapley всех элементов для каждого класса.
Постройте график значений Shapley для прогнозируемого класса с помощью plot функция. Чтобы отобразить существующее подчеркивание в любом имени предиктора, измените TickLabelInterpreter значение осей для 'none'.
f = figure;
plot(explainer);
f.CurrentAxes.TickLabelInterpreter = 'none';
Горизонтальная гистограмма показывает значения Shapley для всех переменных, отсортированные по их абсолютным значениям. Каждое значение Шепли объясняет отклонение оценки для точки запроса от средней оценки прогнозируемого класса из-за соответствующей переменной.
Постройте график значений Shapley для всех классов, указав все имена классов в explainer.BlackboxModel.
f = figure; plot(explainer,'ClassNames',explainer.BlackboxModel.ClassNames) f.CurrentAxes.TickLabelInterpreter = 'none';

Обучение регрессионной модели и создание shapley объект. Использовать функцию объекта fit для вычисления значений Shapley для указанной точки запроса. Затем постройте график значений Шапли предикторов с помощью функции объекта plot. Укажите количество важных предикторов для построения графика при вызове 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'. Определить 'NumImportantPredictors',5 построить только пять наиболее важных предикторов для прогнозируемого ответа.
explainer.BlackboxFitted
ans = 21.0495
f = figure; plot(explainer,'NumImportantPredictors',5) f.CurrentAxes.TickLabelInterpreter = 'none';

Горизонтальная гистограмма показывает значения Шепли для пяти наиболее важных предикторов, отсортированные по их абсолютным значениям. Каждое значение Шепли объясняет отклонение прогноза для точки запроса от среднего значения из-за соответствующей переменной.
explainer - Объект, объясняющий модель blackboxshapley объектОбъект, объясняющий модель blackbox, указанный как shapley объект.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
plot(explainer,'NumImportantPredictors',5,'ClassNames',c) создает гистограмму, содержащую значения Шапли пяти наиболее важных предикторов для класса c.'NumImportantPredictors' - Количество важных предикторов для построения графикаmin(M,10) где M число предикторов (по умолчанию) | положительное целое числоКоличество важных предикторов для построения графика, указанных как положительное целое число. plot функция строит графики значений Шепли указанного числа предикторов с самыми высокими абсолютными значениями Шепли.
Пример: 'NumImportantPredictors',5 определяет для построения графика пять наиболее важных предикторов. plot функция определяет порядок важности с помощью абсолютных значений Шапли.
Типы данных: single | double
'ClassNames' - Метки классов для печатиexplainer.BlackboxFitted (по умолчанию) | категориальный массив | символьный массив | логический вектор | числовой вектор | клеточный массив символьных векторовМетки классов для печати, указанные как категориальный или символьный массив, логический или числовой вектор или массив ячеек символьных векторов. Значения и типы данных в 'ClassNames' значение должно совпадать с именами классов в ClassNames свойство модели машинного обучения в explainer (explainer.BlackboxModel.ClassNames).
Можно указать одну или несколько меток. При указании нескольких меток классов функция выводит на график несколько полос для каждого элемента с различными цветами.
Значением по умолчанию является прогнозируемый класс для точки запроса ( BlackboxFitted имущество explainer).
Этот аргумент допустим только в том случае, если модель машинного обучения (BlackboxModel) в explainer является классификационной моделью.
Пример: 'ClassNames',{'red','blue'}
Пример: 'ClassNames',explainer.BlackboxModel.ClassNames определяет 'ClassNames' как все классы в BlackboxModel.
Типы данных: single | double | logical | char | cell | categorical
В теории игр значение Шапли игрока является средним предельным вкладом игрока в кооперативную игру. В контексте предсказания машинного обучения значение Shapley признака для точки запроса объясняет вклад признака в предсказание (ответ на регрессию или оценку каждого класса для классификации) в указанной точке запроса.
Значение Шепли соответствует отклонению прогноза для точки запроса от среднего прогноза из-за признака. Для точки запроса сумма значений Шепли для всех признаков соответствует общему отклонению прогноза от среднего значения.
Дополнительные сведения см. в разделе Значения Shapley для модели машинного обучения.
[1] Лундберг, Скотт М. и С. Ли. «Единый подход к интерпретации предсказаний модели». Достижения в системах обработки нейронной информации 30 (2017): 4765-774.
[2] Аас, Кьерсти, Мартин. Джуллум и Андерс Лёланд. «Объяснение индивидуальных предсказаний, когда особенности зависимы: более точные приближения к значениям Шепли». arXiv:1903.10464 (2019).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.