confusion_matrix(混淆矩陣)

作者:十歲的小男孩? ?

凡心所向,素履可往

目錄

  監督學習—混淆矩陣

    是什么?有什么用?怎么用?

  非監督學習—匹配矩陣

混淆矩陣

矩陣每一列代表預測值,每一行代表的是實際的類別。這個名字來源于它可以非常容易的表明多個類別是否有混淆(也就是一個class被預測成另一個class)。

假設有一個用來對貓(cats)、狗(dogs)、兔子(rabbits)進行分類的系統,混淆矩陣就是為了進一步分析性能而對該算法測試結果做出的總結。假設總共有?27?只動物:8只貓,?6條狗,?13只兔子。結果的混淆矩陣如上圖:

在這個混淆矩陣中,實際有8只貓,但是系統將其中3只預測成了狗;對于6條狗,其中有1條被預測成了兔子,2條被預測成了貓。從混淆矩陣中我們可以看出系統對于區分貓和狗存在一些問題,但是區分兔子和其他動物的效果還是不錯的。所有正確的預測結果都在對角線上,所以從混淆矩陣中可以很方便直觀的看出哪里有錯誤,因為他們呈現在對角線外面。

tf.confusion_matrix

定義:

tf.confusion_matrix(labels,predictions,num_classes=None,dtype=tf.int32,name=None,weights=None
)

ARGS:

  • labelsTensor分類任務的1-D?真實標簽。
  • predictionsTensor給定分類的1-D?預測。
  • num_classes:分類任務可能具有的標簽數量。如果未提供此值,則將使用預測和標簽數組計算該值。
  • dtype:混淆矩陣的數據類型。
  • name:范圍名稱。
  • weights:可選Tensor的形狀匹配predictions

返回:

  甲Tensor類型的dtype具有形狀[n, n]表示所述混淆矩陣,其中n是在分類任務可能的標簽的數量。

例子:

  tf.confusion_matrix([1, 2, 4], [2, 2, 4]) ==>[[0 0 0 0 0][0 0 1 0 0][0 0 1 0 0][0 0 0 0 0][0 0 0 0 1]]

請注意,假設可能的標簽是[0, 1, 2, 3, 4],導致5x5混淆矩陣。

我的圖片分類項目中遇到的實例:

1.定義兩個矩陣,用于放真實的標簽和預測的標簽,大小根據測試的次數計算,全為0.[1,test_num]

Y_true=np.zeros(len(test_num))#真實的標簽
Y_predict=np.zeros(len(test_num))#預測的標簽

2.將每步訓練的標簽放在矩陣中,我的項目中預測的的為標簽,類似[0,0,0,1,0,0,0],取出最大的,即為4,本步在循環中,記錄每步訓練。

Y_true[step_test]=np.argmax(testing_ys)
Y_predict[step_test]=np.argmax(predict)

3.調用TensorFlow的混淆矩陣函數,這一步需要將矩陣轉換為tensor,在TensorFlow中運行的單元為tensor

confuse_martix=sess.run(tf.convert_to_tensor(tf.confusion_matrix(Y_true,Y_predict)))
print(confuse_martix)

4.結果

匹配矩陣

在預測分析中,混淆表格(有時候也稱為混淆矩陣),是由false positivesfalsenegativestrue positivestrue negatives組成的兩行兩列的表格。它允許我們做出更多的分析,而不僅僅是局限在正確率,對于上面的矩陣,可以表示為下面的表格


?

查準率 = 精度 = precision?

查全率 = 召回率 = recall

?

本文僅用于學習研究,非商業用途,歡迎大家指出錯誤一起學習

本文參考了以下地址的講解,萬分感謝,如有侵權,請聯系我會盡快刪除,929994365@qq.com:

TensorFlow API網站:https://tensorflow.google.cn/api_docs/python/tf/confusion_matrix,TensorFlow的api在這個網站都可以查到

https://blog.csdn.net/qq_28448117/article/details/78219549

轉載于:https://www.cnblogs.com/missidiot/p/9450662.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250969.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 21 Django 實用小案例1

實用案例 驗證碼與驗證 KindEditor 組合搜索的實現 單例模式 beautifulsoup4 驗證碼與驗證 需要安裝Pillow模塊 pip stall pillow1、首先需要借助pillow模塊用來畫一個驗證碼圖形,這里單獨封裝了一個py文件,調用一個方法就好了 1 #!/user/bin/env python…

jquery --- 事件處理函數的event對象的幾個屬性(方法)說明

1.event.type: 事件的類型 $(a).click(function(event) {alert(event.type);return false; // 阻止鏈接跳轉 }); // click2.event.preventDefault(): 阻止默認事件 $("#sub").bind("click", function(event) {var username $("#username").va…

數據恢復軟件

鏈接:https://pan.baidu.com/s/1n6x5vhW-3SY8MAvvnqVtog 密碼:thh0轉載于:https://www.cnblogs.com/huanu/p/9452039.html

VMware

1.VMware軟件安裝: https://jingyan.baidu.com/article/9f7e7ec09da5906f281554d6.html 2,鏡像文件下載地址:http://www.cnbeta.com/articles/tech/566773.htm 有圖形界面。 或是在官網:https://wiki.centos.org/Download 2.cento…

jquery --- 全選、全不選、反選、提交

注意:jquery 提供的$(’#id’).attr(‘checked’,true)方法,在某些情況下會失效… 因此,使用js原生的 .checked true方法 控制 // html <form>你愛好的運動是? <br/><input type"checkbox" name"items" value"足球" /> 足球…

【重要】ES6-23 JavaScript模塊化

前端js模塊化的演變發展 模塊化解決的問題 傳統模塊化、插件化 CommonJS AMD/CMD ES6模塊化 ES6以前 沒有js引擎 一開始js寫在html的script標簽里js內容增多&#xff0c;抽取出index.js文件&#xff0c;外部引入js再增加&#xff0c;index.html對應index.js index2.html對應ind…

Quartz.Net定時任務EF+MVC版的web服務

之前項目采用JAVA 的 Quartz 進行定時服調度務處理程序&#xff0c;目前在.NET下面使用依然可以完成相同的工作任務&#xff0c;其實什么語言不重要&#xff0c;關鍵是我們要學會利用語言實現價值。它是一個簡單的執行任務計劃的組件&#xff0c;基本包括這三部分&#xff1a;J…

jquery --- 多選下拉框的移動(穿梭框)

效果如下: 幾個注意地方: 1.多選下拉框需要添加 multiple 2.獲取選中的元素KaTeX parse error: Expected EOF, got # at position 3: (#?id option:selec…(#id option:not(:selected)) 下面是代碼的各個部分實現, 方便引用,最后是總體代碼,方便理解 添加選中到右邊: // …

ES6-24 生成器與迭代器的應用

手寫生成器 先done再false&#xff0c;不然index就提前了一步1 var arr [1,2] function generator(arr){var i 0;return{next(){var done i > arr.length ? true : false,value done ? undefined : arr[i];return {value : value,done : done} }} } var gen gener…

1013 B. And

鏈接 [http://codeforces.com/contest/1013/problem/B] 題意 給你一個n和x,再給n個數&#xff0c;有一種操作用x&a[i]取代&#xff0c;a[i],問使其中至少兩個數相同&#xff0c;要多少次操作&#xff0c;如果不能輸出-1. 思路 x&a[i],無論&多少次&#xff0c;a[i]都…

jquery --- 收縮兄弟元素

點擊高亮的收縮兄弟元素. 思路: 1.點擊的其實是tr.(類為parent) 2.toggleClass可以切換樣式 3.slblings(’.class’).toggle 可以根據其類來進行隱藏顯示 代碼如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"><style>.pa…

Webpack基礎

path.resolve // 只要以/開頭&#xff0c;就變為絕對路徑 // ./和直接寫效果相同 var path require("path") //引入node的path模塊path.resolve(/foo/bar, ./baz) // returns /foo/bar/baz path.resolve(/foo/bar, baz) // returns /foo/bar/baz path.res…

(php)實現萬年歷

1 <?php2 //修改頁面編碼3 header("content-type:text/html;charsetutf-8");4 5 //獲取當前年6 $year$_GET[y]?$_GET[y]:date(Y);7 8 //獲取當年月9 $month$_GET[m]?$_GET[m]:date(m); 10 11 //獲取當前月多少天 12 $daysdate(t,strtotime("{$year}-{$m…

LeetCode:二叉樹相關應用

LeetCode&#xff1a;二叉樹相關應用 基礎知識 617.歸并兩個二叉樹 題目 Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new …

ubuntu16.04 python3.5 opencv的安裝與卸載(轉載)

轉載https://blog.csdn.net/qq_37541097/article/details/79045595 Ubuntu16.04 自帶python2.7和python3.5兩個版本&#xff0c;默認為python2.7&#xff0c;我使用的是3.5&#xff0c;所以首先將默認的python版本改為3.5. 在終端輸入下列指令&#xff1a; sudo update-alterna…

Webpack進階(一) tree shaking與不同mode

Tree Shaking 生產環境去除沒有使用到的內容&#xff08;開發環境沒有刪除&#xff0c;會影響調試&#xff09;只支持ESM規范&#xff08;靜態引入&#xff0c;編譯時引入&#xff09;&#xff0c;不支持CJS&#xff08;動態引入&#xff0c;執行時引入&#xff09; // webpa…

jquery --- 網頁選項卡

點擊,不同的tab_menu,顯示不同的tab_box 注意點: 1.獲取ul下,當前li的編號. $(‘div ul li’).index(this) 2.顯示ul下編號為$index的li -> $(‘ul li’).eq($index) <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <style&g…

Webpack進階(二)代碼分割 Code Splitting

源代碼index.js里包含2部分① 業務邏輯代碼 1mb② 引入&#xff08;如lodash包&#xff09;的代碼 1mb若更新了業務邏輯代碼&#xff0c;但在瀏覽器運行時每次都下載2mb的index.js顯然不合理&#xff0c;第三方包是不會變的 手動拆分 webpack.base.js entry: {main: path.re…

5177. 【NOIP2017提高組模擬6.28】TRAVEL (Standard IO)

Description Input Output Solution 有大佬說&#xff1a;可以用LCT做。&#xff08;會嗎&#xff1f;不會&#xff09; 對于蒟蒻的我&#xff0c;只好用水法&#xff08;3s&#xff0c;不虛&#xff09;。 首先選出的泡泡怪一定是連續的一段 L&#xff0c; R 然后 L 一定屬于蟲…