Різниця між Naive Bayes і періодичною нейронною мережею (LSTM)


8

Я хочу провести аналіз настрою на текст, пройшов кілька статей, деякі з них використовують "Naive Bayes", а інші - "Recurrent Neural Network (LSTM)" , з іншого боку я бачив бібліотеку пітонів для аналізу настроїв, які є nltk. Він використовує "Naive Bayes", може хто-небудь пояснити, в чому різниця між використанням цих двох?

Я також пройшов цю посаду, але не зрозумів обох.

Різниця між мережею Байєса, нейронною мережею, деревом рішень та мережами Петрі

Відповіді:


14

Про різницю між наївними байесами та періодичними нейронними мережами

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

Дві моделі, які можуть вирішити це завдання, - це класифікатор Naive Bayes і Recurrent Neural Networks.

Naive Bayes
Для того, щоб використовувати цей класифікатор для аналізу тексту, ви зазвичай попередньо обробляєте текст ( мішок слів + tf-tdf ), щоб ви могли перетворити його у вектори, що містять числові значення. Ці вектори служать входом до моделі NB.
Цей класифікатор передбачає, що ваші функції (атрибути вироблених нами векторів) не залежать одна від одної. Якщо це припущення виконується, це дуже сильний класифікатор, який вимагає дуже мало даних для роботи.

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

Дві моделі (NB та RNN) сильно відрізняються тим, як вони намагаються виконати цю класифікацію:

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

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

Я пропоную запитати "дискримінаційні проти генеративні алгоритми", якщо ви хочете навчитися багнюці

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

tl; dr: це два дуже різні способи вирішення одного і того ж завдання

Бібліотеки

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

Для NB:

  • scikit-learn : це дуже проста у використанні бібліотека пітонів, що містить реалізацію декількох алгоритмів машинного навчання, включаючи Naive Bayes.

  • NaiveBayes : не використовував його, але, мабуть, це доречно, судячи з назви.

Оскільки RNN вважаються алгоритмом глибокого навчання , вони мають реалізацію у всіх основних бібліотеках глибокого навчання:

  • TensorFlow : найпопулярніша бібліотека DL на даний момент. Опублікував і підтримує Google.

  • theano : Бібліотека, схожа на tf, старша, видана Монреальським університетом.

  • keras : Пакувальник для tf і theano. Набагато простіше. Що я пропоную вам використовувати, якщо ви хочете коли-небудь реалізувати RNN.

  • кафе : Бібліотека DL, видана UC Berkeley. Має API python.

Всі вищевикладені пропонують підтримку GPU, якщо у вас є NVIDIA GPU з підтримкою CUDA.

Python's NLTK - це бібліотека, в основному для обробки природних мов (стримування, токенізація, розміщення тегів, що належать до мови). Хоча в ньому є пакет настроїв , це не фокус. Я впевнений, що NLTK використовує NB для аналізу настроїв.

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