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

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

利用python中的matplotlib打印混淆矩陣實例

瀏覽:172日期:2022-07-21 09:43:50

前面說過混淆矩陣是我們在處理分類問題時,很重要的指標,那么如何更好的把混淆矩陣給打印出來呢,直接做表或者是前端可視化,小編曾經就嘗試過用前端(D5)做出來,然后截圖,顯得不那么好看。。

代碼:

import itertoolsimport matplotlib.pyplot as pltimport numpy as np def plot_confusion_matrix(cm, classes, normalize=False, title=’Confusion matrix’, cmap=plt.cm.Blues): ''' This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. ''' if normalize: cm = cm.astype(’float’) / cm.sum(axis=1)[:, np.newaxis] print('Normalized confusion matrix') else: print(’Confusion matrix, without normalization’) print(cm) plt.imshow(cm, interpolation=’nearest’, cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) fmt = ’.2f’ if normalize else ’d’ thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])): plt.text(j, i, format(cm[i, j], fmt), horizontalalignment='center', color='white' if cm[i, j] > thresh else 'black') plt.tight_layout() plt.ylabel(’True label’) plt.xlabel(’Predicted label’) plt.show() # plt.savefig(’confusion_matrix’,dpi=200) cnf_matrix = np.array([ [4101, 2, 5, 24, 0], [50, 3930, 6, 14, 5], [29, 3, 3973, 4, 0], [45, 7, 1, 3878, 119], [31, 1, 8, 28, 3936],]) class_names = [’Buildings’, ’Farmland’, ’Greenbelt’, ’Wasteland’, ’Water’] # plt.figure()# plot_confusion_matrix(cnf_matrix, classes=class_names,# title=’Confusion matrix, without normalization’) # Plot normalized confusion matrixplt.figure()plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=True, title=’Normalized confusion matrix’)

在放矩陣位置,放一下你的混淆矩陣就可以,當然可視化混淆矩陣這一步也可以直接在模型運行中完成。

補充知識:混淆矩陣(Confusion matrix)的原理及使用(scikit-learn 和 tensorflow)

原理

在機器學習中, 混淆矩陣是一個誤差矩陣, 常用來可視化地評估監督學習算法的性能. 混淆矩陣大小為 (n_classes, n_classes) 的方陣, 其中 n_classes 表示類的數量. 這個矩陣的每一行表示真實類中的實例, 而每一列表示預測類中的實例 (Tensorflow 和 scikit-learn 采用的實現方式). 也可以是, 每一行表示預測類中的實例, 而每一列表示真實類中的實例 (Confusion matrix From Wikipedia 中的定義). 通過混淆矩陣, 可以很容易看出系統是否會弄混兩個類, 這也是混淆矩陣名字的由來.

混淆矩陣是一種特殊類型的列聯表(contingency table)或交叉制表(cross tabulation or crosstab). 其有兩維 (真實值 'actual' 和 預測值 'predicted' ), 這兩維都具有相同的類('classes')的集合. 在列聯表中, 每個維度和類的組合是一個變量. 列聯表以表的形式, 可視化地表示多個變量的頻率分布.

使用混淆矩陣( scikit-learn 和 Tensorflow)

下面先介紹在 scikit-learn 和 tensorflow 中計算混淆矩陣的 API (Application Programming Interface) 接口函數, 然后在一個示例中, 使用這兩個 API 函數.

scikit-learn 混淆矩陣函數 sklearn.metrics.confusion_matrix API 接口

skearn.metrics.confusion_matrix( y_true, # array, Gound true (correct) target values y_pred, # array, Estimated targets as returned by a classifier labels=None, # array, List of labels to index the matrix. sample_weight=None # array-like of shape = [n_samples], Optional sample weights)

在 scikit-learn 中, 計算混淆矩陣用來評估分類的準確度.

按照定義, 混淆矩陣 C 中的元素 Ci,j 等于真實值為組 i , 而預測為組 j 的觀測數(the number of observations). 所以對于二分類任務, 預測結果中, 正確的負例數(true negatives, TN)為 C0,0; 錯誤的負例數(false negatives, FN)為 C1,0; 真實的正例數為 C1,1; 錯誤的正例數為 C0,1.

如果 labels 為 None, scikit-learn 會把在出現在 y_true 或 y_pred 中的所有值添加到標記列表 labels 中, 并排好序.

Tensorflow 混淆矩陣函數 tf.confusion_matrix API 接口

tf.confusion_matrix( labels, # 1-D Tensor of real labels for the classification task predictions, # 1-D Tensor of predictions for a givenclassification num_classes=None, # The possible number of labels the classification task can have dtype=tf.int32, # Data type of the confusion matrix name=None, # Scope name weights=None, # An optional Tensor whose shape matches predictions)

Tensorflow tf.confusion_matrix 中的 num_classes 參數的含義, 與 scikit-learn sklearn.metrics.confusion_matrix 中的 labels 參數相近, 是與標記有關的參數, 表示類的總個數, 但沒有列出具體的標記值. 在 Tensorflow 中一般是以整數作為標記, 如果標記為字符串等非整數類型, 則需先轉為整數表示. 如果 num_classes 參數為 None, 則把 labels 和 predictions 中的最大值 + 1, 作為num_classes 參數值.

tf.confusion_matrix 的 weights 參數和 sklearn.metrics.confusion_matrix 的 sample_weight 參數的含義相同, 都是對預測值進行加權, 在此基礎上, 計算混淆矩陣單元的值.

使用示例

#!/usr/bin/env python# -*- coding: utf8 -*-'''Author: klchangDescription: A simple example for tf.confusion_matrix and sklearn.metrics.confusion_matrix.Date: 2018.9.8'''from __future__ import print_functionimport tensorflow as tfimport sklearn.metrics y_true = [1, 2, 4]y_pred = [2, 2, 4] # Build graph with tf.confusion_matrix operationsess = tf.InteractiveSession()op = tf.confusion_matrix(y_true, y_pred)op2 = tf.confusion_matrix(y_true, y_pred, num_classes=6, dtype=tf.float32, weights=tf.constant([0.3, 0.4, 0.3]))# Execute the graphprint ('confusion matrix in tensorflow: ')print ('1. default: n', op.eval())print ('2. customed: n', sess.run(op2))sess.close() # Use sklearn.metrics.confusion_matrix functionprint ('nconfusion matrix in scikit-learn: ')print ('1. default: n', sklearn.metrics.confusion_matrix(y_true, y_pred))print ('2. customed: n', sklearn.metrics.confusion_matrix(y_true, y_pred, labels=range(6), sample_weight=[0.3, 0.4, 0.3]))

以上這篇利用python中的matplotlib打印混淆矩陣實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品一区二区在线播放∴| 国产欧美一区| 精品不卡一区| 麻豆久久一区| 精品五月天堂| 国产aⅴ精品一区二区三区久久| 美女尤物国产一区| 久久久久97| 福利欧美精品在线| 国产粉嫩在线观看| 欧美日韩免费看片| 99久久久久国产精品| 激情五月综合网| 羞羞答答国产精品www一本| 亚洲毛片在线免费| 亚洲精品欧美| 国产日韩高清一区二区三区在线 | 一区二区国产在线观看| 国产高清久久| 久久xxxx| 日本午夜精品视频在线观看| 久久不见久久见免费视频7| 久久97视频| 日韩国产网站| 亚洲国产专区校园欧美| 日韩精品一二区| 91福利精品在线观看| 免费在线观看一区| 亚洲伦乱视频| 久久午夜精品| 国产精品色在线网站| 丁香六月综合| 99在线|亚洲一区二区| 91精品视频一区二区| 久久香蕉网站| 久久亚洲国产| 婷婷五月色综合香五月| 久久精品国产亚洲aⅴ | 精品成av人一区二区三区| 日韩欧美一区免费| 美女被久久久| 久久精品国产精品亚洲毛片| 欧美一级精品| 日本欧美一区二区在线观看| 久久久久久一区二区| 久久国产88| 国产精品一区二区美女视频免费看| 亚洲风情在线资源| 日韩中文欧美在线| 久久伊人亚洲| 国产一级一区二区| 九九九精品视频| 性一交一乱一区二区洋洋av| 日韩高清不卡在线| 91精品一区国产高清在线gif| 亚洲va久久| 麻豆国产精品视频| 亚洲一区亚洲| 精品中文字幕一区二区三区| 免费观看不卡av| 国产另类在线| 尹人成人综合网| 精品国产美女a久久9999| 免费看欧美美女黄的网站| 精品成人18| 亚洲精品成a人ⅴ香蕉片| 亚洲天堂免费电影| 日韩视频1区| 日韩一区二区三区在线免费观看| 日本少妇精品亚洲第一区| 国户精品久久久久久久久久久不卡 | 91亚洲一区| 亚洲精品九九| 欧美日韩一二三四| 精品一区91| 亚洲三级毛片| 久久蜜桃av| 欧美国产另类| 久久不射网站| 日韩一区二区三区免费播放| 91伊人久久| 99国内精品| 香蕉视频亚洲一级| 国产精品jk白丝蜜臀av小说| 伊人精品久久| 亚洲国产专区| 日韩成人a**站| 国产精品欧美大片| 午夜久久av| 在线亚洲一区| 亚洲91精品| 国产+成+人+亚洲欧洲在线| 国产探花一区| 在线精品福利| 不卡在线一区| 女生影院久久| 精品久久美女| 免费日韩一区二区三区| 日韩欧美2区| 免播放器亚洲一区| 午夜视频精品| 亚洲二区精品| 久久国产直播| 国产v综合v| 中文字幕成在线观看| 久久精品国产亚洲一区二区三区| 国产午夜久久av| 日本一区福利在线| 亚洲欧美久久久| 亚洲大全视频| 亚洲精品一二三区区别| 国产综合婷婷| 欧美成人精品| 亚洲夜间福利| 国产综合精品一区| 免费成人av在线播放| 性欧美xxxx免费岛国不卡电影| 亚洲a一区二区三区| 国产精品探花在线观看| 国产午夜精品一区在线观看| 日韩高清不卡一区| 国产日韩免费| 国产精品任我爽爆在线播放 | 欧美国产不卡| 欧美激情综合| 精品一区二区三区在线观看视频| 国产精品美女午夜爽爽| 国产精品久久亚洲不卡| 国产精品s色| 国产中文欧美日韩在线| 日韩电影免费网址| 日韩在线欧美| av亚洲在线观看| 亚洲自啪免费| 蜜臀久久99精品久久久久宅男 | 久久久久99| 亚洲精品a级片| 天堂av在线一区| 日韩1区2区3区| 久久av网址| 激情国产在线| 亚洲欧美日韩在线观看a三区| 亚洲a级精品| 精品国产亚洲日本| 欧美国产不卡| 日产精品一区| 亚洲综合精品| 国产伦理久久久久久妇女| 国产精品扒开腿做爽爽爽软件| 国产精品久久亚洲不卡| 欧美一区自拍| 日本美女一区| 久久裸体视频| 亚洲精品1区2区| 婷婷综合福利| av中文字幕在线观看第一页| 久久男女视频| 亚洲香蕉视频| 日韩精品中文字幕一区二区| 欧美欧美黄在线二区| 美女视频黄久久| 久久婷婷一区| 亚洲精品一级| 国产在线一区不卡| 精品一区欧美| 日韩一区免费| 日韩成人免费| 亚洲欧美高清| 美日韩一区二区三区| 欧美va天堂在线| 午夜精品影视国产一区在线麻豆| 麻豆精品久久久| 97成人超碰| 国产精品久久久久久久久久齐齐| 日本欧美国产| 先锋亚洲精品| 久久久国产精品入口麻豆 | 亚洲日产国产精品| 韩国一区二区三区视频| 一区免费在线| 国产乱码精品| 激情91久久| 久久久久伊人| 石原莉奈一区二区三区在线观看| 国产精品欧美在线观看| 亚洲天堂成人| 国产麻豆一区二区三区| 成人久久一区| 啪啪亚洲精品| 欧美精品羞羞答答| 欧美在线观看天堂一区二区三区| 蜜桃成人精品| 国产另类在线| 国产亚洲亚洲| 成人午夜网址| 日韩精品视频在线看| 99久久亚洲精品蜜臀| 国产精品草草| 蜜臀va亚洲va欧美va天堂| 亚洲www啪成人一区二区|