[英]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.