curve fitting怎么導入數據,sklearn.metrics.roc_curve使用說明

 2023-12-25 阅读 26 评论 0

摘要:roc曲線是機器學習中十分重要的一種學習器評估準則,在sklearn中有完整的實現,api函數為sklearn.metrics.roc_curve(params)函數。 curve fitting怎么導入數據、官方接口說明:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curv

roc曲線是機器學習中十分重要的一種學習器評估準則,在sklearn中有完整的實現,api函數為sklearn.metrics.roc_curve(params)函數。

curve fitting怎么導入數據、官方接口說明:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html

不過這個接口只限于進行二分類任務。!

下面主要是對官方接口做一下翻譯。

接口函數 ??sklearn.metrics.roc_curve(y_true,?y_score,?pos_label=None,?sample_weight=None,?drop_intermediate=True)

參數說明

    y_true:數組,存儲數據的標簽,維度就是樣本數,形如[0,1,1,0,1...]這樣的,也可以是-1和1,只要有兩個值

    y_score:數組,存儲數據的預測概率值,維度也是樣本數,形如[0.38,0.5,0.8]這樣的

    pos_label:整型或字符串,當y_true中只有一個值時,比如都是1或者都是0,無法判斷哪個是正樣本,需要用一個數字或字符串指出

    sample_weight:采樣權重,這個官方沒有仔細說,是一個可選參數,有待考察

    drop_intermediate:丟掉一些閾值,以便畫roc曲線圖

返回值:一共三個,分別是fpr,tpr,thresholds

    fpr:數組,隨閾值上漲的假陽性率

    tpr:數組,隨閾值上漲的真正例率

    thresholds:數組,對預測值排序后的score列表,作為閾值,排序從大到小

舉例

    

>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr
array([ 0. ,  0.5,  0.5,  1. ])
>>> tpr
array([ 0.5,  0.5,  1. ,  1. ])
>>> thresholds
array([ 0.8 ,  0.4 ,  0.35,  0.1 ])

解釋一下,樣本標簽為y,共有1和2兩個值,預測值為scores,里面是預測為正樣本的概率,正樣本是什么呢,在函數中通過pos_label指定為2,然后便將score排序,

由大到小,也就有了后面的thresholds,按照這個順序,依次將前面的樣本預測為正樣本,后面為負樣本,這里看一下樣本標簽和預測值的一一對應

[1,1,2,2]->[0.1,0.4,0.35,0.8],共有兩個正樣本,兩個負樣本

以0.8為閾值,第一個假設為正樣本,后面三個假設為負樣本,0.8對應的確實為正樣本,則真正例率為1/2,假陽性率為0,因為沒有負樣本被誤判為正樣本

然后以0.4為閾值,前兩個假設為正樣本,后兩個假設為負樣本,0.4對應的為負樣本,則真正例數沒有增加,于是仍為0.5,而假陽性增加一例,此時假陽性率為1/2

后面的依此類推,這就是這個api的基本使用說明。

補充下:tpr=tp/所有正樣本,fpr=fp/所有負樣本

?

轉載于:https://www.cnblogs.com/wzyuan/p/9440017.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/194944.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息