2013-08-22 3 views
0

творю спутанность матрица с научно-комплект узнать с двумя различными списками: 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) Есть ли способ сделать метки появляются на генерируемую матрице неточностей в пл 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.xticks и plt.yticks функции.

Сначала вы должны выбрать, где вы хотите, чтобы ваши тики были на оси, а затем вы должны установить метки.

Например: предположим, у вас есть x ось, которая простирается от 5 до 25 и вы хотите 3 тиков в 8, 15 и 22, и вы хотите этикетки foo, bar, baz.

Тогда вы должны вызвать:

# 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] и вы хотите hello, apple и orange как ваши этикетки. Вы должны сделать:

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