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

Python?sklearn預(yù)測(cè)評(píng)估指標(biāo)混淆矩陣計(jì)算示例詳解

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

前言

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

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

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

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

混淆矩陣

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

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

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

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

python代碼

混淆矩陣一般來說可以有三種實(shí)現(xiàn)展示方法,需要前置計(jì)算出混淆矩陣數(shù)據(jù),這一點(diǎn)使用sklearn就可以實(shí)現(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就是計(jì)算出來的混淆矩陣:

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

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

參數(shù)說明:

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

得到了混淆矩陣接下來進(jìn)行數(shù)據(jù)可視化就好了,這里有三種實(shí)現(xiàn)形式,其中matplotlib和seaborn實(shí)現(xiàn)方法是一樣的,都是熱力圖實(shí)現(xiàn),另外sklearn自帶一個(gè)ConfusionMatrixDisplay也可以直接實(shí)現(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')  # 標(biāo)題
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識(shí)別的顏色映射。
  • xticks_rotation: {‘vertical’, ‘horizontal’} or float, default=’horizontal’。旋轉(zhuǎn)xtick標(biāo)簽。
  • values_format:str, default=None?;煜仃囍兄档母袷揭?guī)范。如果無,則格式規(guī)范為“d”或“.2g”,以較短者為準(zhǔn)。
  • ax: matplotlib axes, default=None。要繪制的軸對(duì)象。如果為“無”,則創(chuàng)建新的圖形和軸。
  • colorbar:bool, default=True。是否向繪圖添加色條。
  • im_kw:dict, default=None。使用傳遞給matplotlib.pyplot.imshow調(diào)用的關(guān)鍵字進(jìn)行讀寫。
  • text_kw:dict, default=None。使用傳遞給matplotlib.pyplot.text調(diào)用的關(guān)鍵字進(jìn)行讀寫。

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

相關(guān)文章

  • Python中的圖像處理之Python圖像平滑操作

    Python中的圖像處理之Python圖像平滑操作

    本文主要介紹在Python中調(diào)用OpenCV庫(kù)對(duì)圖像進(jìn)行圖像平滑濾波處理與圖像加噪處理,如雙邊濾波,高斯雙邊濾波,圖像加隨機(jī)噪聲等操作,對(duì)Python圖像平滑操作感興趣的朋友一起看看吧
    2022-06-06
  • python變量類型、輸入、輸出運(yùn)算符介紹舉例

    python變量類型、輸入、輸出運(yùn)算符介紹舉例

    Python是一種功能強(qiáng)大的編程語(yǔ)言,支持多種數(shù)據(jù)類型和運(yùn)算符,它強(qiáng)調(diào)代碼的可讀性和簡(jiǎn)潔性,變量在Python中是動(dòng)態(tài)類型的,不需要顯式聲明類型,這篇文章主要介紹了python變量類型、輸入、輸出運(yùn)算符的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python編程批量實(shí)現(xiàn)md5加密pdf文件

    Python編程批量實(shí)現(xiàn)md5加密pdf文件

    這篇文章主要介紹了Python編程批量實(shí)現(xiàn)md5加密pdf文件,文章基于python的相關(guān)資料展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題(三種解決方案)

    Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題(三種解決方案)

    這篇文章主要介紹了Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python使用pptx實(shí)現(xiàn)復(fù)制頁(yè)面到其他PPT中

    Python使用pptx實(shí)現(xiàn)復(fù)制頁(yè)面到其他PPT中

    這篇文章主要為大家詳細(xì)介紹了python如何使用pptx庫(kù)實(shí)現(xiàn)從一個(gè)ppt復(fù)制頁(yè)面到另一個(gè)ppt里面,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下
    2023-02-02
  • Python中threading庫(kù)實(shí)現(xiàn)線程鎖與釋放鎖

    Python中threading庫(kù)實(shí)現(xiàn)線程鎖與釋放鎖

    threading用于提供線程相關(guān)的操作,為了保證安全的訪問一個(gè)資源對(duì)象,我們需要?jiǎng)?chuàng)建鎖。那么Python線程鎖與釋放鎖如何實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2021-05-05
  • Python Pandas基礎(chǔ)操作詳解

    Python Pandas基礎(chǔ)操作詳解

    這篇文章主要介紹了Python使用Pandas庫(kù)常見操作,結(jié)合實(shí)例形式詳細(xì)分析了Python Pandas模塊的功能、原理、數(shù)據(jù)對(duì)象創(chuàng)建、查看、選擇等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2021-10-10
  • OpenCV實(shí)戰(zhàn)之OpenCV中的顏色空間

    OpenCV實(shí)戰(zhàn)之OpenCV中的顏色空間

    這篇文章主要介紹了OpenCV實(shí)戰(zhàn)之OpenCV中的顏色空間,解計(jì)算機(jī)視覺中常用的色彩空間,并將其用于基于顏色分割。我們還將用C?++和Python共享演示代碼,下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Python 限定函數(shù)參數(shù)的類型及默認(rèn)值方式

    Python 限定函數(shù)參數(shù)的類型及默認(rèn)值方式

    今天小編就為大家分享一篇Python 限定函數(shù)參數(shù)的類型及默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例

    python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例

    python獲取beautifulphoto隨機(jī)某圖片代碼實(shí)例,大家參考使用吧
    2013-12-12

最新評(píng)論

清原| 靖远县| 府谷县| 双城市| 额济纳旗| 长白| 太谷县| 安平县| 河间市| 铁岭县| 栾城县| 得荣县| 济阳县| 济宁市| 建德市| 敖汉旗| 灵台县| 梓潼县| 德州市| 玛曲县| 靖西县| 河间市| 茌平县| 黄龙县| 宁武县| 莱西市| 阳东县| 达尔| 万安县| 新晃| 孙吴县| 巧家县| 甘南县| 芜湖市| 都匀市| 临城县| 乌拉特后旗| 通城县| 松潘县| 大英县| 东兰县|