Estou trabalhando em um problema de classificação binária em que é muito mais importante não ter falsos positivos; muitos falsos negativos estão ok. Eu usei vários classificadores no sklearn, por exemplo, mas acho que nenhum deles tem a capacidade de ajustar explicitamente o tradeoff de recall de precisão (eles produzem resultados muito bons, mas não ajustáveis).
Quais classificadores têm precisão / recall ajustável? Existe alguma maneira de influenciar a troca de precisão / recall em classificadores padrão, por exemplo, Random Forest ou AdaBoost?
fonte
precision_recall_curve
calcular todo o F1. Como calcular apenas os negativos?Acabei de resolver isso sozinho antes de me deparar com este Q, por isso decidi compartilhar minha solução.
Ele usa a mesma abordagem que Marc Claesen propôs, mas responde à pergunta atual sobre como ajustar o classificador para aumentar o deslocamento no recall de precisão no eixo de precisão.
X_test são os dados e y_test são os rótulos verdadeiros. O classificador já deve estar instalado.
E é assim que você usaria o limite mínimo recém-aprendido para ajustar sua previsão (que, de outra forma, seria chamada de previsão (X_test))
Seria ótimo ouvir seus comentários sobre esta receita de ajuste.
fonte
Aqui está a função
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.predict_proba
que produz probabilidades de classe. Em seguida, use várias métricas para ajustar o limite P, que você usa na decisão, seguindo o pseudo-código
se p (y)> P, então y = 1 else y = 0 endif
fonte