首先,比例尺顯示在網格的中間,這需要隱藏比例尺。其次,如何在每個網格中間顯示每個標簽,其次,如何在每個網格中顯示精度值。最後,橫坐標和縱坐標如何顯示標簽名稱,標簽名稱較長時如何處理顯示問題。
直接粘貼代碼:
【python】?觀平原?復制
''''計算?困惑?矩陣?
labels.txt:?包含?標簽?姓名。?
predict.txt:?預測_標簽?true_label?
'''?
從哪裏?sklearn.metrics?進口?困惑_矩陣?
進口?matplotlib.pyplot?作為?plt?
進口?numpy?作為?np?
#加載?標簽。?
標簽?=?[]?
文件?=?打開(' labels.txt ',?r’)?
臺詞?=?file.readlines()?
為了什麽?線?在?臺詞:?
labels.append(line.strip())?
file.close()?
y_true?=?[]?
y_pred?=?[]?
#加載?真的嗎?然後呢。預測?標簽。?
文件?=?打開(' predict.txt ',?r’)?
臺詞?=?file.readlines()?
為了什麽?線?在?臺詞:?
y_true.append(int(line.split("?)[1].strip()))?
y_pred.append(int(line.split("?)[0].strip()))?
file.close()?
tick _ marks?=?np.array(range(len(labels)))?+?0.5?
def?plot_confusion_matrix(cm,title= '困惑?矩陣',?cmap?=?plt.cm.binary):?
plt.imshow(cm,?插值= '最近',?cmap=cmap)?
plt.title(標題)?
plt.colorbar()?
xlocations?=?np.array(range(len(labels)))?
plt.xticks(xlocations,標簽?旋轉=90)?
plt.yticks(xlocations,標簽)?
plt.ylabel('True?標簽’)?
plt.xlabel('預測?標簽’)?
cm?=?困惑_矩陣(y_true,?y_pred)?
打印?cm?
NP . set _ print options(precision = 2)?
cm _歸壹化?=?cm . astype(' float ')/cm . sum(axis = 1)[:,?np.newaxis]?
打印?cm _歸壹化?
plt.figure(figsize=(12,8),?dpi=120)?
#設定?那個?fontsize?的?標簽。?
#為了什麽?標簽?在?PLT . GCA()xaxis . get _ tick labels():?
#label.set_fontsize(8)?
#文字?份額?
ind_array?=?np.arange(len(labels))?
x,?y?=?np.meshgrid(ind_array,?ind_array)?
為了什麽?x_val,?y_val?在?zip(x.flatten(),?y.flatten()):?
c?=?cm _規格化[y_val][x_val]?
如果?(c?& gt?0.01):?
plt.text(x_val,?y_val,?" %0.2f "?%(c,),?color='red ',?fontsize=7,?va='center ',?ha= '中心')?
#偏移?那個?滴答?
plt.gca()。set_xticks(tick_marks,minor=True)?
plt.gca()。set_yticks(刻度線,minor=True)?
PLT . GCA(). xaxis . set _ ticks _ position(' none ')?
PLT . GCA()ya xis . set _ ticks _ position(' none ')?
plt.grid(True,which='minor ',?linestyle='-')?
plt.gcf()。支線劇情_adjust(bottom=0.15)?
plot _混淆_矩陣(cm _歸壹化,?title= '正常化?困惑?矩陣’)?
#秀?困惑?矩陣?
plt.show()?
結果如下圖所示:
閱讀全文
版權聲明:本文為博主原創文章,未經博主允許,不得轉載。
目前您還沒有登錄,請問?登錄?還是?註冊?稍後評論。
林春棉
2017-05-08 2