Я хотел бы использовать неатомарные данные, как функцию для прогноза. Предположим, у меня есть таблица с этими функциями:
- 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.
Я делаю что-то, чтобы автоматически отвечать на вопросы, любые вопросы, такие как «Где родился Фу?» ...
Сначала я делаю запрос в поисковую систему, затем в результате получаю некоторые текстовые данные, затем делаю все, что нужно (разметка, выделение, разбор, разбиение ...)
Мой первый подход состоял в том, чтобы создать таблицу, в каждой строке которой есть строка текста и множество функций, таких как «Первое слово», «Тег первого слова», «Куски» и т. Д.
Но при таком подходе мне не хватает отношений между предложениями.
Я хотел бы знать, если есть алгоритм, который смотрит внутри древовидных структур (или векторов) и создает отношения и извлекает все, что имеет отношение к прогнозированию / классификации. Я предпочел бы знать о библиотеке, которая делает это, чем алгоритм, который я должен реализовать.
источник
Ответы:
Когда речь заходит о работе со многими разнородными видами данных, особенно когда отношения между ними неясны, я настоятельно рекомендую методику, основанную на деревьях решений. Самыми популярными на сегодняшний день, насколько мне известно, являются случайные леса и крайне рандомизированные деревья .
Оба имеют реализации в sklearn , и они довольно просты в использовании. На очень высоком уровне причина того, что
decision tree
основанный на подходе подход выгоден для нескольких разнородных типов данных, заключается в том, что деревья решений в значительной степени независимы от конкретных данных, с которыми они имеют дело, при условии, что они способны понять ваше представление.Вам все равно придется вписать свои данные в вектор функций какого-то рода, но на основе вашего примера это кажется довольно простой задачей, и если вы захотите немного углубиться в свою реализацию, вы, безусловно, можете придумать пользовательское правило разбиения дерева без необходимости что-либо менять в базовом алгоритме. Оригинальная бумага довольно приличное место , чтобы начать , если вы хотите , чтобы дать , что выстрел.
Если вам нужны псевдоструктурные данные из ваших текстовых данных, я бы посоветовал изучить
doc2vec
недавно разработанную Google. Я не думаю, что сейчас есть какие-либо хорошие реализации с открытым исходным кодом, но это довольно простое улучшениеword2vec
алгоритма, который имеет реализации по крайней мереC
иpython
.Надеюсь, это поможет! Дайте мне знать, если у вас есть еще вопросы.
источник