Як виконати інженерію функцій на невідомих функціях?


19

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

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

Відповіді:


19

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


Як пояснив Ту Н. , ви можете знайти "швидкі та брудні" поєднання функцій, які можуть бути корисними досить легко. З огляду на вихід та індивідуальну особливість x , ви можете взяти такі перетворення, x { e x , log ( x ) , x 2 , x 3 , tanh ( x ) } . Швидка перевірка корисності перетворення полягає в тому, якщо кореляція між { y , x } вище, ніж кореляція міжyxx{ex,log(x),x2,x3,tanh(x)}{y,x} .{y,x}

Попередження про кореляцію: Кореляція не показує все, і залежно від моделі, яку ви використовуєте (дуже нелінійна, наприклад, NN або RF) та взаємодії з іншими змінними, зміна кореляції не може означати нічого.

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

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


DD2

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

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

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


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


4

Ви можете скористатися різними комбінаціями функцій, такими як сума функцій: feat_1 + feat_2 + feat_3... або продукт із них. Або ви можете перетворити функції за допомогою журналу, або експоненціальної, сигмоїдної ... або навіть дискретизувати числову ознаку в категоричну. Це нескінченний простір для дослідження.

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


2
Я б задумався над питанням "Яка б комбінація чи трансформація не збільшувала ефективність вашої перехресної валідації або тестового набору, тоді вам слід скористатися нею". Сліпо пробуючи речі, поки щось не поліпшить показник ефективності, ви зможете виявити відносини, які не мають сенсу і не спричинить перенапруження. Це може насправді зашкодити роботі над новими спостереженнями в дорозі.
Hersheezy

1

Не могли б ви пояснити докладніше конкретні приклади наступного твердження?

The dataset has around 100 features and all are unknown (in terms of what actually they represent). Basically they are just numbers.

Я не впевнений, як ви можете зробити Feature Engineering без хорошого розуміння вашого набору даних та даних атрибутів !!

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

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

У комп’ютерному зорі зображення є спостереженням, але особливістю може бути лінія на зображенні.

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

У розпізнаванні мовлення висловлювання може бути спостереженням, але особливістю може бути одне слово або фонема. "

Будь ласка, відвідайте таку URL-адресу для отримання додаткової інформації:

Відкрийте для себе функціональну інженерію, як розробляти функції інженера та як добре в ній


Атрибути у випадку ОП були анонімовані до того, що знання домену неможливо використовувати. Це досить часто зустрічається на змаганнях у Kaggle, але обмежені форми інженерних функцій все ще можливі. Зазвичай нові функції створюються масово, а потім тестуються, на відміну від використання предметних знань для керівництва їх поколінням. Приклад: kaggle.com/c/bnp-paribas-cardif-claims-management/data
Ніл Слейтер

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