Чому функціональна техніка працює?


20

Нещодавно я дізнався, що один із способів пошуку кращих рішень для проблем ML - це створення функцій. Можна зробити це, наприклад підсумувавши дві функції.

Наприклад, ми маємо дві особливості «атака» та «захист» якогось героя. Потім ми створюємо додаткову функцію під назвою "загальний", яка є сумою "атаки" та "оборони". Зараз мені здається дивним те, що навіть жорсткі «атака» та «захист» майже ідеально співвідносяться із «загальним», ми все одно отримуємо корисну інформацію.

Що за цим має математика? Або я міркую неправильно?

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


Практика підведення підсумків двох ознак, безумовно, не представляє "інженерії функцій" взагалі.
xji

Відповіді:


21

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

По-перше, я відповів би, чому взагалі функціонують інженерні роботи.

Малюнок вартує тисячі слів. Ця цифра може розповісти вам про деяку інформацію про функціональну інженерію та чому вона працює ( джерело зображення ):

введіть тут опис зображення

  • Дані в декартових координатах є складнішими, і скласти правило / побудувати модель для класифікації двох типів порівняно важко.

  • Дані в полярних координатах набагато простіші:, ми можемо написати просте правило на щоб класифікувати два типи.r

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

Тут я відповідаю на питання, згадане у вашому прикладі (загалом про атаку та оборону)

Насправді, інженерія функцій, згадана в цій сумі прикладу атаки та оборони, не спрацює добре для багатьох моделей, таких як лінійна модель, і спричинить деякі проблеми. Див. Мультиколінеарність . З іншого боку, така функціональна інженерія може працювати на інших моделях, таких як дерево рішень / випадковий ліс. Детальніше дивіться у відповіді @ Імрана.

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


Сума не повинна бути колінеарною з додатками. Дивіться, наприклад, мою відповідь.
Кодіолог

15

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

ad0а+г<01а+г0

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

введіть тут опис зображення

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

Однак, якщо ми додамо a+dяк особливість, то проблема стає тривіальною для дерева рішень. Він може ігнорувати особу aта dособливості та вирішувати проблему за допомогою одного a+d<0пня рішення.

введіть тут опис зображення

а+г

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


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

1
Наприклад , якщо ви пробували те ж саме з лінійної регресії , то aі dбуде досить і додаючи в a+dякості ознаки не матиме значення.
Імран

Я оновив свою відповідь, щоб зробити це більш явним.
Імран

1
Крім того, для розщеплення по діагональній лінії потрібно один розкол. Сходи, які ви намалювали, "використовують" сім проділів.
Накопичення

3

totaltotalattackdefenseattackdefensetotalattacktotaldefense17

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

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


1
це справді правда? Звичайно, у простій лінійній моделі це не так: матриця [attack, defense, total], звичайно, є ранг 2. Я міг би уявити щось подібне до пеніалізованої лінійної моделі, що може змінити ситуацію, але це базується на інтуїції, а не на повній роботі. Чи можете ви пояснити, чому якщо attackі defenseне мають сильної кореляції total(що відбувається, коли attackі defenseсильно негативно співвідносяться), чому це totalможе бути корисним?
Кліф АВ

1
@CliffAB Заднім числом я тут трохи погіршився. Я мав рацію, кажучи, що побудована функція може бути корисною, коли вона сильно не співвідноситься з іншими прогнозами, і це totalне потрібно сильно співвідносити з attackабо defense, але ви ніколи не будете використовувати два предиктори та їх суму в одній моделі через лінійну залежність, при цьому випливає сильна кореляція між деякими двома з трьох.
Кодіолог

1

Щоб дати загальну відповідь, інженерія функцій в більшості випадків стосується вилучення значущих особливостей з ваших даних, тож якщо ви надаєте більше інформації своїй моделі, вона, очевидно, повинна поводитися краще. Скажіть, що ваші дані складаються з електронних адрес у формі 'name.surname@domain.country-code'. Якщо ви використовували їх як такі, що є у вашій моделі, кожній людині притаманний би унікальний електронний лист, тому це мало би нам сказало. Це сказало б нам лише про те, що один електронний лист, можливо, належить іншій особі, а не інший. Завдяки інженерії функцій, з таких адрес ви можете отримати інформацію про можливу стать (ім'я), родину та етнічну приналежність (прізвище), національність (домен) та багато іншого - це дає вам дуже багато інформації, чи не так?


1

Що ви намагаєтеся досягти зі своєю загальною характеристикою ? Якщо ви просто порівнюєте героїв, атака та захист можуть бути кориснішими. Якщо ви вважаєте, що тип складання (як орієнтований на напад та проти оборонно-орієнтованого) є корисним, можливо, атака / захист виявиться більш корисною. А може бути, MyAttack - YourDefense корисніший.

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

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