Вступление

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

Соревнование

Когда вы предоставляете нам помеченные данные обучения для построения модели ИИ, мы используем алгоритм машинного обучения для выявления закономерностей в ваших данных. Затем мы применяем эти шаблоны к будущим, немаркированным примерам, чтобы делать на их основе прогнозы. Поскольку мы не можем заранее знать, насколько точной будет эта модель машинного обучения, мы не используем часть данных для ее тестирования: мы обучаем модель на 80% данных, а затем тестируем ее производительность на оставшихся 20%. Поскольку мы знаем правильные метки для этих последних 20%, мы можем сравнить наши прогнозы с известными метками, чтобы оценить точность нашей модели и оценить, насколько хорошо она будет работать в реальных условиях.

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

Чтобы понять, почему эти три числа различаются, представьте себе очень грубую модель «совершенной покупки», которая просто каждый раз предсказывает ложь: у нее будет ужасная истинная точность 0%, но, казалось бы, превосходная ложная точность 100%. Более того, если покупки совершаются только по 10% звонков, общая точность составит 90%! Хотя эта гипотетическая модель, возможно, не очень полезна - она ​​никогда не сможет правильно идентифицировать покупку - ее эффективность может быть хорошей в соответствии с этими показателями. Это представляет собой ключевую проблему с нашими старыми оценками точности: хотя они технически точны, их трудно интерпретировать.

Другой пример: предположим, что у нас есть новая (и значительно улучшенная) модель «совершена покупка», для которой истинная точность, ложная точность и общая точность составляют 90%, то есть всякий раз, когда поступает звонок, была ли покупка сделано или нет, но наша модель имеет 90% шанс правильно спрогнозировать свой результат. Если бы вы прослушали 10 звонков, которые модель пометила как покупки, вы могли бы ожидать, что 9 из них будут правильными… но, к сожалению, это не так! Если коэффициент конверсии составляет 10%, то только половина из этого образца будет правильной! Этот неожиданный результат возникает из-за того, что покупки в нашем воображаемом примере по своей природе редки: для каждой совершенной покупки будет гораздо больше звонков, которые не завершатся покупкой. Несмотря на то, что в этом примере у нас 90% ложной точности, поскольку существует так много случаев, когда покупок не совершается, мы, тем не менее, ожидаем нескольких ложных срабатываний. Если вы просчитаете, то увидите, что на каждую правильную покупку, которую мы правильно определили, мы также ожидаем примерно один звонок, который был ошибочно отмечен как покупка. По этой причине редкие события по своей природе трудно идентифицировать, и вам нужна чрезвычайно точная модель, чтобы найти редкие сигналы ... чтобы искать сигнал, который встречается только в 10% случаев, вам нужна модель, которая лучше, чем 90% точности. Если покупки совершаются только в 5% случаев, вам понадобится модель с точностью 95% и так далее. Наша старая оценка точности не учитывала эту дополнительную трудность.

Опять же, наши старые оценки не были неправильными - на самом деле они являются стандартными показателями точности для моделей машинного обучения - но они могут сбивать с толку, поскольку отличаются от того, что мы в разговорной речи называем «точностью». Мы разработали улучшенный показатель точности, который является более интуитивным представлением производительности наших моделей; мы описываем эту новую оценку количественно в разделе 2 ниже.

Еще один сбивающий с толку аспект нашей старой оценки точности - это то, что она может быть шумной. Напомним, что мы не можем знать производительность наших моделей априори: мы должны оценить ее, используя часть данных, которые не используются для тестирования. В результате наши оценки точности имеют некоторую неопределенность, которая может быть значительной для небольших наборов данных. Например, представьте, что у покупателя есть модель «совершена покупка» с точностью 91%. Надеясь улучшить эту модель, она загружает больше обучающих данных и разочарована, увидев, что ее точность упала до 89%. Это может показаться удивительным, но на самом деле ее модель изменилась с (91 ± 15)% до (89 ± 7)%… очень вероятно, что с добавленными данными она улучшилась, но для нее не было возможности чтобы сделать это из наших оценок точности!

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

Формула для нового счета

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

В нашей старой системе мы определяли истинную точность как долю истинных меток, которую мы правильно предсказали:

Ранее мы обсуждали удивительный пример, когда у нас была модель с истинной точностью 90%, но для которой только около половины истинных прогнозов оказались верными. Причина этого несоответствия заключается в том, что, когда мы выборочно проверяем правильность предсказаний, мы фактически измеряем долю истинных прогнозов, которые верны, а не долю истинных продаж Мы правильно предсказали. Символически мы измеряем количество:

которая широко известна как точность. Поскольку в этом примере мы предположили, что продажи были редкими, ложных срабатываний больше, чем истин, и, следовательно, количество ложных срабатываний FP больше, чем количество ложноотрицательных FN. Следовательно, истинная точность p ниже, чем истинная точность a, и производительность модели в этой задаче ниже, чем мы ожидали вначале.

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

Этот показатель, обычно называемый оценкой F1, будет низким, если либо точность a, либо точность p низкая, и, таким образом, должен предотвратить неожиданности. как в нашем примере. (Этот тип среднего известен как гармоническое среднее и обычно является правильным методом для усреднения скоростей.)

Хотя оценка F1 - очень полезный показатель, он измеряет производительность модели только по классу true. Поскольку мы ожидаем, что правильное предсказание истинных и ложных классов важно для наших клиентов, мы цитируем новую метрику производительности, определяемую как

где R - общее количество правильных прогнозов, а W - общее количество неверных прогнозов. Это обобщение оценки F1, включающее производительность ложного класса, и мы считаем, что это дает хорошую консервативную оценку производительности модели, независимо от того, как вы собираетесь ее использовать.