Поговорим сегодня о машинном Классический метод обучения,SHAP
(Shapley Additive exPlanations
)。🤒
SHAP
Использование классики теории игр и связанных с ней расширений.Shapley value
Связь оптимального распределения кредитов с местными объяснениями,это своего родаигра Теоретически оптимальныйЗначение Шепли 来
解释个体预测的方法。😂
С точки зрения теории игр,Пучокdata
Каждая функциональная переменная рассматривается как игрок.,используйте этоdata
пойти на тренировку Модельполучить прогнозируемые результаты,Это можно рассматривать как выгоду от сотрудничества многих игроков для завершения проекта. 🙃
Shapley value
Учитывая вклад отдельных игроков,справедливо распределить выгоды от сотрудничества. 🤓
Стоимость ШАП
может надежно интерпретировать деревья Модель。🌲
rm(list = ls())
#devtools::install_github("ModelOriented/shapviz")
library(shapviz)
library(xgboost)
library(tidyverse)
library(patchwork)
x <- c("carat", "cut", "color", "clarity")
data("diamonds")
Здесь мы воспользуемсяxgboost
Моделирование。😘
dtrain <- xgb.DMatrix(data.matrix(diamonds[x]), label = diamonds$price, nthread = 1)
fit <- xgb.train(params = list(learning_rate = 0.1, nthread = 1), data = dtrain, nrounds = 65)
fit
dia_2000 <- diamonds[sample(nrow(diamonds), 2000), x]
shp <- shapviz(fit, X_pred = data.matrix(dia_2000), X = dia_2000)
shp
классическийbarplot
。😘
sv_importance(shp, show_numbers = T)
Измените свою позицию и сделайте это снова! ~😘
这里我们Пучоксхема пчелиного роя
Также добавьте,Точки расположены вдоль каждой строки объекта, чтобы показать плотность. 🤓
Цвет используется для отображения исходного значения признака. 🥳
sv_importance(shp, kind = "both") # "bar", "beeswarm", "both", "no"
граф зависимостей
Показаны одна или две пары функций.машинное Предельный эффект прогнозируемых результатов обучения Модель может показать взаимосвязь между целью и функцией. 😘
Отображается значение признака и значение признака.SHAP
ценить。😜
граф зависимостей
один изВажные предположения
заключается в том, что первая функция не связана со второй функцией。⭐️
Иногда между объектами возникают интерактивные эффекты, которые можно отобразить, добавив второй объект, в данном случае цвет точки. 🫠
sv_dependence(shp, v = x)
водопадная диаграмма
。🙊
sv_waterfall(shp, row_id = 1) +
theme(axis.text = element_text(size = 11))
Force plot
,Вот посмотрите на первый. 😘
sv_force(shp, row_id = 1)
Вы также можете выбрать свойства объекта,Например, выберите здесьbeautiful color D diamonds
。😏
sv_waterfall(shp, shp$X$color == "D") +
theme(axis.text = element_text(size = 11))
interaction value
даСтоимость ШАП
Более продвинутый способ игры,Идеальное отображение интерактивных эффектов. 😘
Сначала посчитайте. 🤓
shp_i <- shapviz(fit, X_pred = data.matrix(dia_2000[x]), X = dia_2000, interactions = T)
shp_i
граф зависимостей
выставка。🐡
sv_dependence(shp_i, v = "carat", color_var = x, interactions = T)
ясно с первого взгляда,perfect
!~🎱
sv_interaction(shp_i) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))