我试图绘制混乱矩阵,但是出于一个奇怪的原因,它看起来不太好,可以帮助我弄清楚如何改善它?
在代码下面,并在jupyter笔记本上显示::
import codecs
import re
import os
import sys, argparse
import csv
from itertools import islice
import pickle
from collections import defaultdict, Counter
import numpy as np
import pandas as pd
from pandas import read_excel
from pandas import read_csv
from pandas.plotting import scatter_matrix
from matplotlib import pyplot as plt
import seaborn as sns
%matplotlib inline
def classifieur(X, y):
# Building matrix
X = feature(X) #
model1 = LinearSVC()
model2 = MultinomialNB()
model3 = LogisticRegression()
models = {'model_SVC':model1 , 'model_NB': model2, 'model_LR': model3}
cv = KFold(n_splits=10, shuffle=False, random_state=None)
for model_name, model in models.items():
y_pred = cross_val_predict(model, X, y, cv=cv)
# print("Model: {}".format(model_name))
# print("Accuracy: {}".format(accuracy_score(y, y_pred)))
cm = confusion_matrix(ylabels, y_pred)
# print("matrice confusion: {}".format(cm))
# Transform to cm_df for easier plotting
cm_v = pd.DataFrame(cm,
index = ['C','F','M'],
columns = ['C','F','M'])
plt.figure(figsize=(6,4))
sns.heatmap(cm_v, annot=True)
plt.title('{}'.format(model_name))
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()
classifieur(X, y)
跟踪
2019-12-17 09:33:59,895 - matplotlib.colorbar - DEBUG - locator: <matplotlib.ticker.MaxNLocator object at 0x7f8748813ad0>
2019-12-17 09:33:59,896 - matplotlib.colorbar - DEBUG - Using auto colorbar locator on colorbar
2019-12-17 09:33:59,896 - matplotlib.colorbar - DEBUG - locator: <matplotlib.ticker.MaxNLocator object at 0x7f8748813ad0>
2019-12-17 09:33:59,897 - matplotlib.colorbar - DEBUG - Setting pcolormesh
您可以看到它的一部分没有出现或被遮盖,并且这些行始终出现在cm之前:
2019-12-17 09:33:59,895-matplotlib.colorbar-DEBUG-定位器: 2019-12-17 09:33:59,896-matplotlib.colorbar-调试-在colorbar上使用自动colorbar定位器 2019-12-17 09:33:59,896-matplotlib.colorbar-调试-定位器: 2019-12-17 09:33:59,897-matplotlib.colorbar-调试-设置pcolormesh