Победа над конкурирующими ставками с помощью биномиальной теоремы и статистики

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

Хотя определенные показатели, такие как ROC, кривые PR и MCC, помогают точно настроить результаты на начальной стадии проекта (прочтите: Как НЕ использовать ROC, кривые Precision-Recall и MCC), некоторые другие показатели могут помочь вам выиграть новые проекты для вашей организации, если они используются в самом начале.



Сегодня я представляю тематическое исследование того, как мы обычно реализуем новые проекты и как такие показатели, как p-значения, доверительные интервалы и концепции, такие как биномиальные ряды, помогают нам завоевать доверие клиентов.

Дело в точке

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

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

Авантюра

Мы были не особенно довольны таким подходом, поскольку мы развивалась, но все же была небольшой компанией. Однако мы были уверены в своих силах, и поэтому я предложил клиенту следующее:

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

Это станет PoC (Proof of Concept), а также поможет нам точно рассчитать более длительное взаимодействие. К тому времени, когда я предложил это, они уже сузили список до нас и еще одного конкурента. Однако они поддержали идею PoC, поскольку она казалась более поддающейся количественной оценке, чем их нынешние методы, и попросила нас и конкурента приступить к работе над исходной моделью классификации.

Улов

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

Достаточно ли надежен такой «пробный запуск» для сравнения?

Кроме того, когда мы говорим «лучше», какой показатель мы здесь учитываем? Это точность, точность, отзывчивость, специфичность, AUC или что-то еще?

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



Чтобы ответить на первый вопрос, мы сначала устанавливаем ожидание, уровень уверенности - в данном случае 95%. Мы сказали им, что каким бы ни был результат сравнения двух моделей, мы будем на 95% уверены, что он не ошибочен. Мы легко могли выбрать 90% или 99% или любое другое число, но на стадии PoC их хватило на 95%.

Теперь, чтобы сравнить классификационные модели, есть несколько статистических методов; Обычно используется парный тест Макнемара. Здесь это могло бы сработать, но нам нужно было что-то более интуитивно понятное, чему клиент мог бы доверять, если объяснять его в повседневных условиях.

Биномиальные ряды спешат на помощь

Представьте себе: предположим, вы подбросили монетку и получили голову. Ты снова перевернулся и снова получил голову. Потом хвост. Потом хвост ...

После 20 бросков вы увидели, что у вас 7 орлов и 13 решек. Если бы я попросил вас быть уверенным в своем утверждении на 95%, вы бы сказали, что монета справедливая, или она смещена в сторону решки? В конце концов, по опыту известно, что чаще всего вы не получите точных 50–50 сплитов орлов-решек за 20 флипов. Это не означает, что монета предвзята.

Иначе говоря, сколько решек вы хотели бы получить из 20 подбрасываний, прежде чем сказать, что монета, похоже, предпочитает решки?

Или что вероятность того, что хвост будет работать лучше, чем голова, значительно выше?

Ответ на поставленный выше вопрос таков:

Вышеупомянутое получается путем применения Биномиальной формулы. Вы также можете быстро узнать это с помощью python:

from scipy.stats import binom
N, p, alpha = 20, 0.5, 0.05
distribution = binom(N, p)
heads = distribution.ppf(alpha)
if distribution.cdf(heads)>alpha:
   heads = heads -1
print(f"At {100*(1-alpha)}% confidence level, minimum tails required out of 20 flips for coin to be tail-biased: {format(N-heads,'.0f')}")

Результат для N = 20 (двадцать переворотов или попыток):

At 95.0% confidence level, minimum tails required out of 20 flips for coin to be tail-biased: 15

Это почти тот же вопрос, на который мы хотим ответить для нашего PoC, где «хвост» - это наша модель, а «голова» - это модель конкурента. Если мы начнем с предположения, что обе модели в основном похожи, ни одна из них не лучше другой, тогда обе модели должны иметь 50% вероятность получения более высокой точности после тестирования на нескольких наборах данных.

Но если мы протестируем его на 20 наборах данных и увидим, что модель 1 имеет более высокую точность в 15 случаях, то с 95% уверенностью можно сделать вывод, что с точки зрения точности модель 1 лучше, чем модель 2.

Вот о чем мы и решили попросить. Мы попросили клиента разделить 1000 уникальных образцов / деталей на 20 групп по 50 деталей в каждой, чтобы каждая группа имела справедливое и аналогичное представление о дефектах, обнаруженных в производстве, и мы запустили две модели на этих 20 групп, отмечая, сколько раз наша модель «выиграла».



Наша модель показала более высокую точность в 16 раз из 20. Оглядываясь назад, можно сказать, что мы могли бы даже рассчитывать на 99% -ную уверенность и выиграть! Но тогда оглядываясь назад всегда 20/20.

Вы можете изменить alpha на 0.01 в приведенном выше коде, чтобы увидеть результат как 16.

Обучение

Для клиента было намного надежнее увидеть, что мы выиграли 16 из 20 раз с меньшими наборами данных, вместо того, чтобы просто засвидетельствовать одну победу с большим размером выборки.

Недостаточно было просто знать, что мы можем предоставить лучшую модель, и как можно быстрее и наиболее интуитивно понятным способом продемонстрировать примерную версию клиенту.

Хотите узнать, как аналогичные показатели помогают нам завоевать доверие клиентов и обеспечить лучшее удовлетворение потребностей их бизнеса? Читать:



Использованная литература:

Хотите поделиться идеями, задать вопросы или просто обсудить мысли? Свяжитесь со мной через мой веб-сайт, Я просто студент или LinkedIn, YouTube или GitHub.

Увидимся и приятного обучения!



Получите доступ к экспертному обзору - Подпишитесь на DDI Intel