日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現二分類和多分類的ROC曲線教程

瀏覽:180日期:2022-07-21 10:50:41

基本概念

precision:預測為對的當中,原本為對的比例(越大越好,1為理想狀態)

recall:原本為對的當中,預測為對的比例(越大越好,1為理想狀態)

F-measure:F度量是對準確率和召回率做一個權衡(越大越好,1為理想狀態,此時precision為1,recall為1)

accuracy:預測對的(包括原本是對預測為對,原本是錯的預測為錯兩種情形)占整個的比例(越大越好,1為理想狀態)

fp rate:原本是錯的預測為對的比例(越小越好,0為理想狀態)

tp rate:原本是對的預測為對的比例(越大越好,1為理想狀態)

ROC曲線通常在Y軸上具有真陽性率,在X軸上具有假陽性率。這意味著圖的左上角是“理想”點 - 誤報率為零,真正的正率為1。這不太現實,但它確實意味著曲線下面積(AUC)通常更好。

二分類問題:ROC曲線

from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport timestart_time = time.time()import matplotlib.pyplot as pltfrom sklearn.metrics import roc_curvefrom sklearn.metrics import aucimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import recall_score,accuracy_scorefrom sklearn.metrics import precision_score,f1_scorefrom keras.optimizers import Adam,SGD,sgdfrom keras.models import load_modelprint(’讀取數據’)X_train = np.load(’x_train-rotate_2.npy’)Y_train = np.load(’y_train-rotate_2.npy’)print(X_train.shape)print(Y_train.shape)print(’獲取測試數據和驗證數據’)X_train, X_valid, Y_train, Y_valid = train_test_split(X_train, Y_train, test_size=0.1, random_state=666)Y_train = np.asarray(Y_train,np.uint8)Y_valid = np.asarray(Y_valid,np.uint8)X_valid = np.array(X_valid, np.float32) / 255.print(’獲取模型’)model = load_model(’./model/InceptionV3_model.h5’)opt = Adam(lr=1e-4)model.compile(optimizer=opt, loss=’binary_crossentropy’)print('Predicting')Y_pred = model.predict(X_valid)Y_pred = [np.argmax(y) for y in Y_pred] # 取出y中元素最大值所對應的索引Y_valid = [np.argmax(y) for y in Y_valid]# micro:多分類# weighted:不均衡數量的類來說,計算二分類metrics的平均# macro:計算二分類metrics的均值,為每個類給出相同權重的分值。precision = precision_score(Y_valid, Y_pred, average=’weighted’)recall = recall_score(Y_valid, Y_pred, average=’weighted’)f1_score = f1_score(Y_valid, Y_pred, average=’weighted’)accuracy_score = accuracy_score(Y_valid, Y_pred)print('Precision_score:',precision)print('Recall_score:',recall)print('F1_score:',f1_score)print('Accuracy_score:',accuracy_score)# 二分類 ROC曲線# roc_curve:真正率(True Positive Rate , TPR)或靈敏度(sensitivity)# 橫坐標:假正率(False Positive Rate , FPR)fpr, tpr, thresholds_keras = roc_curve(Y_valid, Y_pred)auc = auc(fpr, tpr)print('AUC : ', auc)plt.figure()plt.plot([0, 1], [0, 1], ’k--’)plt.plot(fpr, tpr, label=’Keras (area = {:.3f})’.format(auc))plt.xlabel(’False positive rate’)plt.ylabel(’True positive rate’)plt.title(’ROC curve’)plt.legend(loc=’best’)plt.savefig('../images/ROC/ROC_2分類.png')plt.show()print('--- %s seconds ---' % (time.time() - start_time))

ROC圖如下所示:

python實現二分類和多分類的ROC曲線教程

多分類問題:ROC曲線

ROC曲線通常用于二分類以研究分類器的輸出。為了將ROC曲線和ROC區域擴展到多類或多標簽分類,有必要對輸出進行二值化。⑴可以每個標簽繪制一條ROC曲線。⑵也可以通過將標簽指示符矩陣的每個元素視為二元預測(微平均)來繪制ROC曲線。⑶另一種用于多類別分類的評估方法是宏觀平均,它對每個標簽的分類給予相同的權重。

from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport timestart_time = time.time()import matplotlib.pyplot as pltfrom sklearn.metrics import roc_curvefrom sklearn.metrics import aucimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import recall_score,accuracy_scorefrom sklearn.metrics import precision_score,f1_scorefrom keras.optimizers import Adam,SGD,sgdfrom keras.models import load_modelfrom itertools import cyclefrom scipy import interpfrom sklearn.preprocessing import label_binarizenb_classes = 5print(’讀取數據’)X_train = np.load(’x_train-resized_5.npy’)Y_train = np.load(’y_train-resized_5.npy’)print(X_train.shape)print(Y_train.shape)print(’獲取測試數據和驗證數據’)X_train, X_valid, Y_train, Y_valid = train_test_split(X_train, Y_train, test_size=0.1, random_state=666)Y_train = np.asarray(Y_train,np.uint8)Y_valid = np.asarray(Y_valid,np.uint8)X_valid = np.asarray(X_valid, np.float32) / 255.print(’獲取模型’)model = load_model(’./model/SE-InceptionV3_model.h5’)opt = Adam(lr=1e-4)model.compile(optimizer=opt, loss=’categorical_crossentropy’)print('Predicting')Y_pred = model.predict(X_valid)Y_pred = [np.argmax(y) for y in Y_pred] # 取出y中元素最大值所對應的索引Y_valid = [np.argmax(y) for y in Y_valid]# Binarize the outputY_valid = label_binarize(Y_valid, classes=[i for i in range(nb_classes)])Y_pred = label_binarize(Y_pred, classes=[i for i in range(nb_classes)])# micro:多分類# weighted:不均衡數量的類來說,計算二分類metrics的平均# macro:計算二分類metrics的均值,為每個類給出相同權重的分值。precision = precision_score(Y_valid, Y_pred, average=’micro’)recall = recall_score(Y_valid, Y_pred, average=’micro’)f1_score = f1_score(Y_valid, Y_pred, average=’micro’)accuracy_score = accuracy_score(Y_valid, Y_pred)print('Precision_score:',precision)print('Recall_score:',recall)print('F1_score:',f1_score)print('Accuracy_score:',accuracy_score)# roc_curve:真正率(True Positive Rate , TPR)或靈敏度(sensitivity)# 橫坐標:假正率(False Positive Rate , FPR)# Compute ROC curve and ROC area for each classfpr = dict()tpr = dict()roc_auc = dict()for i in range(nb_classes): fpr[i], tpr[i], _ = roc_curve(Y_valid[:, i], Y_pred[:, i]) roc_auc[i] = auc(fpr[i], tpr[i])# Compute micro-average ROC curve and ROC areafpr['micro'], tpr['micro'], _ = roc_curve(Y_valid.ravel(), Y_pred.ravel())roc_auc['micro'] = auc(fpr['micro'], tpr['micro'])# Compute macro-average ROC curve and ROC area# First aggregate all false positive ratesall_fpr = np.unique(np.concatenate([fpr[i] for i in range(nb_classes)]))# Then interpolate all ROC curves at this pointsmean_tpr = np.zeros_like(all_fpr)for i in range(nb_classes): mean_tpr += interp(all_fpr, fpr[i], tpr[i])# Finally average it and compute AUCmean_tpr /= nb_classesfpr['macro'] = all_fprtpr['macro'] = mean_tprroc_auc['macro'] = auc(fpr['macro'], tpr['macro'])# Plot all ROC curveslw = 2plt.figure()plt.plot(fpr['micro'], tpr['micro'], label=’micro-average ROC curve (area = {0:0.2f})’ ’’.format(roc_auc['micro']), color=’deeppink’, linestyle=’:’, linewidth=4)plt.plot(fpr['macro'], tpr['macro'], label=’macro-average ROC curve (area = {0:0.2f})’ ’’.format(roc_auc['macro']), color=’navy’, linestyle=’:’, linewidth=4)colors = cycle([’aqua’, ’darkorange’, ’cornflowerblue’])for i, color in zip(range(nb_classes), colors): plt.plot(fpr[i], tpr[i], color=color, lw=lw, label=’ROC curve of class {0} (area = {1:0.2f})’ ’’.format(i, roc_auc[i]))plt.plot([0, 1], [0, 1], ’k--’, lw=lw)plt.xlim([0.0, 1.0])plt.ylim([0.0, 1.05])plt.xlabel(’False Positive Rate’)plt.ylabel(’True Positive Rate’)plt.title(’Some extension of Receiver operating characteristic to multi-class’)plt.legend(loc='lower right')plt.savefig('../images/ROC/ROC_5分類.png')plt.show()print('--- %s seconds ---' % (time.time() - start_time))

ROC圖如下所示:

python實現二分類和多分類的ROC曲線教程

以上這篇python實現二分類和多分類的ROC曲線教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
奶水喷射视频一区| 午夜欧美精品久久久久久久| 亚洲综合专区| 一级欧美视频| 亚洲3区在线| 日韩国产91| 国产精品亚洲成在人线| 久久精品亚洲| 视频在线不卡免费观看| 毛片在线网站| 99成人在线视频| 国产精品美女| 欧美资源在线| 亚洲精品美女91| 国产精品亚洲产品| 国产精品久久久久久久久久10秀 | 99久久视频| 日韩不卡视频在线观看| 美女网站一区| 中文字幕日韩高清在线| 91在线成人| 国产中文欧美日韩在线| 亚洲大片在线| 亚洲欧美久久精品| 国产乱码精品一区二区三区亚洲人 | 亚洲精品伦理| 国产乱子精品一区二区在线观看 | 日韩欧美在线精品| 麻豆国产欧美一区二区三区 | av最新在线| 亚洲不卡系列| 99日韩精品| 91成人福利| 麻豆一区二区三区| 在线日韩一区| 亚洲免费专区| 久久久久久久欧美精品| 国产一区 二区| 在线人成日本视频| 午夜免费一区| 欧美久久久网站| 高潮一区二区| 亚洲欧洲美洲国产香蕉| 精品一区二区三区在线观看视频| 中国字幕a在线看韩国电影| 成人av二区| 欧美偷窥清纯综合图区| 日韩电影免费网址| 亚洲+小说+欧美+激情+另类| 久久中文字幕一区二区三区| 在线国产一区| 国产极品一区| 先锋影音国产一区| 美女视频黄久久| 美女精品在线观看| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 欧美日韩一二三四| 欧美日韩伊人| 午夜影院欧美| 麻豆91小视频| 免费的成人av| 超级白嫩亚洲国产第一| 一二三区精品| 深夜视频一区二区| 91精品在线免费视频| 久久在线免费| 国产精品久久久久久久久久久久久久久 | 成人免费网站www网站高清| 亚洲另类黄色| 亚洲伦乱视频| 国产乱子精品一区二区在线观看| 久久精品亚洲欧美日韩精品中文字幕| 亚洲+小说+欧美+激情+另类| 久久久久国产精品一区二区| 日韩黄色在线观看| 亚洲天堂黄色| 成人国产精品| 7777精品| 国产精品普通话对白| 国产精品久久久久久久久妇女| 日韩精品一页| 奶水喷射视频一区| 欧美成a人免费观看久久| 日韩高清在线观看一区二区| 激情婷婷亚洲| 欧美香蕉视频| 国产精品白浆| 热久久久久久| 中文字幕乱码亚洲无线精品一区| 精品免费av在线| 国产一区二区三区不卡视频网站| 日本伊人久久| 99国产精品99久久久久久粉嫩| 中文字幕色婷婷在线视频| 日本欧美在线| 蜜桃久久久久久| 怡红院精品视频在线观看极品| www在线观看黄色| 精品免费在线| 麻豆久久一区| 国产免费久久| 日本成人在线视频网站| 模特精品在线| japanese国产精品| 色老板在线视频一区二区| 久久精品三级| 国产精品99久久免费观看| 97久久精品| 日韩欧美精品一区二区综合视频| 国产日韩综合| 亚洲激情不卡| 不卡中文一二三区| 国内亚洲精品| 久久久精品久久久久久96| 日韩成人综合| 日韩欧美精品| 精品亚洲成人| 成人黄色av| 正在播放日韩精品| 久久精品色播| 综合激情视频| 亚洲资源网站| 欧美日本久久| 国产精品久久久久久久久免费高清 | 欧美日韩中文一区二区| 麻豆精品视频在线| 国产高清亚洲| 国产欧美欧美| 国产免费播放一区二区| 国产探花一区| 欧美激情亚洲| 麻豆视频在线看| 国产99久久久国产精品成人免费| 不卡av一区二区| 视频一区二区欧美| 亚洲另类黄色| 欧美一区激情| 免费一区二区三区在线视频| 成人高清一区| 欧美日韩一二| 美美哒免费高清在线观看视频一区二区| 综合亚洲色图| 欧美日韩1区2区3区| 麻豆免费精品视频| 精品国模一区二区三区| 亚洲欧洲一区二区天堂久久| 蜜桃av一区二区在线观看| 清纯唯美亚洲综合一区| 精品亚洲成人| 久久精品动漫| 亚洲一区不卡| 日本成人在线一区| 美女久久久精品| 日本美女一区| 久久高清一区| 国产精品伊人| 天堂网av成人| 国产免费成人| 欧美日韩国产一区二区在线观看| 国产成人精品一区二区三区免费| re久久精品视频| 欧美一区免费| 国产不卡精品| 日本欧美在线看| 亚洲在线久久| 一本色道久久精品| 久久av中文| 亚洲成人免费| 亚洲免费专区| 最新亚洲激情| 欧美日韩国产在线一区| 久久99蜜桃| 亚洲欧美日韩国产| 日韩在线网址| 日本午夜免费一区二区| 午夜久久黄色| 欧美日韩水蜜桃| 久久蜜桃精品| 三级欧美韩日大片在线看| 97精品中文字幕| 免费在线成人| 国产精品久久久久毛片大屁完整版| 91精品精品| 免费黄色成人| 国产a亚洲精品| 国产九九精品| 日本综合精品一区| 免费人成在线不卡| 欧美日韩国产高清电影| 国产精品成久久久久| 亚洲色图综合| 性欧美xxxx免费岛国不卡电影| 久久久久亚洲精品中文字幕| 国产成人精品三级高清久久91 | 国产色99精品9i| 国产亚洲一区| 国产精品手机在线播放| 日韩欧美网址| 欧美精品九九| 97国产成人高清在线观看|