Подобрете бизнес решенията с три инструмента за тълкуване за машинно обучение

Интерпретативността на машинното обучение е много гореща изследователска тема и всяка седмица се публикуват нови научни доклади и статии по този въпрос. Тази статия представя три допълващи се инструмента, които покриват повечето от нуждите ни от тълкуване за машинно обучение в ManoMano, където ние помагаме на повече от един милион европейци всеки ден да намерят това, което искат в нашия каталог от 3 милиона направи си сам и градинарски продукти:

  1. Важна характеристика: кои функции използва моделът най-много?
  2. График на частичната зависимост: как моделът използва конкретна променлива?
  3. Принос за функция: защо моделът направи това конкретно прогнозиране?
xkcd

Защо трябва да тълкуваме нашите модели на машинно обучение?

  • Разберете бизнеса си: Кои фактори определят процента на реализация на уебсайта? Какво е влиянието на цената за доставка върху нея?
  • Създайте доверие с бизнес колеги: Защо това прогнозиране на продажбите е толкова високо? Тъй като продуктът беше продаден 157 пъти миналата седмица и сезонността за неговата категория расте.
  • Предприемете съответните действия за решаване на проблем: Защо този клиент е вероятно да избухне? Защото имаше проблеми с качеството миналия месец.
  • Отстраняване на грешки / подобряване на модела: Защо това прогнозиране на продажбите е толкова високо? Липсващи стойности в производствения набор данни. Защо не сме предвидили толкова много? Продажбите на този продукт бяха ниски, тъй като той беше на склад и не бяхме забелязали.
Прогнозна сила срещу дилема за интерпретируемост (© ManoMano)

Използвайте случай: модернизиране на скоростта на преобразуване с помощта на градиентни подсилващи дървета

За да илюстрираме трите инструмента, ние се фокусираме върху модернизацията на процента на конверсия на продукта. Ето как изглежда нашият набор от данни за обучение:

Опитваме се да прогнозираме степента на конверсия на даден продукт в определен ден, в зависимост от характеристиките на продукта (цена, рейтинги, време за доставка и т.н.) и деня от седмицата. За да опростим следния анализ, ние изкуствено изваждаме нашия набор от данни, за да имаме среден процент на конверсия от 10%.

Използваме LightGBM, изключително мощен ансамбъл модел, използващ дървета. Този инструмент се използва широко в състезания по Data Science.

Функционално значение

Значението на функцията е инструмент за изчисляване и бързо визуализиране колко полезна е всяка функция в нашия модел. Този инструмент често се използва в ансамбъл модели като Random Forest или Gradient Boosting Trees. Колкото повече се използва функция за вземане на ключови решения с дървета на решения, толкова по-висока е относителната й важност. За повече подробности как се изчислява важността на функцията, можете да се обърнете към тази публикация в блога. Нека визуализираме графиката на важността на функцията за нашия прогнозиращ модел:

Съгласно тази лентова диаграма най-важните характеристики за прогнозиране на процентите на конверсия са цената на продукта, цената за доставка, рейтингите и времето за доставка. Това съвпада с нашите бизнес интуиции, което е страхотно.

Влияние на липсващи стойности

Нека опитаме с друга настройка, представете си, че имаме проблем с качеството на данните и по някаква причина липсват 90% от ценовите стойности. След като преквалифицираме модела, ето какво получаваме:

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

Влияние на корелираните променливи

Нека добавим три корелирани (и шумни) ценови характеристики и да видим какво ще се случи:

Тук значението на нашата функция „цена“ намаля от 38% на 24%. Значението на тази променлива беше разпределено между нейните корелиращи променливи. Освен това добавянето на шумни функции увеличава използването на паметта и процесора и увеличава риска от прекаляване. Следователно една важна характеристика според този инструмент може да не е необходима функция.

Плюсовете и минусите от важно значение

  • (+) Много лесно за изпълнение, това е няколко реда код
  • (+) Бързо дава добра информация за сигнала
  • (+) Ефективен инструмент за откриване на проблеми с качеството на данните в базата данни за обучение
  • (-) Корелации, чувствителни към характеристиките
  • (-) Чувствителен към липсващи стойности
  • (-) Не предоставя връзката между функцията и целевата функция (в нашия пример знаем, че цената е много корелирана с целта, но не знаем в коя посока)

Парцели за частична зависимост

Графиките за частична зависимост са полезни за визуализиране на въздействието на даден елемент върху прогнозираната цел, маргинализиране над стойностите на всички останали характеристики. Такъв инструмент помага да се разбере връзката между целта и характеристика, като всички други неща са равни. За пълната математическа демонстрация можете да се обърнете към тази глава на Елементите на статистическото обучение. Парцелите за частична зависимост могат да се използват с всеки модел на машинно обучение. Препоръчваме да използвате много пълния пакет Python PDPBox.

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

Нека направим едномерен анализ, като изчислим средния процент на конверсия от кошчето на shipping_ratio:

Получената графика е доста ясна: степента на преобразуване е положително свързана с функцията ratio_shipping! Трябва ли да комуникираме със собствениците на фирми и да ги посъветваме да увеличат цените за доставка на всички наши продукти, за да повишат процента на конверсия? Разбира се, че не, защото корелацията не предполага причинно-следствена връзка. Нека направим частичен анализ на зависимостта от една и съща променлива и да наблюдаваме разликата:

Както се очаква и когато вземем предвид всички други функции, използвани от прогнозния модел, функцията за доставка_ratio е негативно свързана с прогнозирания процент на конверсия. Имайте предвид, че все още не виждаме истинска причинно-следствена връзка, но корелация, коригирана от други функции.

Плюсове и минуси на частичните парцели за зависимост

  • (+) Показва връзката между функция и нашата интересна променлива
  • (+) Позволява ви да видите некорилираното влияние на даден елемент върху друг, в сравнение със стандартен универсален анализ
  • (-) Отнема време за големи масиви от данни
  • (-) Ограничено до двуизмерни сюжети
  • (-) Корелации, чувствителни към характеристиките

Принос на играта

Приносът на характеристиките изчислява влиянието на всяка характеристика върху дадена прогноза. Дава микро разбиране на всяко прогнозиране. Подобно на парцелите за частична зависимост, приносът на характеристиките може да бъде изчислен независимо от модела на машинно обучение. Можете да се обърнете към тази публикация в блога, ако искате да знаете как се изчислява за случайни гори. Функцията за предсказване на LightGBM предоставя параметър за тяхното изчисляване директно. Нека прогнозираме един от най-популярните продукти на ManoMano - тренировка от Makita - и наблюдаваме приноса на всяка функция:

Този продукт има много добри оценки (644 оценки, със средна стойност 4.69 / 5). Следователно приносът на броя на оценките към прогнозирания процент на конверсия е + 12%. Цената му (167,99 €) обаче е над средната. Скъпите продукти обикновено имат по-нисък процент на конверсия. Следователно приносът му към прогнозирания процент на конверсия е -7,5%. Обърнете внимание, че сумата от вноските е равна на прогнозирания курс на конверсия (ние също трябва да добавим прихващането към сумата).

Можем да повторим този процес за друг продукт и да наблюдаваме разликите:

Дори ако този продукт има прогнозен курс на конверсия, подобен на този на предишната бормашина Makita, той има друг "профил": той е много по-евтин (34.2 €) и е добре оценен, но времето и цената на доставка са възпиращи (6,9 € за доставка в рамките на 8 дни).

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

Плюсове и минуси на приноса на играта

  • (+) Микро обяснение на прогноза като сбор от приноси за функции
  • (+) Помага за проучване на прогнозите, за да открие евентуално грешки в модела или проблеми с качеството на данните
  • (+) Изградете доверие със собствениците на фирми, като им обясните как се държи алгоритъмът
  • (+) Разрешаване на предписващо моделиране (срещу прогнозно моделиране): обясняването защо клиентът може да избие помага да се предприемат правилни действия
  • (-) Корелации, чувствителни към характеристиките

Заключения

Представихме три инструмента, които покриват повечето от нуждите ни за интерпретация в ManoMano. Някои предупреждения, ако ги използвате извън кутията:

  • Силно свързани характеристики са неудобство за тълкуемостта на машинното обучение. Трябва да се отървете от тях, преди да се опитате да интерпретирате вашия модел.
  • Опитът да се интерпретират модели с много слаба прогнозна ефективност (например 0.51 AUC) няма смисъл. Полезността на една интерпретация е пряко свързана с предсказуемия сигнал, уловен от модела.

Имайте предвид, че съществуват други инструменти за интерпретируемост (LIME, Shapley стойности, ICE графики и др.) Вижте пълното ръководство на Кристоф Молнар за повече информация и математически подробности за тези инструменти.

Надяваме се, че тази статия ще бъде полезна за вас и че въпросите за интерпретацията вече няма да са проблем при използване на мощни техники за машинно обучение!

Написано от Жак Питърс и Ромен Айрес.

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

Александър Казе, Йохан Грембер, Хлое Мартинот, Марин Де Бошамп, Брайс Тичит, Рафаел Симеон, Томас Чаруел, Луи Пери, Кирил Обергер, Матьо Корнек и всички наши страхотни колеги от ManoMano.

Присъедини се към нас

Търсим нови колеги в ManoMano, разгледайте нашите предложения за работа!