小編給大家分享一下Python畫P-R曲線的方法,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有天峻免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Python如何畫P-R曲線
Python生成P-R圖需要安裝第三方庫matplotlib、numpy及sklearn。
推薦學(xué)習(xí)《Python教程》。
P-R曲線的生成方法:
根據(jù)學(xué)習(xí)器的預(yù)測結(jié)果對樣本進行排序,排在前面的是學(xué)習(xí)器認為最可能是正例的樣本,排在最后的是最不可能是正例的樣本,按此順序逐個將樣本作為正例預(yù)測,則每次可以計算出當(dāng)前的查全率、查準(zhǔn)率,以查全率為橫軸、查準(zhǔn)率為縱軸做圖,得到的查準(zhǔn)率-查全率曲線即為P-R曲線。
也就是說對每個樣本預(yù)測其為正例的概率,然后將所有樣本按預(yù)測的概率進行排序,然后依次將排序后的樣本做為正例進行預(yù)測,從而得到每次預(yù)測的查全率與查準(zhǔn)率。這個依次將樣本做為正例的過程實際上就是逐步降低樣本為正例的概率的域值,通過降低域值,更多的樣本會被預(yù)測為正例,從而會提高查全率,相對的查準(zhǔn)率可能降低,而隨著后面負樣本的增加,查全率提高緩慢甚至沒有提升,精度降低會更快。
sklearn的計算過程與定義相反是按概率從小到大遞增的順序來計算查準(zhǔn)率與查全率的,并且分別為查準(zhǔn)率和查全率添加了1和0。
#coding:utf-8
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve
from sklearn.utils.fixes import signature
plt.figure("P-R Curve")
plt.title('Precision/Recall Curve')
plt.xlabel('Recall')
plt.ylabel('Precision')
#y_true為樣本實際的類別,y_scores為樣本為正例的概率
y_true = np.array([1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0])
y_scores = np.array([0.9, 0.75, 0.86, 0.47, 0.55, 0.56, 0.74, 0.62, 0.5, 0.86, 0.8, 0.47, 0.44, 0.67, 0.43, 0.4, 0.52, 0.4, 0.35, 0.1])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
#print(precision)
#print(recall)
#print(thresholds)
plt.plot(recall,precision)
plt.show()
以上是Python畫P-R曲線的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:Python畫P-R曲線的方法
鏈接URL:http://chinadenli.net/article20/jhgeco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、營銷型網(wǎng)站建設(shè)、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)