Rキャレットライブラリで、以下のような混同行列を取得した場合、全体的な精度0.992を取得する方法はありますか?この値を保存して後で処理する必要があるため、この単一の値を取得できません。これは可能ですか?
Prediction A B C D E
A 1114 2 0 0 0
B 9 745 5 0 0
C 0 6 674 4 0
D 0 0 3 640 0
E 0 0 2 1 718
全体的な統計
Accuracy : 0.992
95% CI : (0.989, 0.994)
No Information Rate : 0.286
P-Value [Acc > NIR] : <2e-16
Kappa : 0.99
マクネマーの検定P値:NA
クラス別の統計:
Class: A Class: B Class: C Class: D Class: E
Sensitivity 0.992 0.989 0.985 0.992 1.000
Specificity 0.999 0.996 0.997 0.999 0.999
Pos Pred Value 0.998 0.982 0.985 0.995 0.996
Neg Pred Value 0.997 0.997 0.997 0.998 1.000
Prevalence 0.286 0.192 0.174 0.164 0.183
Detection Rate 0.284 0.190 0.172 0.163 0.183
Detection Prevalence 0.284 0.193 0.174 0.164 0.184
Balanced Accuracy 0.996 0.992 0.991 0.996 1.000
混同行列cm
が与えられると、全体的な精度はoverall.accuracy <- cm$overall['Accuracy']
によって取得されます。
caret
パッケージを見るのは初めてですが、どうやってこれを知ったのですか?
例を提供しなかったので、 キャレット混同行列のサンプルコード を検索しました。これが(最後のステートメントで割り当てを追加しただけです):
###################
## 3 class example
confusionMatrix(iris$Species, sample(iris$Species))
newPrior <- c(.05, .8, .15)
names(newPrior) <- levels(iris$Species)
cm <- confusionMatrix(iris$Species, sample(iris$Species))
それでは、混同行列の内容を見てみましょう。
> str(cm)
List of 5
$ positive: NULL
$ table : 'table' int [1:3, 1:3] 13 18 19 20 13 17 17 19 14
..- attr(*, "dimnames")=List of 2
.. ..$ Prediction: chr [1:3] "setosa" "versicolor" "virginica"
.. ..$ Reference : chr [1:3] "setosa" "versicolor" "virginica"
$ overall : Named num [1:7] 0.267 -0.1 0.198 0.345 0.333 ...
..- attr(*, "names")= chr [1:7] "Accuracy" "Kappa" "AccuracyLower" "AccuracyUpper" ...
$ byClass : num [1:3, 1:8] 0.26 0.26 0.28 0.63 0.63 0.64 0.26 0.26 0.28 0.63 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:3] "Class: setosa" "Class: versicolor" "Class: virginica"
.. ..$ : chr [1:8] "Sensitivity" "Specificity" "Pos Pred Value" "Neg Pred Value" ...
$ dots : list()
- attr(*, "class")= chr "confusionMatrix"
ご覧のとおり、cm
オブジェクトはリストです。さまざまな「byClass」および「全体」の統計が表示されます。全体の部分は次のようにして取得されます。
overall <- cm$overall
これにより、文字列インデックスを持つ数値のベクトルが得られます。
> overall
Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull AccuracyPValue McnemarPValue
0.2666667 -0.1000000 0.1978421 0.3449492 0.3333333 0.9674672 0.9547790
これで、関連する値の抽出は次のように簡単になります。
> overall.accuracy <- overall['Accuracy']
概要:str
はあなたの友達です。もう1つの便利な関数はattributes
です。これは特定のオブジェクトのすべての属性を返します。