Как я могу иметь хорошую визуализацию матрицы путаницы? - PullRequest
0 голосов
/ 01 ноября 2019

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

lr = LogisticRegression()
lr.fit(X_train,Y_train)
y_test_pred = lr.predict(X_test)
print("The accuracy of the logistic regression : ",(accuracy_score(y_test_pred,Y_test)*100), "%")

confusion_matrix = pd.crosstab(Y_test, y_test_pred, rownames=['Actual'], colnames=['Predicted'])
cm = confusion_matrix.astype('float') / confusion_matrix.sum(axis=1)[:, np.newaxis]

# Visualization
plt.figure 
plt.title('Logistic Regression')
sns.heatmap(cm, annot=True)
plt.show()

Вывод выглядит примерно так: screen

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 01 ноября 2019
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
cm=confusion_matrix(y,y_pred)
plt.matshow(cm,cmap=plt.cm.Greens)
plt.colorbar() 
plt.show()

plt.matshow () может помочь.

Добавьте, как поставить число в середине. Ключевые слова: горизонтальное выравнивание, вертикальное выравнивание позволяет определить положение аннотации.

    import matplotlib.pyplot as plt
    plt.matshow(cm,cmap=plt.cm.Greens)  # plot matrix    
    plt.colorbar() 

    for i in range(len(cm)):
        for j in range(len(cm)):
            plt.annotate(cm[i,j],xy=(j,i),horizontalalignment='center',verticalalignment='center',size=15,color='orange') 
...