1

Я использую матрицу замешательства, которая работает нормально, пока я не доберусь до определенной части моих массивов numpy.Недопустимый индекс для скалярной переменной в матрице путаницы scikit

Результаты земной истины хранятся в массиве под названием y_test, а результаты классов - хранятся в r.

Когда я использую матрицу путаницы для всего набора результатов, проблем нет.

Но я хочу разделить результаты моего эксперимента. У меня есть 3 конкретных результата классификаторов, которые хранятся в массивах под названием c, b и t.

Теперь я хочу сравнить результаты этих 3 конкретных классификаторов с некоторыми конкретными показателями общих результатов. Например, я хочу выделить матрицу путаницы для результатов для классификатора C конкретно из индексов 91-180 общих результатов.

Для классификатора B Я хочу видеть матрицу путаницы результатов от индексов от 1 до 90. И так далее.

Это мой код ниже. Для первых двух матриц путаницы проблем нет. Они показывают хорошо.

cm_c = confusion_matrix(y_test[91:80],c[91:80]) 
plt.matshow(cm_c) 
plt.title('Confusion matrix') 
plt.colorbar() 
plt.ylabel('True label') 
plt.xlabel('Predicted label') 
plt.show() 

cm_b = confusion_matrix(y_test[1:90],b[1:90]) 
plt.matshow(cm_b) 
plt.title('Confusion matrix') 
plt.colorbar() 
plt.ylabel('True label') 
plt.xlabel('Predicted label') 
plt.show() 

cm_t = confusion_matrix(y_test[228:317,t[228:317]) 
plt.matshow(cm_t) 
plt.title('Confusion matrix') 
plt.colorbar() 
plt.ylabel('True label') 
plt.xlabel('Predicted label') 
plt.show() 

Но для последнего набора результатов выше (с использованием массива результатов из классификатора T), я получаю следующее сообщение об ошибке:

cm_t = confusion_matrix(y_test[228:317], t[228:317]) 
IndexError: invalid index to scalar variable 

Я не знаю, что это неправильно.

ответ

1

В вашей линии:

cm_t = confusion_matrix(y_test[228:317,t[228:317]) 

вам не хватает скобку. Это должно быть:

cm_t = confusion_matrix(y_test[228:317],t[228:317]) 

 Смежные вопросы

  • Нет связанных вопросов^_^