Як я міг уявити важливість різних вхідних даних для прогнозу для нелінійної моделі чорного поля?


9

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

Прогнози й надалі будуть ручними, але я намагаюся створити корисний інструмент, щоб забезпечити синоптикам кращу кількісну оцінку відносних ефектів прогнозів. Існують також важливі ефекти, такі як сезонні впливи, які часто не помічають, що я хотів би виділити цей інструмент для користувача. Я очікую певного рівня зворотного зв'язку та скептицизму щодо процесу моделювання від деяких «досвідченіших» синоптиків (багато хто з них мають мало офіційних статистичних знань), тому комунікація є як мінімум такою ж важливою, а сама ефективність моделі з точки зору досягнення вимірюваного покращення точності прогнозу.

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

Тепер, уявіть, модель була простою лінійною регресією. Можна було б уявити показ відносного "ефекту" прогнозів, заснованих на подіях, помноживши значення на коефіцієнт корисної дії та відображаючи як просту діаграму. Усі смуги різних прогнокторів складають загальне відхилення від значення AR, і це коротко і чітко показує ті, які в даному випадку мають сильний вплив.

Проблема полягає в тому, що прогнозований процес виявляє високу ступінь нелінійності в прогнозах, або, принаймні, я мав набагато більший успіх у нелінійних алгоритмах машинного навчання «чорний ящик» (випадковий ліс та ГБМ), ніж у GLM для цей набір даних. В ідеалі я хотів би мати можливість безперешкодно змінити модель, що працює "під капотом", не змінюючи досвіду користувача, тому мені потрібен певний загальний спосіб продемонструвати важливість різних вимірювань без використання певного алгоритму підходу. Моїм сучасним підходом буде квазілінеаризація ефектів шляхом встановлення всіх значень до нуля, за винятком одного прогноктора, записування прогнозованого відхилення та повторення для всіх прогнокторів, відображення результатів у згаданій вище гістограмі. За наявності сильної нелінійності це може бути не так добре.


1
Чим ти закінчив - ти міг би поставити малюнок чи два? Крім того, "встановлення всіх значень на нуль, за винятком одного прогноктора" - чи не хочете ви градієнт навколо найкращих поточних значень, а не навколо 0?
denis

Відповіді:


4

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

В ідеалі ви це зробите на фактично спостережуваних тестових входах. Наприклад, можна середні абсолютні значення розрахункових градієнтів на всіх вхідних тестах за попередні 2 дні. Величина цього середнього градієнта може бути використана для сортування важливості прогнозів. (Вам потрібно буде бути обережним з оцінкою градієнта, щоб використовувати відповідні одиниці за допомогою z-балів або яким-небудь подібним методом.) Ви можете зберегти ці розрахункові градієнти за сезоном для порівняльного аналізу.

Див. " Як пояснити індивідуальні рішення про класифікацію ", Девід Баеренс та ін. ін. в JMLR для отримання детальної інформації про цю ідею. У статті йдеться про класифікацію, але легко також узагальнюється до регресії.


Це фантастично! Дуже корисна довідка, яка буде корисною для цього питання у мене і в інших місцях.
Богдановіст

2

Ви випробували модуль scikit-learn в python.

Ви можете "комп'ютерно важливий" для особливостей його randomForestClassifier


1
Спочатку я також подумав, що обчислення важливості функції може бути корисним, але врешті-решт це порівняно поганий підхід, коли слід пояснити передбачуване значення для конкретного випадку. Особливість важливості надає лише невиразні підказки для людських експертів.
steffen

Окрім того, ОП попросила модельний незалежний підхід ...
steffen

Проблема змінних важливих заходів полягає в тому, що вони застосовуються до всього набору даних в середньому, а не розповідають, що насправді було важливим у будь-якому конкретному випадку.
Богдановіст

Насправді я думаю, що це модельний незалежний підхід, ви, можливо, застосовуєте його до інших класифікаторів, ніж випадкові ліси. На веб-сайті Бреймана є тонке зауваження про те, як можна обчислити значення змінної для одного випадку. stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (останнє речення) Я думаю, що це ще недостатньо вивчено або принаймні широко перевірено. Середня змінна важливість - це не завжди те, що ви хочете. Наприклад, це не тоді, коли ви хочете допомогти практикуючому лікареві прийняти рішення щодо однієї справи. Це дійсно цікава тема.
Симоне

Є цікава стаття, де Брейман трохи обговорює цей метод і при логістичній регресії: "Статистичне моделювання: дві культури". Приємне читання. Речення, яке мені найбільше подобається, таке: "Моє визначення змінної важливості базується на прогнозуванні. Змінна може вважатися важливою, якщо її видалення серйозно впливає на точність прогнозування". Ця заява стосується будь-якого класифікатора, який ви можете використовувати.
Симона
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.