私はこのデータセットを見ています:https://archive.ics.uci.edu/ml/datasets/Credit+Approval。私はctree建て:混乱行列をキャレットの混乱に送る方法Matrix?
myFormula<-class~. # class is a factor of "+" or "-"
ct <- ctree(myFormula, data = train)
をそして今、私は混乱行列に関連付けられているすべての統計情報を取得するためにキャレットのconfusionMatrixメソッドにそのデータを入れたいのですが:
testPred <- predict(ct, newdata = test)
#### This is where I'm doing something wrong ####
confusionMatrix(table(testPred, test$class),positive="+")
#### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ####
$positive
[1] "+"
$table
td
testPred - +
- 99 6
+ 20 88
$overall
Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull AccuracyPValue McnemarPValue
8.779343e-01 7.562715e-01 8.262795e-01 9.186911e-01 5.586854e-01 6.426168e-24 1.078745e-02
$byClass
Sensitivity Specificity Pos Pred Value Neg Pred Value Precision Recall F1
0.9361702 0.8319328 0.8148148 0.9428571 0.8148148 0.9361702 0.8712871
Prevalence Detection Rate Detection Prevalence Balanced Accuracy
0.4413146 0.4131455 0.5070423 0.8840515
$mode
[1] "sens_spec"
$dots
list()
attr(,"class")
[1] "confusionMatrix"
のでSensetivityは次のとおりです。
(キャレットのconfusionMatrixドキュメントから)あなたは私の混同行列取る場合:
$table
td
testPred - +
- 99 6
+ 20 88
これは、合計ではないことがわかります。Sensetivity = 99/(99+20) = 99/119 = 0.831928
。私の混乱Matrixの結果では、その値はSpecificityの値です。しかし、SpecificityはSensitivityの値であるSpecificity = D/(B+D) = 88/(88+6) = 88/94 = 0.9361702
です。
私はこれを試しましたが、confusionMatrix(td,testPred, positive="+")
の結果はさらに怪しいです。私は間違って何をしていますか?
UPDATE:私も私の混同行列がキャレットはそれが思ったものよりも異なっていることに気づい:
Mine: Caret:
td testPred
testPred - + td - +
- 99 6 - 99 20
+ 20 88 + 6 88
あなたが見ることができるように、それは私の偽陽性と偽陰性が後方にあると考えています。