我正在构建一个模型,使用sklearn中的逻辑回归,模型有12个参数,标签为{0,1}。我需要对标签0非常有信心,如果一些’0’被错误分类为1,我可以接受。这样做的目的是,如果数据被分类为0,我希望将其从处理中排除。
我该如何调整参数呢?
回答:
你基本上是在寻找特异性,它被定义为TN/(TN+FP)
,其中TN是真负例,FP是假正例。你可以在此博客文章中了解更多信息,并在此详细了解。要实现这一点,你需要在sklearn中使用make_scorer和混淆矩阵指标,如下所示:
from sklearn.metrics import confusion_matrix
from sklearn.metrics import make_scorer
def get_TN_rate(y_true,y_pred):
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
specificity = float(tn)/(float(tn)+float(fp))
return specificity
tn_rate = make_scorer(get_TN_rate,greater_is_better=True)
现在你可以使用tn_rate
作为评分函数来训练你的分类器。