7

¿Se ha realizado alguna investigación en el campo de la minería de datos con respecto a la clasificación de datos que tiene una relación de uno a varios?¿Hay algún algoritmo de clasificación que oriente los datos con una relación uno a muchos (1: n)?

Por ejemplo, de un problema como este, digamos que estoy tratando de predecir qué estudiantes van a abandonar la universidad en función de sus calificaciones de clase y su información personal. Obviamente, existe una relación de uno a muchos entre la información personal de los estudiantes y las calificaciones que lograron en sus clases.

enfoques obvios incluyen:

  1. agregado - Los múltiples registros podría agregarse juntas para reducir el problema a un problema de clasificación básica de alguna manera. En el caso de la clasificación de estudiantes, el promedio de sus calificaciones podría combinarse con sus datos personales. Si bien esta solución es simple, a menudo se pierde información clave. Por ejemplo, ¿qué pasa si la mayoría de los estudiantes que toman química orgánica y obtienen un C por debajo terminan abandonando, incluso si su promedio está por encima de una calificación B +.

  2. Votación - Cree clasificadores múltiples (a menudo débiles) y haga que emitan votos para determinar la clase general de los datos en cuestión. Esto sería como si se hubieran construido dos clasificadores, uno para los datos del curso del alumno y otro para sus datos personales. Cada registro del curso se pasará al clasificador del curso y, en función del grado y el nombre del curso, el clasificador predeciría si el alumno abandonará el uso del registro del curso solo. El registro de datos personales se clasificaría utilizando el clasificador de datos personales. Entonces todas las predicciones de registros de clase junto con la predicción del registro de información personal se votarían juntas. Esta votación se puede hacer de diferentes maneras, pero lo más probable es que tome en cuenta qué tan precisos son los clasificadores y cuán seguro era el clasificador del voto. Claramente, este esquema permite patrones de clasificación más complicados que la agregación, sin embargo, hay una gran complejidad adicional involucrada. Además, si la votación no se realiza bien, la precisión puede sufrir fácilmente.

Así que estoy buscando otras posibles soluciones para la clasificación de datos con una relación uno a muchos.

+0

Hola @Nixuz estoy enfrentando la misma situación con mi proyecto, ¿qué opción eligió? –

Respuesta

2

¿Por qué no trataría cada grado como una característica separada del mismo modelo?

student['age'] = 23 
student['gender'] = 'male' 
... 
student['grade_in_organic_chemistry'] = 'B+' 
student['grade_in_classical_physics'] = 'A-' 

supongo que no estoy viendo por las que se quiere "agregado" o se unen múltiples clasificadores cuando los grados solo pueden ser rasgos distintivos?

(Por favor, disculpe la psuedocode cojos arriba, pero sólo tratando de demostrar mi punto)

+0

Lo siento si no lo dejé claro, pero no todos los estudiantes toman los mismos cursos. Entonces, o bien nos quedarían muchos valores nulos en el registro o los registros no serían estándar para nuestros clasificados que usan su solución. – Nixuz

+0

Supongo que lo que no tengo claro es ¿a qué te refieres con "registro"? ¿Estás preguntando cómo almacenar este modelo de estudiante en un RDBMS o cómo modelar el conjunto de características del estudiante para la clasificación? Si es el último, no sé por qué el conjunto de características debería ser estándar para todos los estudiantes. Algunos estudiantes tendrán la función 'grade_in_organic_chemistry', otros no. El motor de clasificación estaría diseñado para comprender que ciertas características son opcionales e incluso pueden usar esa información para clasificar. –

+0

+1 porque primero debe probar el enfoque directo. Muchos valores nulos pueden no ser un problema: no está en el modelo de bolsa de palabras en PNL si usa el algoritmo correcto. Los SVM funcionan bien con entradas escasamente dimensionales. – Stompchicken

0

Es difícil de decir sin saber más, pero desde el punto de vista bayesiano, que puede estar interesado en el caso de características que faltan . Discutiré en términos generales. Para más información, ver [Duda y Hart, 2nd ed., Pp. 54-55].

Para cualquier clasificador, la regla de decisión de Bayes es elegir clase i que maximiza la probabilidad de clase i que ocurren dado que los datos se observó x, es decir, max P (i | x) . El vector x contiene características, por ejemplo, calificaciones, edad, etc. del estudiante.

No todos los estudiantes toman las mismas clases, por lo que el vector de función x puede tener elementos vacíos, es decir, "características faltantes". En ese caso, debe marginar sobre las características que faltan, es decir, solo sumar las características que faltan, y luego tomar una decisión sobre las características restantes buenas.

Ejemplo. Supongamos que un estudiante tomó la biología, pero no la química:

P(student drops out | A+ in biology) 
= P(student drops out, A+ in biology)/P(A+ in biology) 
= P(student drops out, A+ in biology, A in chemistry) 
    --------------------------------------------------- 
    P(A+ in biology, A in chemistry) 
    + 
    P(student drops out, A+ in biology, B in chemistry) 
    --------------------------------------------------- 
    P(A+ in biology, B in chemistry) 
    + ... + 
    P(student drops out, A+ in biology, F in chemistry) 
    --------------------------------------------------- 
    P(A+ in biology, F in chemistry) 
+0

Si bien creo que este método funcionará en algunos casos, como el problema de ejemplo que proporcioné, creo que puede tener problemas si los registros del curso del alumno tienen una gran cantidad de atributos. Si ese es el caso, entonces habría una gran cantidad de valores nulos (características faltantes) en cada registro. Por ejemplo, si cada curso tuviera 100 atributos, podríamos terminar con miles de valores nulos y la maldición de la dimensionalidad podría matarnos. – Nixuz

+0

En segundo lugar, ¿qué pasa con los casos en que n no tiene límites? Por ejemplo, supongamos que los alumnos pueden volver a tomar clases tantas veces como lo deseen.No está claro cómo manejaríamos este caso, ya que no hay forma de que podamos establecer todas las características posibles ya que hay un número infinito de ellas. – Nixuz

0

Preveo dos caminos básicos a seguir:

  1. Como se llame, la solución "global", que utilizaría varios resúmenes de cada estudiante de situación: cuántas clases se tomaron, qué porcentaje de las clases fueron introductorias 101 clases, promedio, cuartil inferior, etc.

  2. Algún tipo de acumulador de pruebas, como el ingenuo modelo de Bayes (como ya sugirió Steve) o una logi borrosa c base de reglas. Tales soluciones manejan naturalmente cantidades variables de datos entrantes. Supongo que esto podría lograrse con suficientes datos, utilizando un modelo gigante gigante (red neuronal, etc.) y un gran conjunto de entradas (la mayoría de las cuales se establecerían en un valor neutral para "faltantes"), pero lo dudo. funcionaría tan bien como otras opciones.

Lo siento, pero creo que la "pandilla de soluciones simples" sería débil en este caso particular. Eso no quiere decir que no funcionaría, pero comenzaría en otro lado.

Cuestiones relacionadas