🛒 Прогнозувальник Покинутого Кошика — Підсилені Пеньки Наживо
Спостерігайте, як справжній ансамбль AdaBoost із дерев-пеньків навчається наживо на симульованих ознаках сесій покупок, коли кожен слабкий учень виправляє неправильно класифіковані сесії попереднього раунду.
Про цю симуляцію
Цей тренажер запускає справжній ансамбль AdaBoost на синтетичному наборі даних електронної комерції. Кожна сесія покупок несе п'ять реальнозначних ознак — тривалість сесії, кількість товарів у кошику, вартість кошика, кількість переглядів сторінок і прапорець постійного відвідувача — і мітку (покинуто чи конвертовано), взяту з базового нелінійного правила плюс шум. Кожен раунд підсилення виконує вичерпний зважений пошук однопризнакового однопорогового дерева-пенька з найнижчою зваженою помилкою класифікації, надає йому вагу голосу на основі цього рівня помилки й експоненційно перезважує зразки, на яких він помилився, тож наступний пеньок вимушений спеціалізуватися на складних випадках.
🔬 Що показано
Сесії нанесені як точки в обертовій 3D проєкції ознак (тривалість, вартість кошика, перегляди сторінок); розмір точки масштабується за поточною вагою AdaBoost зразка, тож сесії, які постійно неправильно класифікуються, помітно зростають раунд за раундом. Межа рішення пенька активного раунду малюється наживо, коли його розділова ознака лежить на нанесеній осі, а поточна діаграма відстежує як зважену помилку пенька раунду, так і справжню помилку навчання ансамблю 0/1, коли вони падають.
🎮 Як користуватися
Встановіть кількість раундів для запуску та гранулярність пошуку пенька (скільки кандидатних порогів на ознаку сканується), потім робіть крок по одному раунду або запустіть усі раунди безперервно. Регенерація перегенерує свіжий синтетичний навчальний і відкладений тестовий набір із того самого базового правила. Повзунок швидкості навчання застосовує справжню усадку AdaBoost до ваги голосу кожного пенька.
💡 Чи знали ви?
Жоден окремий пеньок рішень не може добре розділити цей набір даних, оскільки справжнє правило покинення поєднує дві різні ознаки (швидкий відскок з низькою залученістю АБО дорогий кошик від відвідувача-новачка). Саме тому й було винайдено AdaBoost: послідовність простих, окремо слабких розділень, вирівняних за осями, поєднаних через схему експоненційного перезважування, може вирізьбити межу рішення, яку жоден окремий пеньок ніколи б не намалював.
Часті питання
Що таке AdaBoost і чому використовуються дерева-пеньки як слабкі учні?
AdaBoost (Adaptive Boosting) будує сильний класифікатор, поєднуючи багато слабких учнів у зважене голосування більшості. Дерево-пеньок — розділення за однією ознакою й одним порогом — є класичним слабким учнем, оскільки від нього вимагається лише трохи кращий за випадкове вгадування результат. Сила AdaBoost походить від схеми перезважування: після кожного раунду вага зразків, на яких поточний ансамбль помиляється, збільшується, змушуючи наступний пеньок зосередитися на складних випадках.
Як насправді обирається найкращий пеньок кожного раунду?
Для кожної кандидатної ознаки (тривалість сесії, товари в кошику, вартість кошика, перегляди сторінок, прапорець постійного відвідувача) алгоритм сканує кандидатні пороги між відсортованими навчальними значеннями та для обох полярностей розділення обчислює зважену помилку класифікації, використовуючи поточні ваги зразків. Обирається пеньок із найнижчою зваженою помилкою за всіма ознаками, порогами й полярностями — це вичерпний, справжній пошук, а не евристичне скорочення.
Як оновлюються ваги зразків і ваги пеньків (альфа)?
З огляду на зважену помилку ε переможного пенька, його вага голосу дорівнює alpha = 0,5·ln((1−ε)/ε), масштабована регулятором швидкості навчання (усадки). Потім вага кожного навчального зразка множиться на exp(−alpha·y·h(x)) — зменшуючи вагу правильно класифікованих зразків і експоненційно збільшуючи вагу неправильно класифікованих, — перш ніж весь вектор ваг перенормалізується до суми одиниця. Це точне правило оновлення AdaBoost.M1.
Чому помилка навчання іноді трохи зростає між раундами?
Діаграма відстежує справжню помилку навчання 0/1 зростаючого зваженого ансамблю голосування більшості, а не лише зважену помилку найновішого пенька. Оскільки кожен новий пеньок обирається для виправлення зразків, на яких помиляється ансамбль, його додавання іноді може випадково переінакшити кілька раніше правильних зразків із низькою вагою. Загальна тенденція все ще є справжнім, перевірюваним зниженням помилки навчання ансамблю в міру накопичення раундів.
Що визначає, чи покинута сесія в симульованих даних?
Кожна синтетична сесія отримує п'ять ознак і мітку, згенеровану зі справжнього нелінійного базового правила: сесія позначається як покинута, якщо вона схожа на швидкий відскок з низькою залученістю (коротка тривалість і мало переглядів сторінок) АБО на дорогий кошик від відвідувача-новачка, який вагається перед оформленням замовлення — із приблизно 8% випадкового шуму міток поверх. Оскільки це правило поєднує дві різні ознаки, жоден окремий пеньок не може ідеально розділити його, саме тому й потрібен ансамбль кількох пеньків.
Справжній цикл AdaBoost.M1: вичерпний зважений пошук дерева-пенька за п'ятьма ознаками, експоненційні оновлення ваги зразків, зважене усадкою голосування альфа й ансамбль зваженого голосування більшості, оцінений на відкладеному синтетичному тестовому наборі кожного раунду.
3D · рушій Three.js / WebGL · ціль 60 FPS · працює повністю на клієнті, без встановлення