欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?sklearn預(yù)測評估指標混淆矩陣計算示例詳解

 更新時間:2023年02月15日 11:38:07   作者:fanstuck  
這篇文章主要為大家介紹了Python?sklearn預(yù)測評估指標混淆矩陣計算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

很多時候需要對自己模型進行性能評估,對于一些理論上面的知識我想基本不用說明太多,關(guān)于校驗?zāi)P蜏蚀_度的指標主要有混淆矩陣、準確率、精確率、召回率、F1 score。另外還有P-R曲線以及AUC/ROC,這些我都有寫過相應(yīng)的理論和具體理論過程:

機器學習:性能度量篇-Python利用鳶尾花數(shù)據(jù)繪制ROC和AUC曲線

機器學習:性能度量篇-Python利用鳶尾花數(shù)據(jù)繪制P-R曲線

 這里我們主要進行實踐利用sklearn快速實現(xiàn)模型數(shù)據(jù)校驗,完成基礎(chǔ)指標計算。

混淆矩陣

查準率(precision)與查全率(recall)是對于需求在信息檢索、Web搜索等應(yīng)用評估性能度量適應(yīng)度高的檢測數(shù)值。對于二分類問題,可將真實類別與算法預(yù)測類別的組合劃分為真正例(ture positive)、假證例(false positive)、真反例(true negative)、假反例(false negative)四種情形。顯然TP+FP+TN+FN=樣例總數(shù)。分類結(jié)果為混淆矩陣:

以分類模型中最簡單的二分類為例,對于這種問題,我們的模型最終需要判斷樣本的結(jié)果是0還是1,或者說是positive還是negative。 因此,我們就能得到這樣四個基礎(chǔ)指標,我稱他們是一級指標(最底層的):

  • 真實值是positive,模型認為是positive的數(shù)量(True Positive=TP)
  • 真實值是positive,模型認為是negative的數(shù)量(False Negative=FN):這就是統(tǒng)計學上的第二類錯誤(Type II Error)
  • 真實值是negative,模型認為是positive的數(shù)量(False Positive=FP):這就是統(tǒng)計學上的第一類錯誤(Type I Error)
  • 真實值是negative,模型認為是negative的數(shù)量(True Negative=TN)

預(yù)測性分類模型,肯定是希望越準越好。那么,對應(yīng)到混淆矩陣中,那肯定是希望TP與TN的數(shù)量大,而FP與FN的數(shù)量小。所以當我們得到了模型的混淆矩陣后,就需要去看有多少觀測值在第二、四象限對應(yīng)的位置,這里的數(shù)值越多越好;反之,在第一、三象限對應(yīng)位置出現(xiàn)的觀測值肯定是越少越好。

python代碼

混淆矩陣一般來說可以有三種實現(xiàn)展示方法,需要前置計算出混淆矩陣數(shù)據(jù),這一點使用sklearn就可以實現(xiàn):

from sklearn.metrics import confusion_matrix
y_true =df_evaluation.state_y
y_pred =df_evaluation.state_x
cm= confusion_matrix(y_true, y_pred,labels=[2,3,4,5])

其中cm就是計算出來的混淆矩陣:

利用sklearn的confusion_matrix函數(shù)就可以實現(xiàn),這里將該函數(shù)的參數(shù)鋪開一下:

sklearn.metrics.confusion_matrix(y_true, 
                                 y_pred, 
                                 *, 
                                 labels=None, 
                                 sample_weight=None, 
                                 normalize=None)

參數(shù)說明:

  • y_true:對比真值
  • y_pred: 預(yù)測值
  • labels:索引矩陣的標簽列表。這可用于重新排序或選擇標簽的子集。如果給定“無”,則按排序順序使用在y_true或y_pred中至少出現(xiàn)一次的值。
  • sample_weight:樣本權(quán)重
  • normalize:在真(行)、預(yù)測(列)條件或所有總體上規(guī)范化混淆矩陣。如果“無”,則混淆矩陣將不會被歸一化。

得到了混淆矩陣接下來進行數(shù)據(jù)可視化就好了,這里有三種實現(xiàn)形式,其中matplotlib和seaborn實現(xiàn)方法是一樣的,都是熱力圖實現(xiàn),另外sklearn自帶一個ConfusionMatrixDisplay也可以直接實現(xiàn)熱力。 第一種matplotlib/seaborn:

import seaborn as sns
import matplotlib.pyplot as plt
labels=[2,3,4,5]
sns.heatmap(cm,annot=True ,fmt="d",xticklabels=labels,yticklabels=labels)
plt.title('confusion matrix')  # 標題
plt.xlabel('Predict lable')  # x軸
plt.ylabel('True lable')  # y軸
plt.show()

第二種ConfusionMatrixDisplay:

disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=labels)
disp.plot(
    include_values=True,            
    cmap="viridis",                 
    ax=None,                        
    xticks_rotation="horizontal",   
    values_format="d"               
)
plt.show()

這里我主要將一下ConfusionMatrixDisplay.plot()的可選參數(shù):

plot(*, 
     include_values=True, 
     cmap='viridis', 
     xticks_rotation='horizontal', 
     values_format=None, 
     ax=None, 
     colorbar=True, 
     im_kw=None, 
     text_kw=None)

參數(shù)說明:

  • include_values:bool,default=True。包括混淆矩陣中的值。
  • cmap:str or matplotlib Colormap, default=’viridis’。matplotlib識別的顏色映射。
  • xticks_rotation: {‘vertical’, ‘horizontal’} or float, default=’horizontal’。旋轉(zhuǎn)xtick標簽。
  • values_format:str, default=None?;煜仃囍兄档母袷揭?guī)范。如果無,則格式規(guī)范為“d”或“.2g”,以較短者為準。
  • ax: matplotlib axes, default=None。要繪制的軸對象。如果為“無”,則創(chuàng)建新的圖形和軸。
  • colorbar:bool, default=True。是否向繪圖添加色條。
  • im_kw:dict, default=None。使用傳遞給matplotlib.pyplot.imshow調(diào)用的關(guān)鍵字進行讀寫。
  • text_kw:dict, default=None。使用傳遞給matplotlib.pyplot.text調(diào)用的關(guān)鍵字進行讀寫。

以上就是Python sklearn預(yù)測評估指標混淆矩陣計算示例詳解的詳細內(nèi)容,更多關(guān)于Python sklearn預(yù)測評估混淆矩陣的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python讀取配置文件(config.ini)以及寫入配置文件

    Python讀取配置文件(config.ini)以及寫入配置文件

    這篇文章主要介紹了Python讀取配置文件(config.ini)以及寫入配置文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python的10道簡單測試題(含答案)

    Python的10道簡單測試題(含答案)

    這篇文章主要介紹了Python的10道簡單測試題(含答案),學習了一段時間python的小伙伴來做幾道測試題檢驗一下自己的學習成果吧
    2023-04-04
  • Python OpenCV 圖像矯正的原理實現(xiàn)

    Python OpenCV 圖像矯正的原理實現(xiàn)

    這篇文章主要介紹了Python OpenCV 圖像矯正的原理實現(xiàn),檢測邊緣點;以邊緣點作為輸入,采用Hough直線檢測,檢測出最多點共線的四條直線,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • Python3中最常用的5種線程鎖實例總結(jié)

    Python3中最常用的5種線程鎖實例總結(jié)

    python3線程中鎖機制還是很重要的知識點,如果大家不清楚鎖機制的話,那就一定要好好看下這篇文章,這篇文章主要給大家總結(jié)介紹了光宇Python3中最常用的5種線程鎖,需要的朋友可以參考下
    2021-07-07
  • Python調(diào)用GPT3.5接口的最新方法實例詳解

    Python調(diào)用GPT3.5接口的最新方法實例詳解

    這篇文章主要介紹了Python調(diào)用GPT3.5接口的最新方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Python源碼解析之List

    Python源碼解析之List

    今天帶大家來復(fù)習Python底層代碼LIST,文中有非常詳細的介紹及代碼示例,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • python利用PyQt5設(shè)計鼠標顯示形狀

    python利用PyQt5設(shè)計鼠標顯示形狀

    不知道大家有沒有發(fā)現(xiàn),我們在網(wǎng)頁移動鼠標時,不同的網(wǎng)頁會有不同的鼠標移動特效,通過移動鼠標,會形成類似蜘蛛網(wǎng)等等的特效,本文將用PyQt5實現(xiàn)這一特效,需要的可以參考一下
    2024-07-07
  • TensorFlow打印tensor值的實現(xiàn)方法

    TensorFlow打印tensor值的實現(xiàn)方法

    今天小編就為大家分享一篇TensorFlow打印tensor值的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 基于PyQt制作小紅書圖片抓取工具

    基于PyQt制作小紅書圖片抓取工具

    這篇文章主要為大家詳細介紹了如何基于PyQt制作一個小紅書圖片抓取工具,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • TensorFlow中關(guān)于tf.app.flags命令行參數(shù)解析模塊

    TensorFlow中關(guān)于tf.app.flags命令行參數(shù)解析模塊

    這篇文章主要介紹了TensorFlow中關(guān)于tf.app.flags命令行參數(shù)解析模塊,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論