簡體   English   中英

Julia中的ConfusionMatrix表

[英]ConfusionMatrix table in Julia

我想在 Julia 中制作一個分類預測的混淆矩陣表,以了解 FP、TP 等。EvalMetrics package 的ConfusionMatrix EvalMetrics不是我想要的 output。 這是一些可重現的代碼:

julia> using EvalMetrics
julia> targets = [1,0,1,0,1,0,1]
julia> predicts = [0,0,1,1,0,1,1]

julia> ConfusionMatrix(targets, predicts)
ConfusionMatrix{Int64}(4, 3, 2, 1, 2, 2)

output 說了 4 個實際的積極因素和 3 個實際的消極因素,就像文檔中提到的那樣。 我不喜歡這個 output,因為我總是要查找值的含義,所以我更喜歡這樣的表:

 predxact│ 0      1     
    ─────┼──────────────
       0 │     1      2
       1 │     2      2

所以我想知道是否可以像上面那樣在Julia中制作一個混淆矩陣表?

將代碼保留在 OP 中,我們可以從混淆矩陣 object 中提取矩陣條目:

using NamedArrays
using EvalMetrics

targets = [1,0,1,0,1,0,1]
predicts = [0,0,1,1,0,1,1]

cm = ConfusionMatrix(targets, predicts)

n = NamedArray(getproperty.(Ref(cm), [:tn :fn ; :fp :tp]), 
               (["f", "t"], ["f", "t"]), 
               ("pred", "true"))

給出一個命名數組,顯示如下:

2×2 Named Matrix{Int64}
pred ╲ true │ f  t
────────────┼─────
f           │ 1  2
t           │ 2  2

這是一個替代方案(為美觀打印而設計,您可以避免使用 DataFrames.jl,它仍然可以工作):

julia> using DataFrames

julia> using FreqTables

julia> freqtable(DataFrame(targets = [1,0,1,0,1,0,1], predicts = [0,0,1,1,0,1,1]), :targets, :predicts)
2×2 Named Matrix{Int64}
targets ╲ predicts │ 0  1
───────────────────┼─────
0                  │ 1  2
1                  │ 2  2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM