Які алгоритми машинного навчання корисні для оцінки, які функції є більш важливими?


12

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

Особливості: A, B, C (завжди присутній) та D, E, F, G, H (іноді присутній)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Я хочу передбачити значення результату, а поєднання додаткових параметрів дуже важливо для визначення результату. У цьому прикладі наявність E і F призводить до великих результатів, тоді як наявність E і G не відповідає. Які алгоритми та методи машинного навчання корисні для фіксації цього явища?


"Іноді присутній", ви маєте на увазі, що знаєте їх значення лише деякий час? Або що вони, як відомо, не грають ролі у більшості випадків? А може, щось інше?
Девід Дж. Харріс

@ DavidJ.Harris Під "іноді присутнім" я маю на увазі, що конкретний приклад навчання не має властивості. Це як якщо б вона дорівнювала нулю. У моїй проблемі всі мої функції будуть позитивними числами в заданому діапазоні (наприклад, від 5 до 15 або 100 до 1000).
Бенджамін Крозьє

1
може бути добре поглянути на це посилання eren.0fees.net/2012/10/22/…
erogol

Відповіді:


14

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

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


3

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

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

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

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

  3. Деякі змінні можуть бути важливими лише для деяких спостережень. Відсутність важливості для інших спостережень може заплутати вимірювання загальної важливості шляхом усереднення реальної різниці.

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

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


3

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

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

Множинна регресія - це, мабуть, найдавніша методика. Ідея полягає в тому, щоб підходити до моделі, що описує відповідь передбачувачів, а утримувати лише прогнози, які мають великий вплив на відповідь (великий коефіцієнт пропорційності). Тут, ймовірно , доведеться перекодувати відсутність D, E, F і G , як D=0, E=0, F=0, G =0або що - то в цьому роді.

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


2

Я використовую інформаційний приріст (також відомий як Взаємна інформація). Ми з моїм радником регулярно використовуємо підхід, описаний у цій статті Cohen, 2008 для аналізу особливостей для класифікації SVM.


2

Випадкові ліси можуть бути дуже зручними для того, що ви хочете зробити. Пакет randomForest для R має функцію, яка обчислює 2 важливі заходи. Він також має можливість створити деякі ділянки часткової залежності, щоб ви могли візуально перевірити граничний вплив, який може мати прогноктор на відповідь.


1

Мені тут неприємно, але з причини. Чи задумалися ви замінити нерівномірні спостереження індикаторною змінною присутній | not_present? З вашого опису виглядає, що це значення показника є дійсною ознакою, оскільки наявність факторів від D до H неінформативна: тобто їх наявність просто вказує на більші результати.

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