2
我在Python中使用nltk,我想繪製分類器(樸素貝葉斯)的ROC曲線。有沒有繪製它的功能,或者我是否需要跟蹤真陽性率和假陽性率?Ntlk&Python,繪製ROC曲線
這將是巨大的,如果有人點我的一些代碼已經在做了......
感謝。
我在Python中使用nltk,我想繪製分類器(樸素貝葉斯)的ROC曲線。有沒有繪製它的功能,或者我是否需要跟蹤真陽性率和假陽性率?Ntlk&Python,繪製ROC曲線
這將是巨大的,如果有人點我的一些代碼已經在做了......
感謝。
PyROC看起來很簡單:tutorial,source code
這是它將如何與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()
編輯:
.prob(1)
感謝您的快速回復。然而,有幾件事我不明白:1)我有3個類,名爲「P」,「N」和「?」 (正面,負面和中性),如果我將正數分爲數字1和負數,中性分數爲0,那麼可以嗎? 2)它不應該是「naive_bayes.prob_classify(featureset).prob(label))」嗎? (也就是說,傳遞標籤的概率而不是正面的類) –
@DT:我編輯了我的答案 - 告訴我它是不是很清楚,或者我說錯了什麼! – wutz
再次感謝!編輯中的第一個點是清楚的。關於第二個點,我瞭解ROC曲線是如何繪製的(感謝您的明確解釋),但是我想仔細檢查一下:如果1 =正數且0 =負數,並且您使用'prob(1)'繪製曲線顯示正分類表現的ROC曲線,對嗎?基於python2的 –