Na discussão: como gerar uma curva roc para classificação binária , acho que a confusão foi que um "classificador binário" (que é qualquer classificador que separa duas classes) foi para Yang o que é chamado de "classificador discreto" (que produz saídas discretas 0/1 como um SVM) e não saídas contínuas como classificadores ANN ou Bayes ... etc. Portanto, a discussão foi sobre como o ROC é plotado para "classificadores contínuos binários", e a resposta é que as saídas são classificadas por suas pontuações, uma vez que os resultados são contínuos e um limite é usado para produzir cada ponto na curva ROC.
Minha pergunta é para "classificadores discretos binários", como SVM, os valores de saída são 0 ou 1. Portanto, o ROC produz apenas um ponto e não uma curva. Estou confuso por que ainda chamamos isso de curva? !! Ainda podemos falar sobre limites? Como alguém pode usar limites no SVM em particular? Como calcular a AUC ?, A validação cruzada desempenha algum papel aqui?
fonte
Respostas:
Sim, há situações em que a curva operacional normal do receptor não pode ser obtida e existe apenas um ponto.
Os SVMs podem ser configurados para gerar probabilidades de associação à classe. Esse seria o valor usual para o qual um limite seria variado para produzir uma curva operacional do receptor .
É isso que você está procurando?
As etapas no ROC geralmente acontecem com um pequeno número de casos de teste, em vez de ter algo a ver com variação discreta na covariável (particularmente, você acaba com os mesmos pontos se escolher seus limites discretos para que, para cada novo ponto, apenas uma amostra mude sua atribuição).
A variação contínua de outros (hiper) parâmetros do modelo produz, obviamente, conjuntos de pares de especificidade / sensibilidade que fornecem outras curvas no sistema de coordenadas FPR; TPR.
A interpretação de uma curva, é claro, depende de qual variação gerou a curva.
Aqui está um ROC usual (isto é, solicitando probabilidades como saída) para a classe "versicolor" do conjunto de dados da íris:
O mesmo tipo de sistema de coordenadas, mas TPR e FPR como função dos parâmetros de ajuste γ e C:
FPR; TPR (γ, C = 1, limiar de probabilidade = 0,5):
FPR; TPR (γ = 1, C, limiar de probabilidade = 0,5):
Esses gráficos têm um significado, mas o significado é decididamente diferente daquele do ROC!
Aqui está o código R que eu usei:
fonte
these plots do have a meaning
- qual é o significado dessas parcelas?Normalmente, o rótulo previsto do SVM é fornecido por , onde é o SVM otimizado pesos do hiperplano e é a interceptação otimizada para SVM. Isso também pode ser reescrito da seguinte forma: y =sinal(wo tx+b)wb yy^ y^= sinal ( wTx +b) W b
No entanto, se introduzirmos um limite , podemos controlar a taxa de detecção positiva variando , ou seja, r | yη η
Ao variar , podemos produzir um ROC usando SVM e, assim, ajustar a taxa de sensibilidade e especificidade.η
Por exemplo, se queremos fazê-lo em python, podemos extrair e usando limiar como segue. bηW b η
fonte
A curva ROC representa a especificidade versus sensibilidade, que varia com o limiar de uma covariável (que pode ser contínua ou discreta). Acho que você está confundindo a covariável com a resposta e talvez não entenda completamente o que é uma curva ROC. Certamente é uma curva se a covariável é contínua e observamos um limiar para a covariável mudar continuamente. Se a covariável for discreta, você ainda pode plotar em função de um limite contínuo. Então a curva seria plana com etapas para cima (ou para baixo) em limites que correspondem aos valores discretos da covariável. Portanto, isso se aplica ao SVM e a qualquer outro classificador discreto.
Em relação à AUC, uma vez que ainda temos um ROC (estimado), ainda podemos calcular a área sob ele. Não tenho certeza do que você tinha em mente com sua pergunta sobre validação cruzada. No contexto dos problemas de classificação, a validação cruzada é usada para obter estimativas imparciais ou quase imparciais das taxas de erro do classificador. Assim, pode-se entender como estimamos os pontos no ROC.
fonte