Вам не потрібно знань про домен (знання того, що означають ваші дані ) для того, щоб зайнятися інженерною функцією (знайти більш виразні способи обрамлення даних).
Як пояснив Ту Н. , ви можете знайти "швидкі та брудні" поєднання функцій, які можуть бути корисними досить легко. З огляду на вихід та індивідуальну особливість x , ви можете взяти такі перетворення, x ′ ∈ { e x , log ( x ) , x 2 , x 3 , tanh ( x ) } . Швидка перевірка корисності перетворення полягає в тому, якщо кореляція між { y , x ′ } вище, ніж кореляція міжухx′∈{ex,log(x),x2,x3,tanh(x)}{y,x′} .{y,x}
Попередження про кореляцію: Кореляція не показує все, і залежно від моделі, яку ви використовуєте (дуже нелінійна, наприклад, NN або RF) та взаємодії з іншими змінними, зміна кореляції не може означати нічого.
Однак якщо ви використовуєте просту лінійну модель, таку як логістична регресія, це є нормальним показником ефективності. Найкращим способом оцінити таку трансформацію, однак, як зазначав Фохруз Заман , було б побудувати модель з перетвореною функцією та без неї, і побачити, як розвивається помилка перевірки (у складках перехресної валідації).
Визначити однозначні трансформації досить легко таким чином. Вони застосовуються до великої кількості даних, де більш виразне відношення між вашим входом та результатом може бути в іншому масштабі. Для прикладу, зв'язок між доходом та "щастям" видається логарифмічним, але ви ніколи не записуватимете журнал доходу учасника безпосередньо.
DD2
Це може бути важко інтерпретувати внутрішнє представлення NN або навіть інтерпретувати важливість функції у випадковому лісі. Більш простим і, мабуть, більш підходящим для цієї мети способом буде модель « Розширення з деревами рішень». Існує багато бібліотек, які реалізують Boosting, і якщо ви перебуваєте у змаганнях Kaggle, як здається, ваша публікація, XGBoost, здається, використовується багатьма учасниками, тому ви можете знайти допомогу / підручники щодо того, що я буду описати.
Спочатку запустіть алгоритм прискорення, використовуючи лише пеньки , дерева рішень на 1 рівні. Пні дуже слабкі, але стимулювання робить його розумною моделлю. Це буде виконувати роль базової лінії. Залежно від бібліотеки, яку ви використовуєте, ви повинні мати можливість легко відображати, які є найбільш використовуваними функціями, і вам слід побудувати їх проти відповіді (або зробити гістограму, якщо відповідь категорична), щоб визначити деяку закономірність. Це може дати вам інтуїцію щодо того, що було б гарним перетворенням однієї функції.
Далі запустіть алгоритм підсилення з дворівневими деревами рішень. Ця модель набагато складніша за попередню; якщо дві змінні, взяті разом, мають більшу потужність, ніж взяті окремо, ця модель повинна перевершити попередню (знову ж таки, не за помилкою тренування, а за помилкою перевірки!). Виходячи з цього, ви маєте змогу витягти, яка змінна часто використовується разом, і це повинно призвести вас до потенційних багатофункціональних перетворень.
Щодо відповідних матеріалів, я б порадив наступні відео, оскільки їх легко прослідкувати