Contexto: estou desenvolvendo um sistema que analisa dados clínicos para filtrar dados implausíveis que podem ser erros de digitação.
O que eu fiz até agora:
Para quantificar a plausibilidade, minha tentativa até agora foi normalizar os dados e, em seguida, calcular um valor de plausibilidade para o ponto p com base em sua distância aos pontos de dados conhecidos no conjunto D (= o conjunto de treinamento):
Com essa quantificação, posso selecionar um limite que separa os dados plausíveis dos implausíveis. Estou usando python / numpy.
Meus problemas:
- Este algoritmo não pode detectar dimensões independentes. Idealmente, eu poderia colocar tudo o que sei sobre o registro no algoritmo e descobrir por si mesmo que a dimensão X não influencia a plausibilidade do registro.
- O algoritmo realmente não funciona para valores discretos, como booleanos ou entradas selecionadas. Eles podem ser mapeados em valores contínuos, mas é contra-intuitivo que o Select 1 esteja mais próximo do Select 2 do que o Select 3.
Questão:
Em que tipo de algoritmos devo procurar essa tarefa? Parece haver várias opções, incluindo abordagens baseadas em vizinhos mais próximas, baseadas em cluster e estatísticas. Além disso, tenho problemas para encontrar trabalhos que lidam com a detecção de anomalias dessa complexidade.
Qualquer conselho é altamente apreciado.
[Editar] Exemplo:
Suponha que os dados consistam na altura de uma pessoa, peso de uma pessoa e registro de data e hora - portanto, são dados 3D. O peso e a altura estão correlacionados, mas o registro de data e hora é completamente independente. Se eu considerar apenas as distâncias euclidianas, teria que escolher um pequeno limite para ajustar a maioria dos meus dados de validação cruzada. Idealmente, o algoritmo ignoraria apenas a dimensão do registro de data e hora, porque é irrelevante determinar se um registro é plausível, porque o registro de data e hora não se correlaciona com as outras dimensões de nenhuma maneira. Qualquer registro de data e hora é plausível.
Por outro lado, pode-se criar exemplos em que o carimbo de data / hora é importante. Por exemplo, pode ser que o valor Y para o recurso X seja plausível quando medido antes de uma certa data, mas não após uma determinada data.