Detecção de anomalias com recursos fictícios (e outros recursos discretos / categóricos)

18

tl; dr

  • Qual é a maneira recomendada de lidar com discretedados ao realizar a detecção de anomalias?
  • Qual é a maneira recomendada de lidar com categoricaldados ao realizar a detecção de anomalias?
  • Esta resposta sugere o uso de dados discretos para filtrar apenas os resultados.
  • Talvez substitua o valor da categoria pela chance de observação da observação?

Introdução

Esta é a primeira vez que publico aqui, por isso, se algo não parecer tecnicamente correto, seja na formatação ou no uso de definições corretas, estou interessado em saber o que deveria ter sido usado.

Em diante.

Participei recentemente da aula de Machine Learning de Andrew Ng

Para detecção de anomalias, fomos ensinados a determinar quais são os parâmetros de distribuição Normal / Gaussiano para um determinado recurso / variável, dentro de um conjunto de dados e, em seguida, determinar a probabilidade de um conjunto escolhido de exemplos de treinamento / valor da observação, considerando que distribuição gaussiana específica e, em seguida, obtendo o produto das probabilidades dos recursos.xEu

Método

Escolha características / variáveis ​​que pensamos explicar a atividade em questão: { x 1 , x 2 , , x i }xEu

{x1,x2,...,xEu}

Ajuste os parâmetros do gaussiano para cada recurso: σ2=1

μj=1mEu=1mxj(Eu)
σ2=1mEu=1m(xj(Eu)-μj)2

Para cada exemplo de treinamento, , calcule: p ( x ) = n j = 1 p ( x j ; μ j , σ 2 j )x

p(x)=j=1n p(xj;μj,σj2)

Em seguida, sinalizamos como uma anomalia ( ), dada: y = { 1y=1

y={1p(x)<ϵ0 0p(x)ϵ

Isso nos fornece o método com o qual determinar se um exemplo requer inspeção adicional.

Minhas perguntas)

Isso parece bom para variáveis ​​/ recursos contínuos, mas dados discretos não são abordados.

E as variáveis ​​fictícias, por exemplo, um recurso de sinalizador de gênero, possivelmente chamado [IsMale]que pode ter o valor ? Para levar em consideração um recurso fictício, usaríamos a distribuição binomial para calcular ?p ( x )0 0,1p(x)

E os dados categóricos, como a cor do carro? Embora possamos mapear as cores para valores numéricos, por exemplo, , a distribuição de um recurso categórico pode ser quase uniforme (ou seja, chance igualmente provável de ser uma das cores) e, além disso, como O mapeamento numérico que ocorre (por exemplo, com o valor , etc.) não é ordinal, faz sentido tentar transformar qualquer distribuição não normal de frequências para que as cores sejam distribuídas normalmente (isso importa mesmo que não seja ordinal? ?)? Por exemplo, para mim, não faria sentido fazer uma transformação porque os dados não são contínuos nem ordinais. Então talvez seja melhor encontrar uma distribuição discretared1,beuvocêe2red1euog() isso se encaixa no recurso, em vez de "torturar" os dados para se ajustar ao gaussiano?

Perguntas: (atualizado: 24-11-2015)

  • As variáveis ​​binárias podem ser modeladas com uma distribuição de probabilidade binomial e se tornar outro fator no cálculo de ?p(x)
  • As variáveis ​​categóricas devem ser modeladas com uma distribuição de probabilidade discreta em vez de uma gaussiana e se tornar outro fator no cálculo de ?p(x)
  • Existe outro método que leva em consideração o que estou perguntando aqui e que posso pesquisar / aprender mais?
  • Qual é a maneira recomendada de lidar com discretedados ao realizar a detecção de anomalias?
  • Qual é a maneira recomendada de lidar com categoricaldados ao realizar a detecção de anomalias?

Edit: 2017-05-03

  • Esta resposta sugere o uso de dados discretos para filtrar apenas os resultados.
  • Talvez substitua o valor da categoria pela chance de observação da observação?
Adrian Torrie
fonte
<disclaimer> Eu sou alguém com apenas estatísticas suficientes para ser perigoso. </disclaimer> Então, vamos ficar perigosos ... Minha intuição concorda com a sua de que o gaussiano não é o caminho para lidar com dados não contínuos. Para dados contínuos, um valor na linha numérica tem um tipo diferente de relacionamento com todos os outros valores que um número em uma linha inteira ou uma variável binária. Distribuições binomiais descrevem variáveis ​​binárias. Distribuições multinomiais descrevem variáveis ​​multinomiais. Não são todos esses membros exponenciais da família?
EngrStudent - Restabelece Monica
Outro que pode ser adicionado a qualquer discussão: Tópico: outliers categóricos?
Adrian Torrie
@iValueValue O que é na sua quarta fórmula? É ? p ( x ; μ , σ 2 ) = 1pp(x;μ,σ2)=1σ2πe-(x-μ)22σ2
Alessandro Jacopson
@uvts_cvs sim, a função densidade de probabilidade do gaussaian é a que é usada.
Adrian Torrie

Respostas:

4

Em geral, para os recursos discretos * e categóricos, esse método não é particularmente passível de análise externa. Como não há magnitude associada aos preditores categóricos, estamos trabalhando com:

  • Frequência da categoria observada nos dados globais
  • Frequência da categoria observada nos subespaços dos dados

Observe que nenhuma dessas qualidades pode ser analisada isoladamente, como exige seu método gaussiano. Em vez disso, precisamos de um método que contextualize os recursos categóricos e considere a natureza correlacional dos dados.

Aqui estão algumas técnicas para dados de atributos categóricos e mistos, com base na Análise Outlier da Aggarwal:

  • Se você puder definir uma função de similaridade que construa uma matriz semidefinida positiva em todas as observações (independentemente dos tipos de dados), calcule a matriz de similaridade , encontre sua diagonalização e use os vetores próprios diferentes de zero para calcular um recurso incorporando . Para cada linha (observação) em , calcule sua distância do centróide; essa é a sua pontuação outlier e você pode usar métodos univariados para determinar os outliers.S = Q k λ 2 k Q T k Q k E = Q k λ k ESS=Qkλk2QkTQkE=QkλkE
  • Se você possui recursos puramente categóricos, ajuste um modelo de mistura aos dados categóricos brutos. Pontos anômalos têm menor probabilidade generativa.
  • Use a codificação one-hot para preditores categóricos e, opcionalmente , análise de variáveis ​​latentes ** para variáveis ​​ordinais com mapeamentos contínuos não aparentes
    • Padronize os recursos não-quentes (os recursos quentes já estão implicitamente padronizados) e execute a Análise de Componentes Principais . Realize a redução da dimensionalidade usando os principais componentes principais (ou uma abordagem de PCA flexível em que os autovetores são ponderados por autovalores) e execute um método típico de análise contínua externa (por exemplo, um modelo de mistura ou seu método gaussiano)
    • Realize uma análise baseada em ângulo. Para cada observação, calcule as semelhanças de cosseno entre todos os pares de pontos. Observações com a menor variância dessas semelhanças (conhecidas como "Fator Outlier Baseado em Ângulo") são provavelmente outliers. Pode exigir uma análise final da distribuição empírica do ABOF para determinar o que é anômalo.
    • Se você rotulou outliers: ajuste um modelo preditivo aos dados de engenharia (regressão logística, SVM, etc.).

* Recursos discretos podem ser tratados aproximadamente no seu método gaussiano. Sob as condições corretas, um recurso pode ser bem aproximado por uma distribuição normal (por exemplo, variável aleatória binomial com npq> 3). Caso contrário, trate-os como ordinais descritos acima.

** Isso é semelhante à sua ideia de "substituir o valor da categoria pela porcentagem de chance de observação"

khol
fonte
Como você ajusta um modelo de mistura aos dados categóricos brutos? Você apenas tem ? E funciona para vários recursos categóricos? K=1
Akababa 19/09/18
@ Akababa Você pode, por exemplo, calcular MLEs em parâmetros multinomiais usando o algoritmo EM. Assumindo a independência dos RVs multinomiais, essa abordagem generaliza para conjuntos de preditores categóricos arbitrários. Exemplo aqui
khol 21/09/18
0

A matemática da classe Andrew Ng lida com dados "discretos", da mesma forma que lida com dados "não discretos". Tudo o que precisamos fazer é estimar empiricamente os parâmetros normais de distribuição e isso pode ser feito perfeitamente para dados discretos.

Se você pensar bem, o aprendizado de máquina sempre lida com dados discretos de qualquer maneira: o número de pontos de dados não é infinito e o número de bits manipulados pelos computadores não é infinito.

Se pontos de dados discretos puderem ser comparados entre si, não haverá diferença fundamental para os métodos de aprendizado de máquina ao lidar com, digamos, comprimento: 1,15 pés 1,34 pés 3,4 pés

ou quantos galhos estão na árvore: 1 2 3 5

Você pode somar e calcular o ponto flutuante médio ou números inteiros da mesma forma.

Agora, para dados categóricos. Os pontos de dados categóricos não podem ser comparados (carro x moto x barco). Como nós lidamos com isso?

O número de categorias precisa ser de pelo menos duas para fazer sentido; caso contrário, qual é o objetivo constante? No caso de duas categorias, podemos representar um recurso de categoria como um recurso binário {0, 1}. 0 e 1 podem ser usados ​​para matemática, então veja acima.

Se o número de categorias (K) for [3 .. inf], mapeamos nosso recurso único para K recursos binários mutuamente exclusivos. Por exemplo, a categoria "motocicleta" se torna uma combinação de recursos binários {IsCar: 0, IsMotorcycle: 1, IsBoat: 0}, o ponto do barco se torna {IsCar: 0, IsMotorcycle: 0, IsBoat: 1} e assim por diante.

Podemos estimar parâmetros de distribuição empírica a partir desses novos recursos. Simplesmente teremos mais dimensões, só isso.

Oscar92
fonte
1
Esta é explicar codificação manequim, mas isso não é uma resposta para a pergunta
Pieter