Класифікація векторних послідовностей


9

Мій набір даних складається з векторних послідовностей. Кожен вектор має 50 дійсних значень. Кількість векторів у послідовності становить від 3-5 до 10-15. Іншими словами, довжина послідовності не фіксована.

Деяка значна кількість послідовностей (а не векторів!) Зазначається міткою класу. Моє завдання - вивчити класифікатор, який задає послідовність векторів, обчислює мітку класу для всієї послідовності.

Я не можу сказати точну природу даних, але природа послідовностей не є часовою. Тим не менш, вектор не може бути змінений з вектором без зміни мітки ( ). Іншими словами, порядок векторів важливий. Самі вектори порівнянні, наприклад, має сенс обчислити крапковий добуток і використовувати це значення подібності.xixjij

Моє запитання: які інструменти / алгоритми можуть допомогти класифікувати такі дані?

ОНОВЛЕННЯ: Дані мають таку властивість, що один або дуже мало векторів сильно впливають на мітку класу.

МОЖЛИВО РЕШЕННЯ: Після деяких досліджень схоже, що періодичні нейронні мережі (RNN) підходять до законопроекту досить природно. Загальна ідея полягає в тому, щоб вибрати розмір контексту , об'єднати вектори слів, зробити максимум об'єднань і подати це за допомогою класичного NN. У кожній можливій позиції вікна контексту в реченні будується вектор функції. Кінцевий вектор функцій будується, наприклад, за допомогою максимального об'єднання. Зворотне розповсюдження робиться для коригування параметрів мережі. Я вже отримав деякі позитивні результати (GPU є обов'язковим).k

Відповіді:


3

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

Отже, я б взяв повну послідовність як вхід для класифікації і наклав би максимум на довжину послідовності, яку ви хочете врахувати. Це можна зробити, спочатку знайдіть максимальну довжину послідовності m у своєму навчальному наборі, а потім перетворивши кожну послідовність 50-мірних векторів в один вектор розмірності 50 * m, можливо, з деякими відсутніми значеннями в кінці, якщо у вашій послідовності немає максимальна довжина. Ви, ймовірно, захочете позбутися цих пропущених значень і, можливо, захочете просто замінити їх нулями.

Звідси можна пройти дві дороги: 1.) Ви безпосередньо застосовуєте методи класифікації, які, як відомо, підходять для великих розмірів. Спробуйте щось просте, що не потребує великої настройки, як наївний Байєс. Таким чином можна зрозуміти, чи можливий такий підхід, не втрачаючи занадто багато часу, якщо його немає. 2.) Ви спершу намагаєтесь зменшити розмірність і краще зрозуміти природу класифікації. Ви можете використовувати щось на кшталт аналізу основних компонентів або проаналізувати кореляцію / асоціацію між кожним векторним компонентом та міткою класу. Якщо ви досягли успіху, ви знаєте, як правильно зменшити розмір свого вкладу, перш ніж застосовувати класифікацію.

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


0

Дані мають таку властивість, що один або дуже мало векторів сильно впливають на мітку класу.

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


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