Как получить и интерпретировать пояснения к прогнозу
BigQuery ML — это простой в использовании способ вызова моделей машинного обучения для структурированных данных с использованием только SQL. Хотя он начинался только с линейной регрессии, соединив BigQuery ML с TensorFlow и Vertex AI в качестве серверной части, он добавил более сложные модели, такие как глубокие нейронные сети и таблицы AutoML. Другими словами, хоть мы и пишем SQL, но выполняется именно TensorFlow.
рисунок:StartupStockPhotosотPixabay
Теперь BigQuery ML получает больше возможностей от серверной части Vertex AI. существуетпредыдущийодинстатьяВ я покажу вам настройку гиперпараметров. В этом посте я покажу вам интерпретируемость.
Что такое интерпретируемость?
Интерпретируемость — это способ понять, что делает модель машинного обучения. Существует два типа интерпретируемости. В локальной интерпретируемости мы спрашиваем модель ML, как она пришла к единственному прогнозу. Почему сказано, что эта аренда будет длиться 2000 секунд? Почему он считает эту транзакцию мошеннической?
В глобальной объяснимости мы спрашиваем о важности функций. Насколько важно время суток для прогнозирования времени аренды? Насколько важна сумма транзакции для прогнозирования того, является ли транзакция мошеннической?
BigQuery ML поддерживает оба типа интерпретации, но, по моему опыту, конечным пользователям нужна нативная интерпретация, поэтому я сосредоточусь на ней.
регрессионная модель
Я возьму простую модель для прогнозирования продолжительности аренды велосипедов, которую постоянно использую в своей книге (BigQuery: The Definitive Guide).
CREATE OR REPLACE MODEL ch09eu.bicycle_linear
объяснить предсказание
Вместо вызова ML.PREDICT мы вызываем ML.EXPLAIN_PREDICT, чтобы получить объяснение вместе с прогнозом.
SELECT *
результат.
Прогнозируемая продолжительность составляет 1929 секунд.
Модель начинается с базового прогноза в 4598 секунд — среднего прогноза для всего набора обучающих данных. Из второго ввода (временной метки) модель получает час дня и день недели.
Воскресенье — это среда, и модель добавила 247 секунд к базовому значению. Другими словами, по средам люди брали напрокат велосипеды чуть дольше среднего.
Но в это время мы смотрим на 4 утра. А это привело к значительному сокращению времени проката на 2800 секунд!
Наконец, Parkside — это станция с более низкой арендной платой. Так модель получила еще одну коррекцию, на этот раз на 116 секунд.
4598 + 247–2800–116 = 1929
модель классификации
В качестве второго примера возьмем модель прогнозирования мошенничества.
CREATE OR REPLACE MODEL advdata.ulb_fraud_detection
Опять же, мы используем ML.EXPLAIN_PREDICT.
SELECT *
Результатом является класс предсказания мошенничества 0 (нет мошенничества) с вероятностью 0,946. Это соответствует значению _logits_, равному -2,87 (вероятность является сигмоидой логитов).
К сожалению, этот набор данных не говорит нам, что представляют собой столбцы, но базовый уровень составляет -2,70, что указывает на то, что в значениях данных нет ничего необычного.
Давайте попробуем другой прогноз, на этот раз выбрав сделку с очень высокой стоимостью.
SELECT *
Теперь модель предсказывает, что транзакция может быть мошеннической. Значение Logits равно 12,665, а базовое значение равно -2,7. Ключевыми факторами вероятности этой сделки являются V4 (увеличение 10,67) и V14 (уменьшение 4). Конечно, если мы знаем, что V4 и V14… это будет значить больше, но в публичном выпуске набора финансовых данных этой информации нет.
Как видите, вы можете использовать примеры объяснений, чтобы объяснить, как различные входные данные вызывают изменения в результирующем значении. Это может помочь укрепить уверенность в том, что модель работает правильно.
Пожалуйста, наслаждайтесь!
Объяснение моделей машинного обучения BigQueryПервоначально опубликовано на MediumTowards Data Science, люди продолжают беседу, выделяя историю и отвечая на нее.