当使用plt.cm即colourmap时,下面显示的这个混淆矩阵的颜色工作正常,除了1.0值,然后看起来颜色太浅了。
我希望这与以下两者有关:颜色包裹使得在1.0时颜色被设置回较浅的颜色(不太可能)或者颜色在0.692的框中的颜色实际上是指值为1.0的颜色但是我的剧本以奇怪的方式构建颜色。
代码:
import numpy as np
import itertools
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
class_names = np.array(['EA','EB','RR Lyrae','Ceph','Dscuti','Noise'])
def pcm(cm,classes,normalize = True,title='Confusion Matrix',cmap=plt.cm.OrRd):
plt.imshow(cm,interpolation='nearest',cmap=cmap)
plt.title(title)
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks,classes,rotation=45)
plt.yticks(tick_marks,classes)
cm = cm.astype('float') / cm.sum(axis =0)[:,np.newaxis]
cm = np.around(cm,decimals=3)
thresh = cm.max()/2.
for i, j in itertools.product(range(cm.shape[0]),range(cm.shape[1])):
plt.text(j,i,cm[i,j],horizontalalignment="center",color="white" if cm[i,j]>thresh else "black")
plt.tight_layout()
plt.xlabel('True Species')
plt.ylabel('Predicted Species')
cnf_matrix = confusion_matrix(np.array(pred_classes)-2,real_classes)
np.set_printoptions(precision=2)
plt.figure()
pcm(cnf_matrix,classes=class_names,normalize = True,title = 'Normalised Confusion Matrix')
plt.show()