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

python繪制ROC曲線的示例代碼

 更新時間:2023年07月20日 10:44:50   作者:張小李的風  
本文主要介紹了python繪制ROC曲線的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

受試者工作特征(Receiver Operating Characteristic,ROC)的基本知識

  • ROC曲線可以用來評估分類器的輸出質量。
  • ROC曲線Y軸為真陽性率,X軸為假陽性率。這意味著曲線的左上角是“理想”點——假陽性率為0,真陽性率為1。
  • 上述的理想情況實際中很難存在,但它確實表示面積下曲線(AUC)越大通常分類效率越好。
  • ROC曲線的“陡度”也很重要,坡度越大,則越有降低假陽性率,升高真陽性率的趨勢。
  • ROC曲線通常用于二元分類中研究分類器的輸出(也可在多分類中使用,需要對標簽進行二值化【比如ABC三類,進行分類時將標簽進行二值化處理[A(1)、BC(0)】、【B(1)、AC(0)】、【C(1)、AB(0)】,比如本文不作討論)。

python 實現

  • 繪制ROC曲線主要基于python 的sklearn庫中的兩個函數,roc_curv和auc兩個函數。
  • roc_curv 用于計算出fpr(假陽性率)和tpr(真陽性率)
  • auc用于計算曲線下面積,輸入為fpr、和tpr

roc_curv函數詳解

  • roc_curve(y_true, y_score, pos_label=None, sample_weight=None,drop_intermediate=True)
  • 輸入值
  • y_true :一個和樣本數量一致的一維向量,數據是正確的二元標簽。如果標簽不是{- 1,1}或{0,1},則可以顯式指定pos_label。
  • y_score:一個樣本數量一致的一維向量,目標分數可以是陽性類的概率估計、置信度值或決策的非閾值度量(在某些分類器上由“decision_function”返回,比如SVM)。簡單的理解就是對測試集進行分類后得到的一個用于衡量該類是陽性還是陰性的分數度量,分類器也是根據這個分數來判斷測試集是陽性樣本還是陰性樣本,因此通常都可以在分類器的中間過程拿到這個分數。
  • pos_label:樣本標簽,如果y_true不滿足{0,1},{-1,1}標簽時則需要通過該參數指定那些是陽性樣本,其余的則為陰性樣本,默認不輸入。
  • sample_weight:一個樣本數量一致的一維向量,指定每個樣本的權重,默認不輸入。
  • drop_intermediate:為true時(默認= True)會刪除一些不會出現在ROC曲線上的次優(yōu)閾值。
  • 返回值
  • fpr:假陽性率序列,數量與thread一致的一維向量。
  • tpr:真陽性率序列,數量與thread一致的一維向量。
  • thread:該序列是一個遞減序列,在每一個閾值下對y_score進行劃分,大于的視為陽性,小于的視為陰性,從而計算出該閾值下的fpr。

代碼示例

# 導包
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 計算
fpr, tpr, thread = roc_curve(y_test, y_score)
roc_auc[i] = auc(fpr, tpr)
# 繪圖
plt.figure()
lw = 2
plt.plot(fpr, tpr, color='darkorange',
? ? ? ? ?lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.savefig('roc.png',)
plt.show()

y_test 數據示例:

0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1

y_score:數據示例:

-0.763011 -0.202245 0.118015 -0.907809 -0.0111619 -0.604873 0.0228349 -0.610769 -0.375728
 -0.470174 -0.422242 -0.335587 -0.227239 -0.0785673  -0.533834 0.121637 -0.713569 -0.551115 
 0.379913 -0.111076

更多SVM及ROC的介紹見文章:

python基于sklearn的SVM和留一法(LOOCV)進行二分類
python:Sklearn SVM使用留一法時如何繪制ROC曲線與計算AUC

到此這篇關于python繪制ROC曲線的示例代碼的文章就介紹到這了,更多相關python繪制ROC曲線內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Phantomjs抓取渲染JS后的網頁(Python代碼)

    Phantomjs抓取渲染JS后的網頁(Python代碼)

    phantomjs:我的理解就是它是一個無顯示的瀏覽器,也就是說除了不能顯示頁面內容以外,瀏覽器能干的活兒它基本上都能干。下面我們就來利用他做點有趣的事情
    2016-05-05
  • 解決pycharm 安裝numpy失敗的問題

    解決pycharm 安裝numpy失敗的問題

    今天小編就為大家分享一篇解決pycharm 安裝numpy失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • opencv python 圖像去噪的實現方法

    opencv python 圖像去噪的實現方法

    這篇文章主要介紹了opencv python 圖像去噪的實現方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python導出chrome書簽到markdown文件的實例代碼

    python導出chrome書簽到markdown文件的實例代碼

    python導出chrome書簽到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后輸出到文件即可。下面給大家分享實例代碼,需要的朋友參考下
    2017-12-12
  • Python設計實現的計算器功能完整實例

    Python設計實現的計算器功能完整實例

    這篇文章主要介紹了Python設計實現的計算器功能,結合完整實例形式分析了Python3.5實現計算器功能的正則、字符串及數值運算等相關操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python推導式簡單示例【列表推導式、字典推導式與集合推導式】

    Python推導式簡單示例【列表推導式、字典推導式與集合推導式】

    這篇文章主要介紹了Python推導式,結合簡單實例形式分析了Python列表推導式、字典推導式與集合推導式基本使用方法,需要的朋友可以參考下
    2018-12-12
  • django 實現后臺從富文本提取純文本

    django 實現后臺從富文本提取純文本

    這篇文章主要介紹了django 實現后臺從富文本提取純文本,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python使用captcha庫制作帶參數輸入驗證碼案例

    Python使用captcha庫制作帶參數輸入驗證碼案例

    這篇文章主要介紹了Python使用captcha庫制作驗證碼,帶參數輸入,本文通過實例案例解析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 基于pytorch中的Sequential用法說明

    基于pytorch中的Sequential用法說明

    這篇文章主要介紹了基于pytorch中的Sequential用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • django rest framework之請求與響應(詳解)

    django rest framework之請求與響應(詳解)

    下面小編就為大家?guī)硪黄猟jango rest framework之請求與響應(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助
    2017-11-11

最新評論