Contexto: estoy desarrollando un sistema que analiza datos clínicos para filtrar datos inverosímiles que podrían ser errores tipográficos.
Lo que hice hasta ahora:
Para cuantificar la plausibilidad, mi intento hasta ahora fue normalizar los datos y luego calcular un valor de plausibilidad para el punto p en función de su distancia a los puntos de datos conocidos en el conjunto D (= el conjunto de entrenamiento):
Con esa cuantificación, puedo seleccionar un umbral que separe los datos plausibles de los datos inverosímiles. Estoy usando python / numpy.
Mis problemas:
- Este algoritmo no puede detectar dimensiones independientes. Idealmente, podría poner todo lo que sé sobre el registro en el algoritmo y dejar que descubra por sí mismo que la dimensión X no influye en la plausibilidad del registro.
- El algoritmo realmente no funciona para valores discretos como booleanos o entradas seleccionadas. Podrían asignarse a valores continuos, pero es contrario a la intuición que Seleccionar 1 está más cerca de Seleccionar 2 que de Seleccionar 3.
Pregunta:
¿Qué tipo de algoritmos debo buscar para esta tarea? Parece que hay un montón de opciones que incluyen enfoques basados en el vecino más cercano, en clustering y estadísticos. Además, tengo problemas para encontrar documentos que aborden la detección de anomalías de esta complejidad.
Cualquier consejo es muy apreciado.
[Editar] Ejemplo:
Supongamos que los datos consisten en la altura de una persona, el peso de una persona y la marca de tiempo, por lo que son datos 3D. El peso y la altura están correlacionados, pero la marca de tiempo es completamente independiente. Si solo considero las distancias euclidianas, tendría que elegir un umbral pequeño para ajustar la mayoría de mis datos de validación cruzada. Idealmente, el algoritmo simplemente ignoraría la dimensión de marca de tiempo, porque es irrelevante determinar si un registro es plausible, porque la marca de tiempo no se correlaciona con las otras dimensiones de ninguna manera. Cualquier marca de tiempo es plausible.
Por otro lado, uno podría inventar ejemplos donde la marca de tiempo sí importa. Por ejemplo, podría ser que el valor Y para la característica X sea plausible cuando se mide antes de una fecha determinada, pero no después de una fecha determinada.