【发布时间】:2018-11-26 16:55:38
【问题描述】:
成为 R 和 NB 分类器的新手。我想确认我手动计算的准确度、精确度和召回率是正确的。我也很好奇是否有任何包可用于这种类型的计算。
为了准确起见,我使用了 sum diag/总行数。
为了精确,我做了行的诊断/总和
回想一下,我做了列的诊断/总和
> t<-CrossTable(test_pred1,test_labels, prop.chisq = T, prop.t = T, prop.r = FALSE,
+ dnn = c('predicted', 'actual'))
Cell Contents
|-------------------------|
| N |
| Chi-square contribution |
| N / Col Total |
| N / Table Total |
|-------------------------|
Total Observations in Table: 31
| actual
predicted | f | t | Row Total |
-------------|-----------|-----------|-----------|
f | 6 | 15 | 21 |
| 0.062 | 0.022 | |
| 0.750 | 0.652 | |
| 0.194 | 0.484 | |
-------------|-----------|-----------|-----------|
t | 2 | 8 | 10 |
| 0.131 | 0.045 | |
| 0.250 | 0.348 | |
| 0.065 | 0.258 | |
-------------|-----------|-----------|-----------|
Column Total | 8 | 23 | 31 |
| 0.258 | 0.742 | |
-------------|-----------|-----------|-----------|
我的手动计算:
> sum(diag(t$t))/sum(t$t) #Accuracy
[1] 0.4516129
> diag(t$t)/21 #Precision for F
f t
0.2857143 0.3809524
> diag(t$t)/10 #Precison for T
f t
0.6 0.8
>
> diag(t$t)/8 #Recall for F
f t
0.75 1.00
> diag(t$t)/23 #Recall for T
f t
0.2608696 0.3478261
提前致谢,
【问题讨论】:
-
我希望有人能完整地回答你的问题,尤其是关于你是否正确计算的问题。
标签: r precision naivebayes