Pandas 使用精度召回曲线时确定的阈值

Pandas 使用精度召回曲线时确定的阈值,pandas,scikit-learn,precision-recall,Pandas,Scikit Learn,Precision Recall,我一直在研究精确回忆曲线,很难理解阈值是如何确定的 这是我的代码: import sklearn precision, recall, thresholds = sklearn.metrics.precision_recall_curve(y_test, probas_pred[:,1], pos_label=1, sample_weight=None) 产生 precision = array([ 0.99971396, 1. , 1

我一直在研究精确回忆曲线,很难理解阈值是如何确定的

这是我的代码:

import sklearn
precision, recall, thresholds = sklearn.metrics.precision_recall_curve(y_test,
                             probas_pred[:,1], pos_label=1, sample_weight=None)
产生

precision = array([ 0.99971396, 1. , 1. , 1. , 1. , 1. , 1. ])
recall = array([ 1. , 0.99885551, 0.99341917, 0.96852647, 0.88898426, 0.70872675, 0. ])
thresholds = array[ 0.5,  0.6,  0.7,  0.8,  0.9,  1. ])
如果我做了np.unique(probas_pred[:,1])(随机林,高级不平衡),我会得到以下阈值:

thresholds_probas_pred = array([ 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.])
我认为precision recall曲线绘制probas_pred数组中所有唯一值的精度和召回率。在这种情况下,精度召回曲线返回的阈值似乎忽略了小于0.5的值。有人能解释一下吗


谢谢

原因是在阈值=0.5时,召回率已经达到1。换句话说,对于probas_pred来说,原因是在阈值=0.5时,召回率已经达到1。换句话说,对于probas_pred,您确定没有6个或更少的唯一probas_pred吗?精度召回曲线中阈值数组的大小遵循以下规则:
shape=[n_thresholds n_thresholds=6在这种情况下小于len(unique(probas_pred))=11,因此方程成立。您确定没有6个或更少的唯一概率pred吗?精度召回曲线中阈值数组的大小遵循以下规则:
shape=[n\u阈值n\u阈值=6在这种情况下小于len(唯一(概率pred))=11,因此方程成立。