Подход экономиста к объяснению поведения пользователей машинного обучения с помощью функций полезности.

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

Назад к теории

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

Утверждение здесь очень простое. Ось X представляет выигрыш, а ось Y — ожидаемую полезность агента. Давайте резюмируем это как «удовлетворенность агента». Описаны три ситуации:

  • Синяя вогнутая кривая иллюстрирует агента, избегающего риска. Большой выигрыш приведет к небольшому увеличению удовлетворения.
  • Красная линейная кривая иллюстрирует нейтрального к риску агента. Данное изменение в выигрыше вызовет «нормальное» увеличение удовлетворения.
  • Зеленая выпуклая кривая иллюстрирует агента, любящего риск. Небольшой выигрыш создаст более высокий уровень удовлетворения для этого агента.

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

Является ли клиент машинного обучения рациональным экономическим агентом?

Конечно, он! Вот почему специалисты по данным имеют некоторые возможности предвидеть и адаптировать свои алгоритмы в соответствии с «функцией полезности» нашего клиента.
Давайте возьмем пример и предположим, что один клиент сталкивается с проблемой бинарной классификации машинного обучения и использует сбалансированный набор данных. Эти предположения позволяют нам упростить нашу задачу и использовать точность в качестве оценочной метрики. Цель этого проекта — заменить ручную задачу автоматизированной, предполагая, что автоматизированная задача будет более точной, чем ручная.

Механизмы для пользователя модели машинного обучения очень похожи на те, что продемонстрировали Джон фон Нейман и Оскар Моргенштерн. При одинаковом повышении точности повышение удовлетворенности клиентов, склонных к риску, выше, чем у клиентов, избегающих риска. Несколько причин могут объяснить поведение потребителя и форму его функции полезности.

  • Риск и возможность трудоустройства: если одна или несколько заинтересованных сторон в проекте чувствуют, что существует риск потери работы из-за потенциальной замены человека машиной, эти люди будут классифицированы как не склонные к риску. Наоборот, если команда понимает, что проект откроет новые возможности, повысит их производительность или сэкономит время для более интересных задач, участники будут любителями риска.
  • Влияние на бизнес: что произойдет, если модель машинного обучения перестанет работать? Он просто дает неверные прогнозы, создавая дополнительные ручные задачи? Или, например, останавливает полную производственную линию на заводе? Бизнес-контекст очень важен, и риск неудачных прогнозов может быть умеренным или серьезным в зависимости от компании или проекта. Общественные организации начали оценивать риски, связанные с продуктами и услугами, содержащими модель машинного обучения. Самый известный пример — шкала рисков, опубликованная Европейским союзом, от «неприемлемого риска» до «минимального риска», для регулирования деятельности ИИ в зоне ЕС и продвижения надежных и объяснимых моделей ИИ.
  • Культура компании или цифровая аккультурация сотрудников: действительно ли участники проекта знают, что делает модель машинного обучения? Участвовали ли сотрудники компании в каких-либо тренингах по искусственному интеллекту или ознакомительных занятиях, чтобы информировать их о возможностях, рисках и возможностях. Уровень понимания заинтересованных сторон или клиентов имеет ключевое значение для определения того, является ли он, скорее всего, агентом, избегающим или любителем риска.
  • Выбор метрики проверки: если ваши метрики проверки соответствуют реальности проблемы вашего клиента, у него больше шансов доверять им. Прямым следствием для него является получение большего улучшения удовлетворенности для данного улучшения модели по сравнению с нерелевантной метрикой. Классической иллюстрацией этого явления является несбалансированный набор данных в задаче классификации. В большинстве таких ситуаций рассмотрение точности недостаточно актуально для оценки производительности модели, и другие показатели, такие как F1-оценка, полнота или точность, должны быть проанализированы более тщательно. Если Data Scientist обращает внимание только на точность модели, даже значительное улучшение этой метрики может плохо повысить удовлетворенность клиентов, потому что это ненадежно в отношении его проблемы.

Следовательно, поведение пользователя машинного обучения не может быть определено только с точки зрения личности человека, но также с точки зрения его профессиональной среды и способности Data Scientist объяснить свой выбор. На этом этапе вы должны верить, что если вы столкнетесь с клиентом, не склонным к риску, у вас будет очень мало шансов повлиять на выбор вашего клиента. Если ваша модель недостаточно хороша, игра окончена. Но это не совсем так. Как Data Scientist, у вас есть возможность вести переговоры!

Изменить мнение клиента

Вы обучили модель и немного напряжены, чтобы представить результаты своему владельцу бизнеса. В прошлом он был очень строг, чтобы утвердить вашу модель, и вы подозреваете, что он отвергнет ее. У вас есть возможность и обязанность изменить мнение клиента. Чтобы выполнить этот психологический сдвиг, могут помочь два рычага: изменить восприятие метрики и превратить вашего клиента из функции полезности, избегающей риска, в любителя риска (или, скажем, менее склонного к риску).
Лучшее оружие, которое у вас есть для этого трюка, это чтобы ваша модель предсказывала вероятность класса. Действительно, в задаче классификации машинного обучения большинство Data Scientist используют предсказание класса. Например, в известной задаче «Катастрофа Титаника» в Kaggle стандартный прогноз дает ответ, выживет пассажир или нет. Тем не менее, собственная функция обучения Scikit позволяет вам предоставить вероятность, связанную с предсказанным классом. Вероятность — это хороший показатель достоверности вашего прогноза.
Теперь давайте проиллюстрируем связь между поведением пользователя и прогнозируемой вероятностью. В этом примере используется «Удержание сотрудников отдела кадров» от Kaggle. В этом случае цель данного исследования состоит в том, чтобы предсказать, покинет ли сотрудник компанию или нет. Был реализован процесс машинного обучения, что означает, что выполняются этапы очистки данных, обработки признаков, обучения модели и проверки. Выбранная здесь модель представляет собой SVC (классификатор опорных векторов) и дает средние результаты.

Глядя на эти показатели, мы видим, что модель сталкивается с некоторыми трудностями при обнаружении людей, покинувших компанию (класс 1). Такого уровня производительности модели может быть недостаточно, чтобы владелец бизнеса принял ее. Чтобы изменить эту ситуацию, давайте воспользуемся нашим секретным оружием предсказания вероятностей!

# Make a prediction with the SVC model
pred = svc.predict(X_test_scaled)
pred_proba = svc.predict_proba(X_test_scaled)

# Find the proability linked to the predicted class
class_proba = []
for i in pred_proba : 
    class_proba.append(max(i))

# Put the probability and the related class in a dataframe
results = pd.DataFrame(data = {"true" : y_test,
                    "predicted_class" : pred, 
                    "probability" :  class_proba})

В этих строках кода мы просто предсказываем класс и связанную с ним вероятность для каждого наблюдения, получая следующую таблицу:

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

# Recompute the validation metrics and the prediction rate with probability threshold filtered data
accuracy = []
recall = []
precision = []
f1 = []
pred_rate = []
for i in list(np.arange(0,1,0.01)) : 
    filtered_df = results[results["probability"] >= i]
    accuracy.append(accuracy_score(filtered_df["true"], filtered_df["predicted_class"]))
    recall.append(recall_score(filtered_df["true"], filtered_df["predicted_class"], pos_label="1"))
    precision.append(precision_score(filtered_df["true"], filtered_df["predicted_class"], pos_label="1"))
    f1.append(f1_score(filtered_df["true"], filtered_df["predicted_class"], pos_label="1"))
    pred_rate.append(len(filtered_df)/ len(results))
    
# Results in a dataframe
threshold_results = pd.DataFrame(data = {
    "threshold" : np.arange(0,1,0.01), 
    "accuracy" : accuracy, 
    "recall" : recall, 
    "precision" : precision, 
    "f1-score" : f1, 
    "prediction_rate" : pred_rate
 })
threshold_results

В этой таблице мы наблюдаем, что если мы фильтруем нашу таблицу прогнозов с заданным порогом вероятности, метрики проверки развиваются. Например, если эталонный порог вероятности равен 0,95, точность искусственно увеличивается с 0,91 до 0,98, полнота — с 0,76 до 0,85, а точность — с 0,83 до 0,91. Судя по восприятию функции полезности (график 2), это приводит к большему повышению точности (ось X и при условии, что это эталонный показатель), а также к более низкому и непропорциональному увеличению полезности (ось Y). Чтобы было ясно, наш клиент стал счастливее!
Тем не менее, аналогом этого искусственного повышения этих показателей является падение скорости прогнозирования. Чем выше порог вероятности, тем ниже скорость предсказания. На практике это означает, что для порога высокой вероятности существует доля наблюдений, для которых модель не даст прогноза. Как читатель, вы можете сказать, что этот метод обман, но на самом деле это не проблема.

Вам нужна идеальная модель, а не клиент

Если вы хорошо помните, как специалисты по данным, мы хотим убедить нашего владельца бизнеса, не склонного к риску, в том, что наша модель того стоит. Как упоминалось ранее, у таких пользователей есть несколько характеристик.
Во-первых, они осознают риск для своей работы. Тем не менее, доля наблюдений, которые необходимо прогнозировать вручную, остается с использованием вышеуказанной методологии. Итак, пользователь меняет свое восприятие и понимает, что новый процесс все еще нуждается в его навыках и не заменит его. Вероятность отказа от этой технологии падает.
Кроме того, пороговый фильтр вероятности также является способом снижения риска с точки зрения влияния на бизнес. Так как это уберет долю неверного предсказания. Риск возникновения бизнес-проблем из-за новой построенной модели резко снижается в соответствии с выбранным порогом.
Наконец, если когда-то было сложно объяснить значение показателей проверки и способ их интерпретации, теперь ваш клиент получает прибыль. чтобы иметь полное представление о том, как метрики меняются в зависимости от порога, и полностью восстановить свою роль владельца бизнеса в проекте. Он не только принимает решения для бинарного выбора (принятие или отклонение модели), но также является частью создания алгоритма, способного выбрать наилучшие параметры в соответствии со своими потребностями.

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

Как выбрать наилучший порог вероятности?

Как вы понимаете, не существует правила, позволяющего найти наилучший порог вероятности для конкретной бизнес-проблемы. Этот выбор имеет гораздо большее значение для переговоров и образования, чем для технических вопросов. Роль Data Scientist состоит в том, чтобы предоставить модель с наилучшей производительностью и охватить максимально возможный периметр с точки зрения прогнозируемых наблюдений. Владелец бизнеса должен предложить порог, соответствующий бизнес-реальности и его личному поведению.
Как всегда, лучший способ объяснить это использовать визуализацию данных. Чтобы выбрать наилучший порог, легко построить график, эталонную метрику проверки и скорость прогнозирования над порогом вероятности.

Этот вид графика ясно показывает компромисс между искусственным увеличением производительности и снижением скорости предсказания. Это хорошее начало для прозрачного обсуждения между Data Scientist и владельцами бизнеса.

Выводы

  • Пользователи, клиенты или владельцы бизнеса по-разному относятся к риску, и это следует учитывать при представлении им производительности модели.
  • У специалиста по данным есть возможность искусственно увеличить производительность модели, используя порог вероятности предсказания.
  • Следствием этого является уменьшение предсказанных моделью наблюдений.
  • Эта методология помогает увеличить дельту метрики проверки и скорректировать функцию полезности агента, чтобы уменьшить неприятие риска.
  • Окончательный порог вероятности должен быть совместно обсужден с владельцем бизнеса, чтобы облегчить принятие модели.
  • Рискованное поведение каждого агента делает невозможным установку автоматизированного правила для определения модели производительности, которую необходимо достичь.

Источники:

https://psycnet.apa.org/record/1947-03159-000

https://www.researchgate.net/figure/Utility-function-shapes-for-risk-averse-risk-neutral-and-risk-seeking-individuals_fig1_271918241

https://www.andchange.com/preparing-inevitable-resistance-ai/

https://ec.europa.eu/commission/presscorner/detail/fr/qanda_21_1683

https://www.kaggle.com/datasets/gummulasrikanth/hr-employee-retention

https://www.kaggle.com/c/titanic