Прогноз с неатомарными особенностями

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.

Я делаю что-то, чтобы автоматически отвечать на вопросы, любые вопросы, такие как «Где родился Фу?» ...

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

Мой первый подход состоял в том, чтобы создать таблицу, в каждой строке которой есть строка текста и множество функций, таких как «Первое слово», «Тег первого слова», «Куски» и т. Д.

Но при таком подходе мне не хватает отношений между предложениями.

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

user3798928
источник
Пожалуйста, уточните: вы говорите, что хотите использовать столбец 2 в качестве функции, но затем говорите, что хотите предсказать / классифицировать столбец 2. Кроме того, вы называете эту функцию «неатомной» ... вы имеете в виду, что она не категорична?
logc

Ответы:

7

Когда речь заходит о работе со многими разнородными видами данных, особенно когда отношения между ними неясны, я настоятельно рекомендую методику, основанную на деревьях решений. Самыми популярными на сегодняшний день, насколько мне известно, являются случайные леса и крайне рандомизированные деревья .

Оба имеют реализации в sklearn , и они довольно просты в использовании. На очень высоком уровне причина того, что decision treeоснованный на подходе подход выгоден для нескольких разнородных типов данных, заключается в том, что деревья решений в значительной степени независимы от конкретных данных, с которыми они имеют дело, при условии, что они способны понять ваше представление.

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

Если вам нужны псевдоструктурные данные из ваших текстовых данных, я бы посоветовал изучить doc2vecнедавно разработанную Google. Я не думаю, что сейчас есть какие-либо хорошие реализации с открытым исходным кодом, но это довольно простое улучшение word2vecалгоритма, который имеет реализации по крайней мере Cи python.

Надеюсь, это поможет! Дайте мне знать, если у вас есть еще вопросы.

Indico
источник