Прогнозування з неатомними ознаками


10

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

- Column 1: Categorical - House
- Column 2: Numerical - 23.22
- Column 3: A Vector - [ 12, 22, 32 ]
- Column 4: A Tree - [ [ 2323, 2323 ],[2323, 2323] , [ Boolean, Categorical ] ]
- Column 5: A List [ 122, Boolean ]

Я хотів би передбачити / класифікувати, наприклад, колонку 2.

Я роблю щось, щоб автоматично відповідати на запитання, будь-який тип запитань, наприклад "Де народився Фу?" ...

Спочатку я роблю запит до пошукової системи, потім отримую в результаті деякі текстові дані, після чого роблю всі матеріали для аналізу (теги, стовбур, розбір, розбиття ...)

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

Але при такому підході я пропускаю зв’язки між реченнями.

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


Будь ласка, уточнюйте: ви кажете, що хочете використовувати стовпчик 2 як функцію, але тоді ви кажете, що хочете передбачити / класифікувати стовпчик 2. Також ви називаєте цю функцію "неатомною" ... чи маєте на увазі, що вона не є категоричною?
logc

Відповіді:


7

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

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

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

Якщо ви хочете отримати псевдоструктурні дані з ваших текстових даних, я б запропонував переглянути doc2vecнещодавно розроблену Google. Я не думаю, що зараз є хороші реалізації з відкритим кодом, але це досить просте вдосконалення word2vecалгоритму, який має принаймні Cі python.

Сподіваюся, що це допомагає! Повідомте мене, чи є у вас ще запитання.

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