Por que há um cotovelo afiado nas minhas curvas ROC?


8

Eu tenho alguns conjuntos de dados EEG que estou testando em duas classes. Posso obter uma taxa de erro decente do LDA (as distribuições condicionais de classe não são gaussianas, mas têm caudas semelhantes e separação suficientemente boa) e, portanto, quero plotar o ROC do preditor LDA contra conjuntos de dados de outros assuntos.

Aqui está um gráfico típico para o preditor testado em uma única tentativa: insira a descrição da imagem aqui

Eu tentei alguns pacotes diferentes (pROC e ROCR), e os resultados são consistentes. Minha pergunta é: o que há com o cotovelo afiado? É apenas um artefato da projeção produzida pelo LDA, ou seja, existe um 'penhasco' onde o desempenho do classificador despenca?

Respostas:


4

Uma "curva" ROC perfeita será modelada com uma curva acentuada. O desempenho que você tem lá é uma separação perfeita muito próxima. Além disso, parece que você tem uma escassez de pontos fazendo a curva.


Sim, cada uma delas tem apenas cerca de 7500 amostras de tempo em 14 dimensões (espaço não projetado). Dito isto, se eu fizesse várias tentativas de diferentes sujeitos, o ruído não acabaria suavizando a curva em torno do ponto de inflexão?
estrela brilhante

Quando você diz "cada um desses", não sei o que você quer dizer. Não está claro quantos pontos realmente compõem a curva. Sim, talvez se curve se houver variabilidade entre os sujeitos, mas se não houver, não haverá. É possível que você tenha um problema de codificação de dados ou esteja apenas plotando algumas amostras, mas é impossível saber o que você postou.
John

Desculpe, eu quis dizer cada série temporal individual (teste experimental). Existe bastante variabilidade entre os sujeitos, mas o ROC resultante para cada teste de um único preditor em um estudo tem um canto agudo, como na figura acima, apenas localizado em um local ligeiramente diferente. Verifiquei duas vezes o tamanho das minhas entradas de preditor e resposta ao comando roc (); ambos são rótulos de classe de comprimento 7500.
estrela brilhante

6

Embora essa pergunta tenha sido feita há cerca de três anos, acho útil respondê-la aqui depois de encontrá-la e ficar intrigada com ela por algum tempo. Quando sua saída da verdade básica é 0,1 e sua previsão é 0,1, você obtém um cotovelo em forma de ângulo. Se a sua previsão ou verdade fundamental são valores ou probabilidades de confiança (digamos, no intervalo [0,1]), você receberá cotovelo curvado.


5

Concordo com John, na medida em que a curva acentuada se deve a uma escassez de pontos. Especificamente, parece que você usou as previsões binárias do seu modelo (por exemplo, 1/0) e os rótulos observados (por exemplo, 1/0). Por esse motivo, você tem 3 pontos, um assume um ponto de corte de Inf, um assume um ponto de corte de 0 e o último assume um ponto de corte 1, que é dado pelo TPR e FPR do seu modelo e está localizado em um ângulo agudo em seu gráfico.

Em vez disso, você deve usar as probabilidades da classe prevista (valores entre 0 e 1) e os rótulos observados (ou seja, 1/0). Isso fornecerá a você um número de pontos no gráfico igual ao número de probabilidades únicas que você possui (mais uma para Inf). Portanto, se você tiver 100 probabilidades únicas, terá 101 pontos no gráfico para cada um dos vários pontos de corte.


Infelizmente, não me lembro de quais cálculos ou dados específicos eu estava usando, então não posso voltar atrás. Isso soa como um excelente conselho, no entanto.
estrela brilhante
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.