Ntlk&;Python,绘制ROC曲线
我将nltk与Python结合使用,我想绘制我的分类器(朴素贝叶斯)的ROC曲线。是否有绘图功能,或者我应该跟踪真阳性率和假阳性率 如果有人能告诉我一些已经在做的代码,那就太好了Ntlk&;Python,绘制ROC曲线,python,nlp,machine-learning,nltk,Python,Nlp,Machine Learning,Nltk,我将nltk与Python结合使用,我想绘制我的分类器(朴素贝叶斯)的ROC曲线。是否有绘图功能,或者我应该跟踪真阳性率和假阳性率 如果有人能告诉我一些已经在做的代码,那就太好了 谢谢。PyROC看起来很简单: 这就是NLTK朴素贝叶斯分类器的工作原理: # class labels are 0 and 1 labeled_data = [ (1, featureset_1), (0, featureset_2), (1, featureset_3), # ...
谢谢。PyROC看起来很简单: 这就是NLTK朴素贝叶斯分类器的工作原理:
# class labels are 0 and 1
labeled_data = [
(1, featureset_1),
(0, featureset_2),
(1, featureset_3),
# ...
]
# naive_bayes is your already trained classifier,
# preferrably not on the data you're testing on :)
from pyroc import ROCData
roc_data = ROCData(
(label, naive_bayes.prob_classify(featureset).prob(1))
for label, featureset
in labeled_data
)
roc_data.plot()
编辑:
- ROC仅用于二进制分类器。如果您有三个类,那么您可以分别度量正类和负类的性能(通过将其他两个类计算为0,就像您建议的那样)
- 库希望决策函数的输出作为每个元组的第二个值。然后它尝试所有可能的阈值,例如f(x)>=0.8=>分类为1,并为每个阈值绘制一个点(这就是为什么最后会得到一条曲线)。因此,如果您的分类器猜测类0,那么您实际上需要一个接近于零的值。这就是为什么我建议
。问题(1)
prob(1)
你绘制的ROC曲线显示了正分类的性能,对吗?基于python2,现在不太实用;改用