Як вибрати найкращий показник для вимірювання калібрування?


10

Я програмую і займаюся тестовими розробками. Після того, як я змінив код, я запускаю свої тести. Іноді вони досягають успіху, а іноді - невдачі. Перед тим, як запустити тест, я записую число від 0,01 до 0,99, щоб переконатися, що тест буде успішним.

Хочу знати, чи вдосконалююсь я передбачуючи, чи вдасться мій тест чи не вдасться. Було б також непогано, якщо я можу відстежити, чи краще я передбачу, чи вдасться випробування в понеділок чи п’ятницю. Якщо моя здатність передбачати успішність тесту співвідноситься з іншими показниками, які я відстежую, я хочу знати.

Це залишає мені завдання вибрати правильну метрику. У програмі Superforcasting Філіп Тетлок пропонує використати показник Brier для вимірювання того, наскільки фахівці відкалібровані. Ще одна метрика, запропонована в літературі, - це логарифмічне правило скорингу . Є й інші можливі кандидати.

Як вирішити, який показник використовувати? Чи є аргумент на користь того, щоб одне правило скорингу над іншими?


1
Потенційним джерелом труднощів у вимірюванні змін у вашій майстерності прогнозування є те, що основна складність проблеми прогнозування може змінитися. Зміни у вашій майстерності можуть відрізнятися від змін у складності проблеми.
Меттью Ганн

Відповіді:


1

Я припускаю, що ви робите одиничні тести на свій код.

Однією ідеєю, яку я можу придумати, яка, можливо, не буде робити саме те, що ви хочете, - це використовувати лінійну модель.

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

Скажімо, у вас є вектор який включає результат ваших тестів, і інший вектор x, який включає ваші прогнози результату.Yх

Тепер ви можете просто підходити до лінійної моделі

уi=а+бхi+ϵ

і знайти значення , тим вище значення b вказувало б на те, що ваші прогнози стають кращими.бб

Завдяки цьому цей підхід є приємним, що тепер ви можете почати додавати купу інших змінних, щоб побачити, чи це створює кращу модель, і ці змінні можуть допомогти зробити більш якісні прогнози. Змінні можуть бути показником для дня тижня, наприклад, для понеділка це завжди буде 1, а нуль для всіх інших днів. Якщо ви включите цю змінну в модель, ви отримаєте:

уi=а+аПонеділок+бхi+ϵ

аПонеділок

Ви також можете створити нову змінну, де ви дасте бал для оцінки складності виконуваного завдання. Якщо у вас є контроль версій, ви можете, наприклад, використовувати кількість рядків коду як складність, тобто чим більше ви пишете коду, тим більше шансів щось зламається.

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

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

Зрештою, у вас є модель передбачення, де ви можете спробувати передбачити ймовірність успіху. Якщо вам вдасться створити це, то, можливо, вам навіть не доведеться робити власні прогнози, ви можете просто використовувати всі змінні та мати досить гарну здогадку про те, чи все буде працювати.

Вся справа в тому, що ви хотіли лише одне число. У такому випадку ви можете використовувати просту модель, яку я представив на початку, і просто скористатися нахилом, і повторити обчислення для кожного періоду, тоді ви можете подивитися, чи є тенденція в цьому балі з часом.

Сподіваюсь, це допомагає.


1
бYхаббба

@IWS Дякую за вклад, я погоджуюсь з вами в тій мірі, коли ви хочете, щоб одне значення оцінило вашу ефективність, тоді пропуск перехоплення є хорошою ідеєю. Якщо ви хочете спробувати інтерпретувати дані далі (і їх у вас достатньо),, можливо, буде корисно додати перехоплення та порівняти моделі.
Гумео

1

Хоча це далеко не відповідь і більше посилання, можливо, було б хорошою ідеєю перевірити Steyerberg E - Epidemiology 2012 .

У цій статті Стейерберг та його колеги пояснюють різні способи перевірки продуктивності моделі прогнозування для моделей з бінарними результатами (успіхи чи невдачі). Калібрування - це лише один із цих заходів. Залежно від того, чи хочете ви мати точну ймовірність , точну класифікацію чи точну перекласифікацію, ви можете використовувати різні міри продуктивності моделі. Незважаючи на те, що цей рукопис стосується моделей, які слід використовувати в біомедичних дослідженнях, я вважаю, що вони можуть бути застосовні і в інших ситуаціях (ваших).

Більш специфічні для вашої ситуації калібрувальні показники дійсно важко інтерпретувати, оскільки вони підсумовують (тобто середню) калібрування за весь діапазон можливих прогнозів. Отже, у вас може бути хороший підсумковий результат калібрування, тоді як ваші прогнози були вимкнені у важливому діапазоні передбачуваних ймовірностей (наприклад, у вас може бути низький (= хороший) кращий показник, тоді як прогноз на успіх вимкнений вище чи нижче певного) прогнозована ймовірність) або навпаки (поганий підсумковий бал, тоді як прогнози добре відкалібровані в критичній області). Тому я б запропонував вам подумати над тим, чи існує такий критичний діапазон передбачуваної ймовірності успіху у вашому випадку. Якщо так, використовуйте відповідні заходи (наприклад, індекси перекласифікації). Якщо ні (мається на увазі, що ви зацікавлені в загальній калібруванні), використовуйте ширше

На закінчення, будь-який із заходів зведення калібрування вимагає вашого першого кроку, щоб побудувати прогнозовані ймовірності проти спостереженої ймовірності (див. Відповідь Outlier, наприклад, як це зробити). Далі, підсумковий захід можна обчислити, але вибір зведеного заходу повинен відображати в першу чергу мету передбачення успішних невдач.


0

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

Я зробив 20 бункерів передбачуваної ймовірності та спробував побудувати середню передбачувану та фактичну ймовірність успіху. Для середньої передбачуваної вірогідності я взяв середнє значення діапазону бін. Для середньої фактичної ймовірності я обчислював фактичний успіх та кількість невдач у бункерах, з яких отримував фактичну (середню) ймовірність успіху в кошику. Щоб зменшити вплив залишків, я видалив дані верхнього та нижнього 5% перед тим, як взяти фактичну медіану ймовірність у кожному відрізку.

Як тільки я отримав їх, я міг легко побудувати дані.


Було б добре зазначити, що це перший крок в обчисленні тесту на придатність Хосмера-Лемешоу.
jwimberley
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.