データフレームがあります。最初の列にはモデルの予測スコア(0〜100の範囲、小さい値はクラスAにあると予想され、大きい値はクラスBにあると予想される)が含まれ、2番目の列にはエントリの実際の分類が含まれます( "クラスA "または"クラスB ")。
まだ20未満または50未満の値をクラスAとして定義する必要がある場所を判断できないため、異なるカットオフ値のRを使用して混同行列を取得する方法
Rでこの比較を効率的に行う方法は?
これにはいくつかの方法がありますが、データを使用した再現可能な例が望ましいでしょう。
set.seed(12345)
test <- data.frame(pred=c(runif(50,0,75),runif(50,25,100)), group=c(rep("A",50), rep("B",50)) )
table(test$pred<50,test$group)
与える
A B
FALSE 18 34
TRUE 32 16
つまり、これは、32のAが50歳未満、34のBが50歳以上、18のAが50歳以上(誤って分類)、16のBが50未満(誤って分類)であることを示しています。
set.seed(12345)
test <- data.frame(pred=c(runif(50,0,60),runif(50,40,100)), group=c(rep("A",50), rep("B",50)) )
table(test$pred<50,test$group)
与える
A B
FALSE 8 40
TRUE 42 10
この例では、選択したサンプリングの原因として、分類がはるかに優れています。
これの「50」は、20、30など、好きなように変更できます。
table(test$pred<50,test$group)