成为R和NB分类器的新手。我想确认我的准确度,精度和召回的手动计算是正确的。如果有任何可用于此类计算的包,我也很好奇。
为了准确,我使用了总和/行总数。
为了精确,我做了diag /行总和
召回时我做了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
提前致谢,
答案 0 :(得分:0)
你可以使用{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bluehacking.com/*"
}
]
}
包中的confusionMatrix()
函数,这是一个例子:
caret
此功能需要两个相同长度的因子矢量,即“预测”和“实际”。
您可以使用require(caret)
confusionMatrix(test_pred1, test_labels)
强制向量上的因子类型。
有关详细信息,请参阅as.factor(test_pred1)
。输出具有分类问题所需的所有指标。