當前位置:成語大全網 - 書法字典 - 如何用python繪制拼圖矩陣

如何用python繪制拼圖矩陣

在做分類的時候,我們經常需要畫壹個混淆矩陣。下面我們用python的matplotlib包,scikit-learning機器學習庫也提供了壹個例子:,但是這樣的圖不能滿足我們的要求。

首先,比例尺顯示在網格的中間,這需要隱藏比例尺。其次,如何在每個網格中間顯示每個標簽,其次,如何在每個網格中顯示精度值。最後,橫坐標和縱坐標如何顯示標簽名稱,標簽名稱較長時如何處理顯示問題。

直接粘貼代碼:

【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