Дерева рішень проти нейронних мереж


20

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

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

Які плюси і мінуси кожної структури і яка структура була б найкращою для цієї проблеми?

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

Відповіді:


24

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

Дерева рішень

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

Нейрові мережі

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

Ви можете спробувати впровадити як експерименти, так і виконати деякі експерименти над вашими даними, щоб побачити, що краще, і орієнтовний час виконання. Або ви можете використати щось на зразок Weka GUI, що було представлено з репрезентативним зразком ваших даних для тестування драйву обох методів.

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


Ви, здається, трохи знаєте про це, чи маєте ви досвід роботи з байесівськими мережами чи іншими методами машинного навчання, які могли б допомогти в цій проблемі?
Топо

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