我正在尝试使用sklearn.metrics循环计算多条(〜3000)roc曲线,并将结果添加到列表中。
基本上,代码看起来像这样:
from sklearn import metrics
results = []
for y_test in dataset:
fpr, tpr, thresholds = metrics.roc_curve(y, y_test, pos_label=1)
results.append([fpr, tpr, thresholds])
工作正常,但是经过大约2k次迭代后,我得到PyThreadState_Get:没有当前线程指向sklearn文件:
Fatal Python error: PyThreadState_Get: no current thread
Current thread 0x000017a4 (most recent call first):
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\metrics\ranking.py", line 356 in _binary_clf_curve
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\metrics\ranking.py", line 534 in roc_curve
我怀疑这是内存问题,但是我无法通过简单地释放更多的RAM来解决它,Windows资源监视器也不显示在错误期间使用了所有内存。 也许以前有人遇到过这样的问题?
我正在Windows 7(64位)上使用Python 3
答案 0 :(得分:0)
据我所知,此实现仅限于二进制分类任务。
答案 1 :(得分:0)
我遇到了同样的问题,问题出在我传递给roc_curve函数的数据点上。关于数据一定有些怪异。因此,尝试解决数据点问题应该可以解决此问题。