資訊內(nèi)容
Python如何畫P-R曲線
CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
python如何畫P-R曲線CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
Python生成P-R圖需要安裝第三方庫matplotlib、numpy及sklearn。CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
推薦學(xué)習(xí)《python教程》。CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
P-R曲線的生成方法:CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
根據(jù)學(xué)習(xí)器的預(yù)測結(jié)果對樣本進(jìn)行排序,排在前面的是學(xué)習(xí)器認(rèn)為**可能是正例的樣本,排在**后的是**不可能是正例的樣本,按此順序逐個(gè)將樣本作為正例預(yù)測,則每次可以計(jì)算出當(dāng)前的查全率、查準(zhǔn)率,以查全率為橫軸、查準(zhǔn)率為縱軸做圖,得到的查準(zhǔn)率-查全率曲線即為P-R曲線。CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
也就是說對每個(gè)樣本預(yù)測其為正例的概率,然后將所有樣本按預(yù)測的概率進(jìn)行排序,然后依次將排序后的樣本做為正例進(jìn)行預(yù)測,從而得到每次預(yù)測的查全率與查準(zhǔn)率。這個(gè)依次將樣本做為正例的過程實(shí)際上就是逐步降低樣本為正例的概率的域值,通過降低域值,更多的樣本會(huì)被預(yù)測為正例,從而會(huì)提高查全率,相對的查準(zhǔn)率可能降低,而隨著后面負(fù)樣本的增加,查全率提高緩慢甚至沒有提升,精度降低會(huì)更快。CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
sklearn的計(jì)算過程與定義相反是按概率從小到大遞增的順序來計(jì)算查準(zhǔn)率與查全率的,并且分別為查準(zhǔn)率和查全率添加了1和0。CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
#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為樣本實(shí)際的類別,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()
CUA少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺
- 上一篇
Python如何用歐幾里得求逆元
簡介Python用歐幾里得求逆元的方法:建立一個(gè)帶參數(shù)返回值的函數(shù),編寫求逆元的一次算法,采用遞歸的方式循環(huán)調(diào)用函數(shù),遞歸直至余數(shù)等于零。調(diào)用該函數(shù),將需要求的數(shù)值帶入進(jìn)去,執(zhí)行該函數(shù)就可以了示例代碼如下:def ext_gcd(a, b): #擴(kuò)展歐幾里得算法
- 下一篇
python如何計(jì)算夏普比率?
簡介1、夏普比率的計(jì)算代碼:import numpy as npimport pandas as pdnp.random.seed(0)# Simulate cumulative returns of&n
