Prognozowanie za pomocą cech nieatomowych

10

Chciałbym użyć danych nieatomowych jako funkcji prognozy. Załóżmy, że mam tabelę z tymi funkcjami:

- 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 ]

Chciałbym przewidzieć / sklasyfikować, na przykład, kolumnę 2.

Robię coś, aby automatycznie odpowiadać na pytania, wszelkiego rodzaju pytania, na przykład „Where Foo Born?” ...

Najpierw wykonuję zapytanie do wyszukiwarki, potem otrzymuję dane tekstowe, a następnie wykonuję wszystkie analizy (dodawanie tagów, udostępnianie, analizowanie, dzielenie ...)

Moje pierwsze podejście polegało na stworzeniu tabeli, w każdym wierszu z wierszem tekstu i wieloma funkcjami, takimi jak „Pierwsze słowo”, „Tag pierwszego słowa”, „Kawałki” itp.

Ale przy takim podejściu brakuje mi związków między zdaniami.

Chciałbym wiedzieć, czy istnieje algorytm, który przegląda struktury drzewiaste (lub wektory) i tworzy relacje oraz wyodrębnia wszystko, co jest istotne dla przewidywania / klasyfikacji. Wolałbym wiedzieć o bibliotece, która to robi, niż o algorytmie, który muszę zaimplementować.

użytkownik3798928
źródło
Wyjaśnij: mówisz, że chcesz użyć Kolumny 2 jako funkcji, ale potem mówisz, że chcesz przewidzieć / sklasyfikować Kolumnę 2. Ponadto nazywasz tę funkcję „nieatomową” ... czy masz na myśli, że nie jest kategoryczna?
logc

Odpowiedzi:

7

Jeśli chodzi o radzenie sobie z wieloma odmiennymi rodzajami danych, szczególnie gdy relacje między nimi są niejasne, zdecydowanie zaleciłbym technikę opartą na drzewach decyzyjnych , najpopularniejsze dziś, według mojej najlepszej wiedzy, to losowy las i wyjątkowo losowy drzewa .

Oba mają implementacje w sklearn i są dość proste w użyciu. Na bardzo wysokim poziomie powodem, dla którego decision treepodejście oparte na wielu danych jest korzystne dla wielu różnych rodzajów danych, jest to, że drzewa decyzyjne są w dużej mierze niezależne od konkretnych danych, z którymi mają do czynienia, pod warunkiem, że są w stanie zrozumieć twoją reprezentację.

Nadal będziesz musiał dopasować swoje dane do jakiegoś wektora funkcji, ale na podstawie twojego przykładu, który wydaje się dość prostym zadaniem, a jeśli chcesz pójść nieco głębiej w swojej implementacji, z pewnością możesz wymyślić niestandardowa reguła podziału drzewa bez konieczności zmiany czegokolwiek w podstawowym algorytmie. Oryginalny papier jest całkiem przyzwoite miejsce, aby rozpocząć, jeśli chcesz dać, że strzał.

Jeśli jednak chcesz danych pseudo-strukturalnych z danych tekstowych, proponuję zajrzeć do doc2vecostatnio opracowanego przez Google. Nie sądzę, że są już jakieś dobre implementacje typu open source, ale jest to całkiem prosta poprawa word2vecalgorytmu, który ma implementacje co najmniej Ci python.

Mam nadzieję, że to pomaga! Daj mi znać, jeśli masz więcej pytań.

indico
źródło