Вступление

В Mercado Libre, как и почти на всех платформах электронной коммерции, мы ежедневно решаем проблему категоризации. Но к чему эта проблема? Когда продавец создает новую публикацию, одним из шагов является выбор категории, к которой принадлежит публикация. Например, продукт «Iphone X 64gb» относится к категории «Домашняя страница› Сотовые телефоны и телефоны ›Сотовые телефоны и смартфоны».

Правильная категоризация публикаций очень важна, поскольку с категорией связано множество конфигураций, таких как фильтры, атрибуты продукта, доставка и т. Д., И любое несоответствие может негативно повлиять как на продавцов, так и на покупателей. Чтобы предотвратить это, мы разработали несколько моделей машинного обучения, чтобы помочь пользователю найти категорию в огромном дереве из +3000 категорий. Мы постоянно повторяем эти модели, чтобы адаптировать их к изменениям в дереве категорий, а также для повышения их производительности.

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

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

Проверка гипотез

Мыслительный процесс

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

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

Предположения

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

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

Подводя итог, нам нужно минимальное количество наблюдений. Мы определим «достаточно большой» как наличие не менее 10 элементов каждого класса, чего достаточно для приближения.

ПРИМЕЧАНИЕ. Допустимая погрешность зависит от установленного нами уровня достоверности (например, 95%) и от размера нашей выборки - чем больше размер выборки, тем лучше будет приближение (т. Е. Погрешность будет уже).

Теперь давайте проверим, соблюдаем ли мы предположения:

1- Мы начнем с нашего набора данных всех публикаций в категории МОБИЛЬНЫЕ ТЕЛЕФОНЫ. Мы случайным образом перемешаем этот набор данных, а затем начнем вручную помечать элементы построчно.

2- Блокнот будет перебирать перетасованный набор данных, и после того, как мы отметим достаточное количество элементов (по крайней мере, 10 из каждого класса), блокнот автоматически распечатает сообщение о том, что у нас достаточно отмеченных элементов.

Некоторые основные понятия

Нулевая гипотеза (H₀) - это стандартное утверждение для того, что мы измеряем; мы могли принять или отвергнуть эту гипотезу. В этом случае мы знаем, что наша модель измерила 20% ошибочно категоризированных элементов, поэтому мы сформулируем нулевую гипотезу следующим образом:

H₀: p₀ = 0.2

Альтернативная гипотеза (Ha) - это утверждение, которое предлагает другой и потенциальный результат, которого мы могли бы ожидать, в этом случае доля ошибочно категоризированных элементов отличается от 20%.

Ha: p ≠ 0.2

Уровень значимости (𝛼) (часто установлен на 5%) - это вероятность того, что исследование отклонит нулевую гипотезу, учитывая, что нулевая гипотеза считалась верной.

𝛼 = 0.05

Значение p (значение p) - это то, что мы будем вычислять, и оно относится к вероятности получения наблюдаемого результата при условии, что нулевая гипотеза верна. Другими словами, предположим, что в нашей выборке мы обнаружили, что 40% были неправильно отнесены к категории. Здесь p-значение будет вероятностью взять любую простую случайную выборку и найти те же 40% при условии, что истинная пропорция составляет 20% (как указано в нулевой гипотезе). Если p-value ‹𝛼, то мы отвергаем нулевую гипотезу и говорим, что результат статистически значим.

А пока хватит терминологии, перейдем к записной книжке! Весь код доступен на GitHub.

Начнем с загрузки набора данных. Это CSV-файл, содержащий заголовки публикаций в категории МОБИЛЬНЫЕ ТЕЛЕФОНЫ.

Теперь, используя набор данных, мы начинаем перебирать его и маркировать каждую строку. Для этого мы создали виджет, используя ipywidgets lib.

Когда мы помечаем 10 каждого из них, будет отображаться сообщение «Well Done.…».

Наконец, пометив публикации, мы смогли произвести расчеты.

Как видите, мы пометили только 24 элемента для анализа и обнаружили, что почти 41% элементов были неправильно отнесены к категории!

Теперь мы вычисляем p-значение и делаем из него вывод.

Выводы

Значение p меньше альфа, поэтому мы можем сказать, что у нас достаточно доказательств, чтобы отвергнуть нулевую гипотезу и сделать вывод о том, что доля ошибочно категоризированных элементов отличается от того, что мы заявили.

Благодарности

  • Я хочу поблагодарить Янину Либенсон за помощь в улучшении статьи своими предложениями.