Создание наборов данных SHAP во время прогнозирования
Наборы данных важности SHAP можно создавать в процессе создания прогноза. В этих наборах данных можно использовать расчеты значений SHAP, чтобы понять, какие признаки вносят наибольший вклад в прогнозируемые значения.
Наборы данных SHAP содержат расчеты SHAP на уровне строки для признаков, используемых для обучения модели. Эти значения показывают, какой вклад вносит каждый признак в прогнозируемое значение цели с учетом всех других признаков в данной строке.
Например, важность SHAP может сказать нам, делает ли тот или иной признак уход клиента более или менее вероятным и насколько сильно он влияет на этот результат.
После того как выполнено прогнозирование и созданы наборы данных, можно загрузить значения SHAP в приложение Qlik Sense и визуализировать их вместе с прогнозируемыми значениями. Для получения дополнительной информации см. разделы Визуализация значений SHAP в приложениях Qlik Sense и Использование значений SHAP в реальных приложениях
В этом разделе справки подробно рассматривается создание набора данных SHAP при выполнении прогнозирования в развертываниях машинного обучения. Для получения информации о диаграммах важности SHAP, отображаемых во время обучения эксперимента, см. раздел Общие сведения о важности SHAP в обучении эксперимента.
Доступные параметры для создания наборов данных SHAP
При настройке прогноза можно выбрать создание наборов данных SHAP в одном из двух разных форматов. Оба параметра предоставляют одинаковую информацию, но используют разную структуру.
SHAP
Это набор данных, в котором значения SHAP для каждого признака помещаются в отдельный столбец. Этот параметр недоступен для моделей многоклассовой классификации.
Координатный SHAP
Это набор данных, в котором значения SHAP распределяются всего по двум столбцам: столбец «признак» и столбец «значение». Этот параметр доступен для всех типов моделей.
Наборы данных для многоклассовых моделей работают немного иначе по сравнению с наборами данных из двоичных моделей. С целью прогнозирования каждой записи создается новая строка со значением SHAP для каждого возможного класса, доступного для прогнозирования в модели. В наборе данных также создается дополнительный столбец для идентификации класса, представляемого значением SHAP.
Когда прогнозы и значения SHAP загружаются в приложение Qlik Sense и создается модель данных, проще работать с наборами данных координатных SHAP, чем с наборами данных SHAP.
Примеры
В следующих таблицах содержатся примеры из наборов данных SHAP и наборов данных координатных SHAP, созданных на основе регрессионной модели, обученной с использованием пяти признаков. Образцы содержат значения SHAP для двух записей из набора данных для применения (соответствующих двум идентификатором учетных записей).
Эти примеры подчеркивают различия в структуре данных.
AccountID | AdditionalFeatureSpend_SHAP | Churned_SHAP | CurrentPeriodUsage_SHAP | HasRenewed_SHAP | NumberOfPenalties_SHAP |
---|---|---|---|---|---|
aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | 1.76830971241 |
aa16889 | Churned | -0.58154511451721 |
aa16889 | CurrentPeriodUsage | -1.106874704361 |
aa16889 | HasRenewed | -0.36080026626587 |
aa16889 | NumberOfPenalties | 3.6597540378571 |
aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
aa33396 | Churned | -0.64805734157562 |
aa33396 | CurrentPeriodUsage | 0.076582334935665 |
aa33396 | HasRenewed | 0.38967734575272 |
aa33396 | NumberOfPenalties | -0.31007811427116 |
Интерпретация прогнозируемых значений SHAP
В отличие от значений в диаграмме Важность SHAP, отображаемой во время обучения эксперимента, наборы данных SHAP содержат расчеты SHAP на уровне строки, обладающие направленностью. Другими словами, они не являются абсолютными значениями, но могут быть положительными или отрицательными. При визуализации значений в приложении их можно агрегировать в качестве абсолютных значений в зависимости от конкретного случая использования.
Значение SHAP для записи следует анализировать с учетом соответствующего прогнозируемого значения для этой записи. В зависимости от типа модели (двоичная классификация, многоклассовая классификация или регрессия) направленность значений SHAP следует интерпретировать немного по-другому.
Модели классификации
При работе с моделями двоичной классификации большие положительные значения SHAP указывают на более значимое влияние в сторону одного из двух возможных результатов, а большие отрицательные значения указывают на более значимое влияние в сторону второго результата. При использовании данных в приложении направленность значений SHAP может препятствовать проведению требуемого анализа. Чтобы решить эту проблему, можно обратить направление значений SHAP (например, умножить весь столбец на -1). Для получения дополнительной информации о проверке направления SHAP см. раздел Подготовка.
Набор данных SHAP из многоклассовой модели имеет другую структуру. Для каждой прогнозируемой записи модель включает отдельную строку для каждого возможного класса, а также соответствующее значение SHAP для этого класса. Класс указывается в столбце Predicted_class.
В наборе данных координатных SHAP значения SHAP из прогнозов многоклассовых моделей необходимо интерпретировать следующим образом:
Большое положительное значение SHAP указывает, что признак оказывает более сильное влияние в направлении результата, указанного в столбце Predicted_class.
Большое положительное значение SHAP указывает, что признак оказывает более сильное влияние в направлении результата, который не относится к классу, указанному в столбце Predicted_class.
Пример
Следующий пример демонстрирует различие в структуре наборов данных, созданных моделями двоичной и многоклассовой классификации.
Для начала рассмотрим набор данных для применения, который содержит по одной строке для каждого идентификатора учетной записи. Каждый признак, использованный для обучения модели, представлен в отдельном столбце.
Запись с одним идентификатором учетной записи будет выглядеть следующим образом:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Если модель двоичной классификации обучается для прогнозирования результата поля Churned, то двумя возможными результатами будут значения «да» или «нет». На основе приведенной выше записи с одним идентификатором учетной записи координатный набор данных SHAP для нее будет выглядеть следующим образом:
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
aa16889 | BaseFee | -1.5363064624041 |
aa16889 | CurrentPeriodUsage | 0.10787960191299 |
aa16889 | HasRenewed | 1.2441783315923 |
aa16889 | NumberOfPenalties | 2.3803616183224 |
В приведенной выше таблице отображаются значения SHAP для одного идентификатора учетной записи с разбивкой по признаку. Для каждого признака создается новая строка, каждому признаку присваивается значение SHAP. Направление и величина этих значений SHAP необходимо оценивать с точки зрения двух возможных результатов. В идеале, чем больше значение SHAP, тем более сильное влияние оказывает признак на результат с положительной интерпретацией (в данном случае «да»). Если это представление является противоположным, можно обратить направление значений SHAP (путем умножения на -1), чтобы упростить интерпретацию анализа.
Для сравнения предположим, что выполняется обучение модели многоклассовой классификации с целью прогнозирования категориального поля PlanType (с четырьмя возможными результатами ― Blue Plan, Green Plan, Purple Plan и Red Plan). На основе записи с одним идентификатором учетной записи в первой таблице координатный набор данных SHAP для нее будет выглядеть следующим образом:
AccountID | automl_feature | Predicted_class | SHAP_value |
---|---|---|---|
aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
aa16889 | BaseFee | Green Plan | 0.28876498452748 |
aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
aa16889 | BaseFee | Red Plan | -0.43375542304524 |
aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |
В приведенной выше таблице один идентификатор учетной записи представлен 20 строками: по одной строке для каждого признака, где строка для значения SHAP соответствует каждому возможному результату в цели. Столбец Predicted_class представляет возможный результат (класс) для прогнозирования, при этом в наборе данных прогнозирования необязательно отображается фактический прогнозируемый результат. В конечном счете класс с самым большим значением SHAP становится прогнозируемым значением для записи.
Значения SHAP в этой таблице представляют собой измеренное влияние, оказываемое указанным признаком (automl_feature) на результат, который может относиться к указанному классу (Predicted_class). Большое положительное значение указывает на то, что признак оказывает сильное влияние, определяя принадлежность прогнозируемого результата к указанному классу, а большое отрицательное значение указывает, что признак оказывает сильное влияние, определяя принадлежность прогнозируемого результата к другому классу.
Регрессионные модели
В наборе данных SHAP, созданном на основе регрессионной модели, направление значений SHAP интерпретируется более прямолинейно.
Положительное значение SHAP соответствует увеличению прогнозируемого значения для строки.
Отрицательное значение SHAP соответствует уменьшению прогнозируемого значения для строки.
Расчет значений SHAP
Значения SHAP рассчитываются для разнообразных алгоритмов. Важность SHAP рассчитывается двумя различными методами.
Древовидный SHAP: быстрый и точный метод расчета значений SHAP для моделей на основе дерева
Линейный SHAP: метод, позволяющий рассчитать значения SHAP для линейных моделей
Алгоритм | Поддерживаемые типы моделей | Метод расчета значений SHAP |
---|---|---|
Классификация методом случайного леса | Двоичная классификация, многоклассовая классификация | Древовидный SHAP |
Классификация методом XGBoost | Двоичная классификация, многоклассовая классификация | Древовидный SHAP |
Классификация методом LightGBM | Двоичная классификация, многоклассовая классификация | Древовидный SHAP |
Классификация методом CatBoost | Двоичная классификация, многоклассовая классификация | Древовидный SHAP |
Логистическая регрессия | Двоичная классификация, многоклассовая классификация | Линейный SHAP |
Регрессия методом лассо | Двоичная классификация, многоклассовая классификация | Линейный SHAP |
Регрессия методом эластичной сети | Двоичная классификация, многоклассовая классификация | Линейный SHAP |
Упрощенный гауссовский алгоритм Байеса | Двоичная классификация, многоклассовая классификация | Значения SHAP не рассчитываются |
Регрессия методом CatBoost | Регрессия | Древовидный SHAP |
Регрессия методом LightGBM | Регрессия | Древовидный SHAP |
Линейная регрессия | Регрессия | Линейный SHAP |
Регрессия методом случайного леса | Регрессия | Древовидный SHAP |
Регрессия методом SGD | Регрессия | Линейный SHAP |
Регрессия методом XGBoost | Регрессия | Древовидный SHAP |