As classes previstas da regressão logística (binária) são determinadas usando um limite nas probabilidades de associação à classe geradas pelo modelo. Pelo que entendi, normalmente 0,5 é usado por padrão.
Mas variar o limite alterará as classificações previstas. Isso significa que o limiar é um hiperparâmetro? Se sim, por que (por exemplo) não é possível pesquisar facilmente em uma grade de limites usando o GridSearchCV
método scikit-learn (como você faria no parâmetro de regularização C
).
Respostas:
O limite de decisão cria uma troca entre o número de positivos que você prediz e o número de negativos que você prediz - porque, tautologicamente, aumentar o limite de decisão diminui o número de positivos que você prediz e aumenta o número de negativos que você prediz. você prevê.
O limite de decisão não é um hiperparâmetro no sentido de ajuste do modelo porque não altera a flexibilidade do modelo.
A maneira como você pensa sobre a palavra "sintonia" no contexto do limite de decisão é diferente de como os hiperparâmetros são ajustados. AlterarC e outros hiperparâmetros do modelo altera o modelo(por exemplo, os coeficientes de regressão logística serão diferentes), enquanto o ajuste do limite pode fazer apenas duas coisas: trocar TP por FN e FP por TN. No entanto, o modelo permanece o mesmo, porque isso não altera os coeficientes. (O mesmo vale para modelos que não têm coeficientes, como florestas aleatórias: alterar o limiar não muda nada nas árvores.) Portanto, em um sentido restrito, você está correto ao encontrar o melhor compromisso entre os erros. é "ajuste", mas você está errado ao pensar que a alteração do limite está vinculada a outros hiperparâmetros do modelo de uma maneira otimizada
GridSearchCV
.Em outras palavras, alterar o limite de decisão reflete uma escolha de sua parte sobre quantos falsos positivos e falsos negativos que você deseja ter. Considere a hipótese de definir o limite de decisão para um valor completamente implausível como -1. Todas as probabilidades não são negativas; portanto, com esse limite, você preverá "positivo" para cada observação. De uma certa perspectiva, isso é ótimo, porque sua taxa de falsos negativos é 0,0. No entanto, sua taxa de falsos positivos também está no extremo de 1,0, portanto, nesse sentido, sua escolha do limite em -1 é terrível.
O ideal, é claro, é ter um TPR de 1,0 e um FPR de 0,0 e um FNR de 0,0. Mas isso geralmente é impossível em aplicativos do mundo real, então a pergunta se torna "quanto FPR estou disposto a aceitar por quanto TPR?" E essa é a motivação das curvas roc .
fonte
GridSearchCV
Sim, sim, meio que. É um hiperparâmetro da sua regra de decisão , mas não a regressão subjacente.
Este é um erro de design no sklearn. A melhor prática para a maioria dos cenários de classificação é ajustar o modelo subjacente (que prevê probabilidades) usando alguma medida da qualidade dessas probabilidades (como a perda de log em uma regressão logística). Posteriormente, um limite de decisão sobre essas probabilidades deve ser ajustado para otimizar algum objetivo comercial da sua regra de classificação. A biblioteca deve facilitar a otimização do limite de decisão com base em alguma medida de qualidade, mas não acredito que isso aconteça bem.
Eu acho que esse é um dos lugares que a sklearn entendeu errado. A biblioteca inclui um método,,
predict
em todos os modelos de classificação com limiares em0.5
. Este método é inútil, e eu defendo fortemente que nunca o invoque. É uma pena que o sklearn não esteja incentivando um melhor fluxo de trabalho.fonte
predict
escolha padrão de 0,5 como método de corte, masGridSearchCV
aceitascorer
objetos que podem ajustar modelos em relação à perda de entropia cruzada fora da amostra. Estou perdendo o seu ponto?