scikit-learn - 在传递到 'roc_curve' 之前如何处理从 'auc' 返回的

我正在使用 scikit-learn 中度量模型中的“roc_curve”。该示例显示 'roc_curve' 应在 'auc' 之前调用,类似于:

fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)

然后:

metrics.auc(fpr, tpr)

但是返回以下错误:

Traceback (most recent call last):   File "analysis.py", line 207, in <module>
    r = metrics.auc(fpr, tpr)   File "/apps/anaconda/1.6.0/lib/python2.7/site-packages/sklearn/metrics/metrics.py", line 66, in auc
    x, y = check_arrays(x, y)   File "/apps/anaconda/1.6.0/lib/python2.7/site-packages/sklearn/utils/validation.py", line 215, in check_arrays
    _assert_all_finite(array)   File "/apps/anaconda/1.6.0/lib/python2.7/site-packages/sklearn/utils/validation.py", line 18, in _assert_all_finite
    raise ValueError("Array contains NaN or infinity.") ValueError: Array contains NaN or infinity.

这对术语或结果意味着什么/有没有办法克服这个问题?

最佳答案

您是否正在尝试使用 roc_curve 来评估多类分类器?换句话说,如果您在非二元分类问题上使用 roc_curve,那么这将无法正常工作。有用于多维 ROC 分析的数学方法,但 python 中当前的 ROC 方法没有实现它们。

尝试使用以下方法评估多类问题:来自 sklearn 的 confusion_matrix 和 classification_report,以及来自 skll 的 kappa()。

关于scikit-learn - 在传递到 'roc_curve' 之前如何处理从 'auc' 返回的 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692789/

相关文章:

r - R 中的 polr(..) 序数逻辑回归

css - 使用 CSS 的 SVG 路径填充颜色

proxy - 无法从远程机器访问鱿鱼代理

spring - 如何为持久性 Quartz 作业重命名作业类?

python - 永远不会创建文件

ruby-on-rails - 如何在到达 Rails 应用程序之前处理从 Rack 生成的异常

sql-server - SQL Server 2008 的 FreeTextTable 性能不佳

ruby-on-rails - 在超时注销之前向用户显示一条消息

unicode - 如何处理 SDL 中的大写击键?

entity-framework - MVC4 + EntityFramework : metada