Перейти к основному содержимому Перейти к дополнительному содержимому

Создание наборов данных 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 для двух записей из набора данных для применения (соответствующих двум идентификатором учетных записей).

Эти примеры подчеркивают различия в структуре данных.

SHAP dataset sample
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
Coordinate SHAP dataset sample
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend1.76830971241
aa16889Churned-0.58154511451721
aa16889CurrentPeriodUsage-1.106874704361
aa16889HasRenewed-0.36080026626587
aa16889NumberOfPenalties3.6597540378571
aa33396AdditionalFeatureSpend0.80359643697739
aa33396Churned-0.64805734157562
aa33396CurrentPeriodUsage0.076582334935665
aa33396HasRenewed0.38967734575272
aa33396NumberOfPenalties-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.

Пример

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

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

Запись с одним идентификатором учетной записи будет выглядеть следующим образом:

Single record from a dataset on which predictions will be generated
AccountIDAdditionalFeatureSpendBaseFeeCurrentPeriodUsageHasRenewedNumberOfPenalties
aa1688918 33.52210.1yes4

Если модель двоичной классификации обучается для прогнозирования результата поля Churned, то двумя возможными результатами будут значения «да» или «нет». На основе приведенной выше записи с одним идентификатором учетной записи координатный набор данных SHAP для нее будет выглядеть следующим образом:

Sample from coordinate SHAP dataset for binary classification model prediction
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend-0.049129267835076
aa16889BaseFee-1.5363064624041
aa16889CurrentPeriodUsage0.10787960191299
aa16889HasRenewed1.2441783315923
aa16889NumberOfPenalties2.3803616183224

В приведенной выше таблице отображаются значения SHAP для одного идентификатора учетной записи с разбивкой по признаку. Для каждого признака создается новая строка, каждому признаку присваивается значение SHAP. Направление и величина этих значений SHAP необходимо оценивать с точки зрения двух возможных результатов. В идеале, чем больше значение SHAP, тем более сильное влияние оказывает признак на результат с положительной интерпретацией (в данном случае «да»). Если это представление является противоположным, можно обратить направление значений SHAP (путем умножения на -1), чтобы упростить интерпретацию анализа.

Для сравнения предположим, что выполняется обучение модели многоклассовой классификации с целью прогнозирования категориального поля PlanType (с четырьмя возможными результатами ― Blue Plan, Green Plan, Purple Plan и Red Plan). На основе записи с одним идентификатором учетной записи в первой таблице координатный набор данных SHAP для нее будет выглядеть следующим образом:

Sample from coordinate SHAP dataset for multiclass classification model prediction
AccountIDautoml_featurePredicted_classSHAP_value
aa16889AdditionalFeatureSpendBlue Plan0.004155414339679
aa16889AdditionalFeatureSpendGreen Plan0.0066376343942741
aa16889AdditionalFeatureSpendPurple Plan-0.014411468558894
aa16889AdditionalFeatureSpendRed Plan0.003618419824941
aa16889BaseFeeBlue Plan0.089301017079318
aa16889BaseFeeGreen Plan0.28876498452748
aa16889BaseFeePurple Plan0.055689421438434
aa16889BaseFeeRed Plan-0.43375542304524
aa16889CurrentPeriodUsageBlue Plan-0.0040098954629816
aa16889CurrentPeriodUsageGreen Plan-0.27902537442842
aa16889CurrentPeriodUsagePurple Plan-0.21871561841248
aa16889CurrentPeriodUsageRed Plan0.50175088830388
aa16889HasRenewedBlue Plan-0.011878031228962
aa16889HasRenewedGreen Plan0.036835618725654
aa16889HasRenewedPurple Plan0.13798314881109
aa16889HasRenewedRed Plan-0.16294073630778
aa16889NumberOfPenaltiesBlue Plan0.20519095034486
aa16889NumberOfPenaltiesGreen Plan0.0015682625647107
aa16889NumberOfPenaltiesPurple Plan-0.084355421853302
aa16889NumberOfPenaltiesRed 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
Классификация методом случайного леса Двоичная классификация, многоклассовая классификацияДревовидный SHAP
Классификация методом XGBoostДвоичная классификация, многоклассовая классификацияДревовидный SHAP
Классификация методом LightGBMДвоичная классификация, многоклассовая классификацияДревовидный SHAP
Классификация методом CatBoostДвоичная классификация, многоклассовая классификацияДревовидный SHAP
Логистическая регрессияДвоичная классификация, многоклассовая классификацияЛинейный SHAP
Регрессия методом лассоДвоичная классификация, многоклассовая классификацияЛинейный SHAP
Регрессия методом эластичной сетиДвоичная классификация, многоклассовая классификацияЛинейный SHAP
Упрощенный гауссовский алгоритм БайесаДвоичная классификация, многоклассовая классификацияЗначения SHAP не рассчитываются
Регрессия методом CatBoostРегрессияДревовидный SHAP
Регрессия методом LightGBMРегрессияДревовидный SHAP
Линейная регрессияРегрессияЛинейный SHAP
Регрессия методом случайного лесаРегрессияДревовидный SHAP
Регрессия методом SGDРегрессияЛинейный SHAP
Регрессия методом XGBoostРегрессияДревовидный SHAP

Подробнее

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!