Я читав звіт про переможне рішення конкурсу Kaggle ( Класифікація зловмисних програм ). Звіт можна знайти у цьому дописі на форумі . Проблема була проблемою класифікації (дев'ять класів, метрика - логарифмічна втрата) із 10000 елементами в наборі поїздів, 10000 елементами в тестовому наборі.
Під час змагань моделі оцінювались проти 30% тестового набору. Ще одним важливим елементом є те, що моделі працювали дуже добре (майже до 100% точності)
Автори застосували таку методику:
Ще одна важлива методика, яку ми придумуємо, - це Навчальне навчання. Спочатку ми генеруємо псевдо мітки тестового набору, вибираючи максимальну ймовірність нашої найкращої моделі. Тоді ми прогнозуємо тестовий набір знову в крос-валідації як із даними поїзда, так і з даними тесту. Наприклад, набір даних тесту розділений на 4 частини A, B, C і D. Ми використовуємо всі дані тренувань, а також тестові дані A, B, C з їх псевдо мітками, разом як новий навчальний набір, і ми прогнозуємо тест набір D.
Цей же метод використовується для прогнозування A, B і C. Цей підхід, винайдений Сяочжоу, працює напрочуд добре, і він зменшує локальні крос-валідаційні втрати, загальні втрати ЛБ та приватні втрати ЛБ. Найкраща навчальна модель з напівпідтримкою може досягти 0,0023 при втраті журналу приватного LB, що є найкращим балом за всі наші рішення.
Я дійсно не бачу, як це може покращити результати. Це тому, що 30% тестового набору було "просочене", і це був спосіб використовувати цю інформацію?
Або є якась теоретична причина, яка пояснює, чому це працює?