最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)兩種多分類混淆矩陣

 更新時間:2022年06月07日 11:14:41   作者:胖大海pyh  
這篇文章主要為大家介紹了Python實現(xiàn)兩種多分類混淆矩陣,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1、什么是混淆矩陣

深度學習中,混淆矩陣是ROC曲線繪制的基礎,同時它也是衡量分類型模型準確度中最基本,最直觀,計算最簡單的方法。它可以直觀地了解分類模型在每一類樣本里面表現(xiàn),常作為模型評估的一部分。它可以非常容易的表明多個類別是否有混淆(也就是一個class被預測成另一個class)。

首先要明確幾個概念: 

T或者F:該樣本 是否被正確分類。 

P或者N:該樣本 原本是正樣本還是負樣本。 

  • 真正例(True Positive,TP):預測正確;模型預測也是正例,樣本的真實類別是正例, 
  • 真負例(True Negative,TN):預測正確:模型預測為負例,樣本的真實類別是負例, 
  • 偽正例(False Positive,F(xiàn)P):預測錯誤:模型預測為正例,樣本的真實類別是負例, 
  • 偽負例(False Negative,F(xiàn)N):預測錯誤;模型預測為負例,樣本的真實類別是正例,

將這四個指標一起呈現(xiàn)在表格中,就能得到如下這樣一個矩陣,我們稱它為混淆矩陣(Confusion Matrix),這里從其他文章偷了張圖:

在混線矩陣中,以對角線為分界線。以上圖為例子:對角線的位置表示預測正確,對角線以外的位置表示把樣本錯誤的預測為其他樣本。

2、分類模型評價指標

從混淆矩陣可以直觀地看出各個參數(shù)的數(shù)值大小。查準率是在模型預測為正的所有樣本中,模型預測對的比重,即:“分類器認為是正類并且確實是正類的部分占所有分類器認為是正類的比例”。計算公式如下式所示:

F1-Score指標綜合了Precision與Recall的產(chǎn)出的結果。F1-Score的取值范圍從0到1的,1代表模型的輸出最好,0代表模型的輸出結果最差,計算公式如下式所示:

(4)

除了F1分數(shù)之外,F(xiàn)2分數(shù)和F0.5分數(shù)在統(tǒng)計學中也得到大量的應用。其中,F(xiàn)2分數(shù)中,召回率的權重高于精準率,而F0.5分數(shù)中,精準率的權重高于召回率。

3、兩種多分類混淆矩陣

多分類混淆矩陣根據(jù)不同需求可以繪制不同的矩陣: 

1、直接打印出每一個類別的分類準確率。 

2、打印具體的分類結果的數(shù)值,方便數(shù)據(jù)的分析和各類指標的計算

在介紹具體代碼之前,首先來介紹confusion_matrix()函數(shù),它是Python中的sklearn庫提供的輸出矩陣數(shù)據(jù)的方法:

def confusion_matrix(y_true, y_pred, labels=None, sample_weight=None):

參數(shù)意義:

  • y_true: 是樣本真實分類結果,y_pred: 是樣本預測分類結果
  • y_pred:預測結果
  • labels:是所給出的類別,通過這個可對類別進行選擇
  • sample_weight : 樣本權重

3.1直接打印出每一個類別的分類準確率。

# 顯示混淆矩陣
def plot_confuse(model, x_val, y_val):
   # 獲得預測結果
    predictions = predict(model,x_val)
    #獲得真實標簽
    truelabel = y_val.argmax(axis=-1)   # 將one-hot轉化為label
    cm = confusion_matrix(y_true=truelabel, y_pred=predictions)
    plt.figure()
    # 指定分類類別
    classes = range(np.max(truelabel)+1)
    title='Confusion matrix'
   #混淆矩陣顏色風格
    cmap=plt.cm.jet
    cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)
    thresh = cm.max() / 2.
   # 按照行和列填寫百分比數(shù)據(jù)
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, '{:.2f}'.format(cm[i, j]), horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")
    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')
    plt.show()

3.2打印具體的分類結果的數(shù)值

# 顯示混淆矩陣
def plot_confuse_data(model, x_val, y_val):
    classes = range(0,6)
    predictions = predict(model,x_val)
    truelabel = y_val.argmax(axis=-1)   # 將one-hot轉化為label
    confusion = confusion_matrix(y_true=truelabel, y_pred=predictions)
    #顏色風格為綠。。。。
    plt.imshow(confusion, cmap=plt.cm.Greens)
# ticks 坐標軸的坐標點
# label 坐標軸標簽說明
    indices = range(len(confusion))
# 第一個是迭代對象,表示坐標的顯示順序,第二個參數(shù)是坐標軸顯示列表
    plt.xticks(indices, classes)
    plt.yticks(indices, classes)
    plt.colorbar()
    plt.xlabel('Predicted label')
    plt.ylabel('True label')
    plt.title('Confusion matrix')

# plt.rcParams兩行是用于解決標簽不能顯示漢字的問題
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.rcParams['axes.unicode_minus'] = False

# 顯示數(shù)據(jù)
    for first_index in range(len(confusion)):    #第幾行
        for second_index in range(len(confusion[first_index])):    #第幾列
            plt.text(first_index, second_index, confusion[first_index][second_index])
# 顯示
    plt.show()

4、總結

1、混淆矩陣是深度學習中分類模型最常用的評估指標。網(wǎng)上大部分都是顯示各類的分類正確率,不夠靈活。顯示具體數(shù)值靈活性大,可以計算自己想要的指標。

2、多分類的混淆矩陣中 查準率為主對角線上的值除以該值所在列的和;召回率等于主對角線上的值除以該值所在行的和。

以上就是Python實現(xiàn)兩種多分類混淆矩陣的詳細內(nèi)容,更多關于Python多分類混淆矩陣的資料請關注腳本之家其它相關文章!

相關文章

  • python生成圓形圖片的方法

    python生成圓形圖片的方法

    這篇文章主要為大家詳細介紹了python生成圓形圖片的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python讀取中文txt文本的方法

    python讀取中文txt文本的方法

    下面小編就為大家分享一篇python讀取中文txt文本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python清除字符串中間空格的實例講解

    python清除字符串中間空格的實例講解

    今天小編就為大家分享一篇python清除字符串中間空格的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 深度學習中shape[0]、shape[1]、shape[2]的區(qū)別詳解

    深度學習中shape[0]、shape[1]、shape[2]的區(qū)別詳解

    本文主要介紹了深度學習中shape[0]、shape[1]、shape[2]的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • python2 對excel表格操作完整示例

    python2 對excel表格操作完整示例

    這篇文章主要介紹了python2 對excel表格操作,結合完整實例形式分析了Python2 操作Excel表格的讀取、寫入相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • Python中byte字符串轉string的實現(xiàn)

    Python中byte字符串轉string的實現(xiàn)

    本文主要介紹了Python中byte字符串轉string的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • python實現(xiàn)圖片轉字符畫的完整代碼

    python實現(xiàn)圖片轉字符畫的完整代碼

    這篇文章主要給大家介紹了關于python實現(xiàn)圖片轉字符畫的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • 使用pandas忽略行列索引,縱向拼接多個dataframe

    使用pandas忽略行列索引,縱向拼接多個dataframe

    這篇文章主要介紹了使用pandas忽略行列索引,縱向拼接多個dataframe的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python中循環(huán)依賴問題及其解決方案

    Python中循環(huán)依賴問題及其解決方案

    在軟件開發(fā)中,循環(huán)依賴是一個常見的問題,尤其是在使用 Python 這樣的動態(tài)語言時,循環(huán)依賴指的是兩個或多個模塊或組件相互依賴,形成一個閉環(huán),本文將探討 Python 中循環(huán)依賴的問題,并提供一些解決方案,需要的朋友可以參考下
    2024-06-06
  • Python實現(xiàn)PowerPoint演示文稿到圖片的批量轉換

    Python實現(xiàn)PowerPoint演示文稿到圖片的批量轉換

    PowerPoint演示文稿作為展示創(chuàng)意、分享知識和表達觀點的重要工具,被廣泛應用于教育、商務匯報及個人項目展示等領域,用Python代碼可以高效地實現(xiàn)PowerPoint演示文稿到圖片的批量轉換,從而提升工作效率,文本將介紹如何使用Python實現(xiàn)PowerPoint演示文稿到圖片的轉換
    2024-06-06

最新評論

犍为县| 鄂托克前旗| 建瓯市| 繁峙县| 巴里| 集安市| 剑阁县| 平安县| 道孚县| 那曲县| 拉孜县| 广昌县| 临夏县| 五常市| 昭觉县| 宜春市| 常熟市| 嘉定区| 临桂县| 民勤县| 藁城市| 太保市| 行唐县| 福泉市| 驻马店市| 长武县| 石棉县| 柳江县| 呼和浩特市| 宁都县| 临海市| 旬阳县| 东阿县| 涿鹿县| 荔波县| 黑山县| 宣汉县| 兴和县| 博白县| 观塘区| 新源县|