13

間違っている場合は訂正してください。scikit-learn の roc_curve によって返される「しきい値」は、[0,1] 内の数値の配列である必要があります。ただし、最初の数値が「2」に近い配列が返されることがあります。それはバグですか、それとも間違っていましたか?ありがとう。

In [1]: import numpy as np

In [2]: from sklearn.metrics import roc_curve

In [3]: np.random.seed(11)

In [4]: aa = np.random.choice([True, False],100)

In [5]: bb = np.random.uniform(0,1,100)

In [6]: fpr,tpr,thresholds = roc_curve(aa,bb)

In [7]: thresholds
Out[7]: 
array([ 1.97396826,  0.97396826,  0.9711752 ,  0.95996265,  0.95744405,
    0.94983331,  0.93290463,  0.93241372,  0.93214862,  0.93076592,
    0.92960511,  0.92245024,  0.91179548,  0.91112166,  0.87529458,
    0.84493853,  0.84068543,  0.83303741,  0.82565223,  0.81096657,
    0.80656679,  0.79387241,  0.77054807,  0.76763223,  0.7644911 ,
    0.75964947,  0.73995152,  0.73825262,  0.73466772,  0.73421299,
    0.73282534,  0.72391126,  0.71296292,  0.70930102,  0.70116428,
    0.69606617,  0.65869235,  0.65670881,  0.65261474,  0.6487222 ,
    0.64805644,  0.64221486,  0.62699782,  0.62522484,  0.62283401,
    0.61601839,  0.611632  ,  0.59548669,  0.57555854,  0.56828967,
    0.55652111,  0.55063947,  0.53885029,  0.53369398,  0.52157349,
    0.51900774,  0.50547317,  0.49749635,  0.493913  ,  0.46154029,
    0.45275916,  0.44777116,  0.43822067,  0.43795921,  0.43624093,
    0.42039077,  0.41866343,  0.41550367,  0.40032843,  0.36761763,
    0.36642721,  0.36567017,  0.36148354,  0.35843793,  0.34371331,
    0.33436415,  0.33408289,  0.33387442,  0.31887024,  0.31818719,
    0.31367915,  0.30216469,  0.30097917,  0.29995201,  0.28604467,
    0.26930354,  0.2383461 ,  0.22803687,  0.21800338,  0.19301808,
    0.16902881,  0.1688173 ,  0.14491946,  0.13648451,  0.12704826,
    0.09141459,  0.08569481,  0.07500199,  0.06288762,  0.02073298,
    0.01934336])
4

3 に答える 3

6

ドキュメントから:

thresholds : array, shape = [n_thresholds] fpr と tpr の計算に使用される決定関数のしきい値を減らします。thresholds[0]は、予測されるインスタンスがないことを表し、任意に に設定されmax(y_score) + 1ます。

したがって、 の最初の要素はthresholds2 に近くなります。これはmax(y_score) + 1、あなたのケースではthresholds[1] + 1.

于 2015-04-12T07:41:10.113 に答える
1

これは私にはバグのようです-roc_curve(aa、bb)では、最初のしきい値に1が追加されます。ここで問題を作成する必要がありますhttps://github.com/scikit-learn/scikit-learn/issues

于 2014-04-21T16:12:15.410 に答える