Вычислить значения Shapley для точки запроса
вычисляет значения Shapley для указанной точки запроса (newExplainer = fit(explainer,queryPoint)queryPoint) и сохраняет вычисленные значения Shapley в ShapleyValues имущество newExplainer. shapley объект explainer содержит модель машинного обучения и опции для вычисления значений Shapley.
fit использует опции вычисления значений Shapley, заданные при создании explainer. Можно изменить параметры, используя аргументы «имя-значение» fit функция. Функция возвращает shapley объект newExplainer содержит вновь вычисленные значения Shapley.
указывает дополнительные параметры, использующие один или несколько аргументов «имя-значение». Например, укажите newExplainer = fit(explainer,queryPoint,Name,Value)'UseParallel',true для параллельного вычисления значений Shapley.
shapley Объект и вычислить значения Shapley с помощью fitОбучение регрессионной модели и создание 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';
Горизонтальная гистограмма показывает значения Shapley для всех переменных, отсортированные по их абсолютным значениям. Каждое значение Шепли объясняет отклонение прогноза для точки запроса от среднего значения из-за соответствующей переменной.
Обучение модели классификации и создание shapley объект. Затем вычислите значения Shapley для нескольких точек запроса.
Загрузить CreditRating_Historical набор данных. Набор данных содержит идентификаторы клиентов и их финансовые коэффициенты, отраслевые наклейки и кредитные рейтинги.
tbl = readtable('CreditRating_Historical.dat');Обучение модели кредитных рейтингов blackbox с помощью fitcecoc функция. Используйте переменные из второго-седьмого столбцов в tbl в качестве переменных предиктора.
blackbox = fitcecoc(tbl,'Rating', ... 'PredictorNames',tbl.Properties.VariableNames(2:7), ... 'CategoricalPredictors','Industry');
Создать shapley объект с blackbox модель. Для более быстрого вычисления выполните выборку 25% наблюдений из tbl с расслоением и использовать образцы для вычисления значений Шапли. Укажите, следует ли использовать расширение алгоритма kernelSHAP.
rng('default') % For reproducibility c = cvpartition(tbl.Rating,'Holdout',0.25); tbl_s = tbl(test(c),:); explainer = shapley(blackbox,tbl_s,'Method','conditional-kernel');
Найти две точки запроса с истинными значениями рейтинга AAA и Bсоответственно.
queryPoint(1,:) = tbl_s(find(strcmp(tbl_s.Rating,'AAA'),1),:); queryPoint(2,:) = tbl_s(find(strcmp(tbl_s.Rating,'B'),1),:)
queryPoint=2×8 table
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA Industry Rating
_____ ______ ______ _______ ________ _____ ________ _______
58258 0.511 0.869 0.106 8.538 0.732 2 {'AAA'}
82367 -0.078 -0.042 0.011 0.262 0.167 7 {'B' }
Вычислите и постройте график значений Shapley для первой точки запроса. Чтобы отобразить существующее подчеркивание в любом имени предиктора, измените TickLabelInterpreter значение осей для 'none'.
explainer1 = fit(explainer,queryPoint(1,:));
f1 = figure;
plot(explainer1)
f1.CurrentAxes.TickLabelInterpreter = 'none';
Вычислите и постройте график значений Shapley для второй точки запроса.
explainer2 = fit(explainer,queryPoint(2,:));
f2 = figure;
plot(explainer2)
f2.CurrentAxes.TickLabelInterpreter = 'none';
Истинная оценка для второй точки запроса B, но прогнозируемый рейтинг BB. На графике показаны значения Шепли для прогнозируемого рейтинга.
explainer1 и explainer2 включают значения Shapley для первой точки запроса и второй точки запроса соответственно.
explainer - Объект, объясняющий модель blackboxshapley объектОбъект, объясняющий модель blackbox, указанный как shapley объект.
queryPoint - Точка запросаТочка запроса, в которой fit объясняет прогноз, заданный как вектор строки числовых значений или однострочная таблица.
Для вектора строки числовых значений:
Для однострочной таблицы:
Если данные предиктора explainer.X является таблицей, затем все переменные предиктора в queryPoint должны иметь те же имена переменных и типы данных, что и в explainer.X. Однако порядок столбцов queryPoint не обязательно соответствовать порядку столбцов explainer.X.
Если данные предиктора explainer.X является числовой матрицей, затем имена предикторов в explainer.BlackboxModel.PredictorNames и соответствующие имена переменных предиктора в queryPoint должно быть то же самое. Чтобы указать имена предикторов во время обучения, используйте 'PredictorNames' аргумент «имя-значение». Все переменные предиктора в queryPoint должны быть числовыми векторами.
queryPoint может содержать дополнительные переменные (переменные ответа, веса наблюдения и т.д.), но fit игнорирует их.
fit не поддерживает многозначные переменные или массивы ячеек, отличные от массивов ячеек символьных векторов.
Если queryPoint содержит NaNs для непрерывных предикторов и 'Method' является 'conditional-kernel', затем значения Шепли (ShapleyValues) в возвращенном объекте: NaNс. В противном случае fit ручки NaN значения таким же образом, как и explainer.BlackboxModel( predict объектная функция explainer.BlackboxModel или дескриптор функции, указанный blackbox).
Пример: explainer.X(1,:) указывает точку запроса как первое наблюдение данных предиктора X в explainer.
Типы данных: single | double | table
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
fit(explainer,q,'Method','conditional-kernel','UseParallel',true) вычисляет значения Shapley для точки запроса q использование расширения к алгоритму kernelSHAP и параллельное выполнение вычислений.'MaxNumSubsets' - Максимальное количество подмножеств предикторовexplainer.NumSubsets (по умолчанию) | положительное целое числоМаксимальное число подмножеств предикторов, используемых для вычисления значения Шапли, указанное как положительное целое число.
Для получения подробной информации о том, как fit выбирает используемые подмножества, см. раздел Сложность вычисления значений Shapley.
Пример: 'MaxNumSubsets',100
Типы данных: single | double
'Method' - алгоритм вычисления значения Шейплиexplainer.Method (по умолчанию) | 'interventional-kernel' | 'conditional-kernel'Алгоритм вычисления значения Shapley, указанный как 'interventional-kernel' или 'conditional-kernel'.
Дополнительные сведения об этих алгоритмах см. в разделе Алгоритмы вычисления значений Shapley.
Пример: 'Method','conditional-kernel'
Типы данных: char | string
'UseParallel' - Флаг для параллельного выполненияfalse (по умолчанию) | trueФлаг для параллельного выполнения, указанный как true или false. При указании 'UseParallel',true, fit функция выполняет для итераций цикла параллельно с помощью parfor. Для этого параметра требуется Toolbox™ параллельных вычислений.
Пример: 'UseParallel',true
Типы данных: logical
newExplainer - Объект, объясняющий модель blackboxshapley объектОбъект, объясняющий модель blackbox, возвращенный как shapley объект. ShapleyValues свойство объекта содержит вычисленные значения Shapley.
Перезапись входного аргумента explainer, назначить вывод fit кому explainer:
explainer = fit(explainer,queryPoint);
В теории игр значение Шапли игрока является средним предельным вкладом игрока в кооперативную игру. В контексте предсказания машинного обучения значение Shapley признака для точки запроса объясняет вклад признака в предсказание (ответ на регрессию или оценку каждого класса для классификации) в указанной точке запроса.
Значение Шепли соответствует отклонению прогноза для точки запроса от среднего прогноза из-за признака. Для точки запроса сумма значений Шепли для всех признаков соответствует общему отклонению прогноза от среднего значения.
Дополнительные сведения см. в разделе Значения Shapley для модели машинного обучения.
[1] Лундберг, Скотт М. и С. Ли. «Единый подход к интерпретации предсказаний модели». Достижения в системах обработки нейронной информации 30 (2017): 4765-774.
[2] Аас, Кьерсти, Мартин. Джуллум и Андерс Лёланд. «Объяснение индивидуальных предсказаний, когда особенности зависимы: более точные приближения к значениям Шепли». arXiv:1903.10464 (2019).
Для параллельного выполнения установите 'UseParallel' аргумент «имя-значение» для true в вызове этой функции.
Дополнительные общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.