Suponha que eu esteja construindo um classificador de regressão logística que preveja se alguém é casado ou solteiro. (1 = casado, 0 = solteiro) Quero escolher um ponto na curva de precisão-recall que me dê pelo menos 75% de precisão, portanto, desejo escolher os limites e , para que:t 2
- Se a saída do meu classificador for maior que , a saída será "casada".
- Se a saída estiver abaixo de , eu "single".
- Se a saída estiver no meio, eu saio "Não sei".
Algumas perguntas:
- Penso que, sob a definição padrão de precisão, a precisão medirá a precisão da classe casada sozinha (ou seja, precisão = # vezes que eu prevejo corretamente o número total de vezes que prevejo o casamento). No entanto, o que eu realmente quero fazer é medir a precisão geral (ou seja, o total de # vezes que prevejo corretamente o casamento ou solteiro / total de vezes o número de predições de casado ou solteiro). Isso é bom? Se não, o que devo fazer?
- Existe uma maneira de calcular essa curva "geral" de precisão / recall em R (por exemplo, usando o pacote ROCR ou alguma outra biblioteca)? Atualmente, estou usando o pacote ROCR, mas parece apenas fornecer a precisão / recall de classe única de cada vez.
fonte
Como Robert colocou corretamente, a precisão é o caminho a percorrer. Eu só quero acrescentar que é possível calculá-lo com o ROCR. Dê uma olhada na ajuda (desempenho) para selecionar diferentes medidas.
Por exemplo, no ROCR, apenas um limite de decisão é usado, chamado de ponto de corte . O código a seguir plota precisão versus ponto de corte e extrai o ponto de corte para máxima precisão.
o que resulta em
Para operar com dois limites, a fim de criar uma região intermediária de incerteza (que é um caminho válido se as circunstâncias / o aplicativo de destino permitir), é possível criar dois objetos de desempenho com o ROCR
Selecione um ponto de corte adequado a partir dos vetores de desempenho (usando o método R) e combine-os para obter o equilíbrio desejado. Isso deve ser direto, portanto deixo como um exercício para o leitor.
Uma última observação: qual é a diferença entre Precisão e precisão de cálculo para ambas as classes separadamente e, por exemplo, combiná-las em uma média (ponderada)?
A precisão calcula uma média ponderada, em que o peso da classe c é equivalente ao número de instâncias da classe c. Isso significa que, se você sofrer uma grande distorção de classe (98% negativos, por exemplo), poderá simplesmente "otimizar" a precisão definindo prever o rótulo negativo para todas as instâncias. Nesse caso, uma média simples não ponderada das precisões de ambas as classes impede o jogo da métrica. No caso de classes equilibradas, ambos os métodos de cálculo levam, obviamente, ao mesmo resultado.
fonte