Como você gera curvas ROC para validação cruzada de exclusão única?

10

Ao executar a validação cruzada de 5 vezes (por exemplo), é típico calcular uma curva ROC separada para cada uma das 5 dobras e geralmente vezes uma curva ROC média com std. dev. mostrado como espessura da curva.

No entanto, para validação cruzada LOO, onde há apenas um único ponto de dados de teste em cada dobra, não parece sensato calcular uma "curva" ROC para esse único ponto de dados.

Eu peguei todos os meus pontos de dados de teste (junto com seus valores p calculados separadamente) e os agrupei em um conjunto grande para calcular uma única curva ROC, mas isso é a coisa estatisticamente mais kosher a ser feita?

Qual é a maneira correta de aplicar a análise ROC quando o número de pontos de dados em cada dobra é um (como no caso da validação cruzada do LOO)?

user1121
fonte
Por quê? O que você deseja realizar com essa criatura?
Preciso analisar o desempenho geral da previsão em uma variedade de limites de valor p, e as curvas ROC são o que eu tradicionalmente usei para todos os outros tipos de validação cruzada. Então, basicamente, os mesmos motivos pelos quais a análise ROC é útil em qualquer validação cruzada em k-fold. Se houver uma abordagem análoga diferente para o LOO xval, também seria ótimo saber sobre isso. Além disso, eu faria algo como xval 10 vezes se tivesse dados suficientes e isso não fosse um problema.
user1121
11
Eu diria que você está fazendo isso de forma sensata, basta criar uma única curva ROC utilizando a verdadeira etiqueta e o valor previsto para cada caso (em que nesse caso foi o hold out)
B_Miner

Respostas:

15

Se o classificador gerar probabilidades, a combinação de todas as saídas do ponto de teste para uma única curva ROC é apropriada. Caso contrário, dimensione a saída do classificador de uma maneira que o torne diretamente comparável entre os classificadores. Por exemplo, digamos que você esteja usando a Análise Discriminante Linear. Treine o classificador e, em seguida, coloque os dados de treinamento no classificador. Aprenda dois pesos: um parâmetro de escala (o desvio padrão das saídas do classificador, após subtrair as médias da classe) e um parâmetro de mudança (a média da primeira classe). Use esses parâmetros para normalizar a saída bruta de cada classificador LDA viaμ r n = ( r - μ ) / σσμrn=(rμ)/σe, em seguida, você pode criar uma curva ROC a partir do conjunto de saídas normalizadas. Isso tem a ressalva de que você está estimando mais parâmetros e, portanto, os resultados podem desviar um pouco do que se você tivesse construído uma curva ROC com base em um conjunto de testes separado.

Se não for possível normalizar as saídas do classificador ou transformá-las em probabilidades, uma análise ROC baseada no LOO-CV não é apropriada.

Benhamner
fonte