2013-08-22 305 views
0

我正在與SCI-KIT混淆矩陣學會用兩種不同的列表:gold_labels和預測標籤Scikit學習混淆矩陣

cm = confusion_matrix(gold_labels, predicted_labels) 
pl.matshow(cm) #I use pl to generate an image 
pl.title('Confusion Matrix') 
pl.ylabel('True label') 
pl.xlabel('Predicted label') 
pl.colorbar() 

其中黃金標籤/預測標籤看起來是這樣的:(字符串列表)

gold_labels =["hello", "apple".....] 
predicted_labels=["hi", "apple"....] 

混淆矩陣生成,它看上去很美,但標籤索引(0,1,2),如果0映射到「你好」或「蘋果」 所以,我有我不能告訴兩個問題: 1)有沒有辦法讓標籤出現在PL 2)如果沒有產生混淆矩陣,我怎麼知道我的字符串列表如何與其對應的索引

+0

我不太明白你的問題。你能把標籤放在混淆矩陣上嗎?如果是這樣,這裏有一個例子,我回答了前一段時間有關如何做到這一點... http://stackoverflow.com/questions/2897826/confusion-matrix-with-number-of-classified-misclassified-instances-on-it -python/2901740#2901740 – tom10

+0

不,我的意思是,而不是數字顯示爲標籤(0,1,2,3)我想字符串(你好,蘋果出現) – user1011332

回答

1

匹配只要打電話給plt.xticksplt.yticks功能。

首先,您必須選擇您希望蜱在軸上的位置,然後您必須設置標籤。

例如:假設你有一個x軸跨越從525,你想3個蜱在81522,並且希望標籤foobarbaz

那麼你應該叫:

# do your plotting first, for example 
x = np.arange(5, 25) 
y = x * x 
plt.plot(x, y) 
# and then the ticks 
plt.xticks([8, 15, 22], ['foo', 'bar', 'baz']) 
# And finally show the plot 
plt.show() 

在你的情況,因爲你的標籤蜱在[0, 1, 2],你想helloappleorange爲您的標籤。你應該這樣做:

plt.xticks([0, 1, 2], ['hello', 'apple', 'orange'])