データフレームがあります。最初の列には、モデルの予測スコア(0から100の範囲、小さい値はクラスAにあると予想され、大きい値はクラスBにあると予想される)が含まれ、2番目の列にはエントリの実際の分類が含まれます(「クラスA」または「クラスB」)。
20未満または50未満の値をクラスAとして定義する場所をまだ決定できないため、さまざまなカットオフ値に対してRと混同行列を取得するにはどうすればよいですか?
Rとこの比較を効率的に行う方法は?
データフレームがあります。最初の列には、モデルの予測スコア(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)