Contesto: sto sviluppando un sistema che analizza i dati clinici per filtrare i dati non plausibili che potrebbero essere errori di battitura.
Quello che ho fatto finora:
Per quantificare la plausibilità, il mio tentativo finora è stato di normalizzare i dati e quindi calcolare un valore di plausibilità per il punto p in base alla sua distanza dai punti di dati noti nell'insieme D (= l'insieme di addestramento):
Con tale quantificazione, posso quindi selezionare una soglia che separa i dati plausibili dai dati non plausibili. Sto usando Python / Numpy.
I miei problemi:
- Questo algoritmo non può rilevare dimensioni indipendenti. Idealmente, potrei inserire nell'algoritmo tutto ciò che so sul record e fargli scoprire da solo che la dimensione X non influenza la plausibilità del record.
- L'algoritmo non funziona davvero per valori discreti come valori booleani o input selezionati. Potrebbero essere mappati su valori continui, ma è controintuitivo che Seleziona 1 sia più vicino a Seleziona 2 che a Seleziona 3.
Domanda:
Che tipo di algoritmi dovrei cercare per questo compito? Sembra che ci siano molte opzioni tra cui approcci basati sul vicino più vicino, basati sul clustering e statistici. Inoltre, ho difficoltà a trovare documenti che trattano del rilevamento di anomalie di questa complessità.
Qualsiasi consiglio è molto apprezzato.
[Modifica] Esempio:
Supponiamo che i dati consistessero in Altezza di una persona, Peso di una persona e Data / ora, quindi sono dati 3D. Peso e altezza sono correlati, ma il timestamp è completamente indipendente. Se solo considero le distanze euclidee, dovrei scegliere una piccola soglia per adattarmi alla maggior parte dei miei dati di convalida incrociata. Idealmente, l'algoritmo ignorerebbe semplicemente la dimensione del timestamp, perché è irrilevante determinare se un record è plausibile, perché il timestamp non è in alcun modo correlato con le altre dimensioni. Qualsiasi timestamp è plausibile.
D'altra parte, si potrebbero inventare esempi in cui il timestamp è importante. Ad esempio, potrebbe essere che il valore Y per la funzione X sia plausibile quando misurato prima di una determinata data, ma non dopo una determinata data.