Predicción con características no atómicas.

10

Me gustaría utilizar datos no atómicos, como una característica para una predicción. Supongamos que tengo una tabla con estas características:

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

Me gustaría predecir / clasificar, por ejemplo, la Columna 2.

Estoy haciendo algo para responder automáticamente a las preguntas, cualquier tipo de pregunta, como "¿Dónde nació Foo?" ...

Primero hago una consulta a un motor de búsqueda, luego obtengo algunos datos de texto como resultado, luego hago todo el análisis (etiquetado, derivación, análisis, división ...)

Mi primer enfoque fue hacer una tabla, cada fila con una línea de texto y muchas características, como "Primera palabra", "Etiqueta de la primera palabra", "Trozos", etc.

Pero con este enfoque me faltan las relaciones entre las oraciones.

Me gustaría saber si hay un algoritmo que mira dentro de las estructuras de árbol (o vectores) y hace las relaciones y extrae lo que sea relevante para predecir / clasificar. Prefiero saber sobre una biblioteca que hace eso que un algoritmo que tengo que implementar.

usuario3798928
fuente
Por favor aclare: dice que quiere usar la Columna 2 como característica, pero luego dice que quiere predecir / clasificar la Columna 2. Además, llama a esta característica 'no atómica' ... ¿quiere decir que no es categórica?
logc

Respuestas:

7

Cuando se trata de tratar con muchos tipos de datos dispares, especialmente cuando las relaciones entre ellos no están claras, recomendaría encarecidamente una técnica basada en árboles de decisión , los más populares hoy en día, según mi conocimiento, son bosques aleatorios y extremadamente aleatorios árboles .

Ambos tienen implementaciones en sklearn , y son bastante fáciles de usar. En un nivel muy alto, la razón por la cual un decision treeenfoque basado en la ventaja es ventajoso para múltiples tipos de datos dispares es porque los árboles de decisión son en gran medida independientes de los datos específicos con los que están tratando, siempre que sean capaces de comprender su representación.

Todavía tendrá que ajustar sus datos en un vector de características de algún tipo, pero según su ejemplo, parece una tarea bastante sencilla, y si está dispuesto a profundizar un poco más en su implementación, seguramente podría llegar a una regla de división de árbol personalizada sin tener que cambiar nada en el algoritmo subyacente. El documento original es un lugar bastante decente para comenzar si quieres darle una oportunidad.

Sin embargo, si desea datos pseudoestructurales de sus datos de texto, podría sugerir que los investigue doc2vec, recientemente desarrollado por Google. No creo que haya ninguna buena implementación de código abierto ahora, pero es una mejora bastante directa en el word2vecalgoritmo, que tiene implementaciones en al menos Cy python.

¡Espero que ayude! Avísame si tienes más preguntas.

indico
fuente