15

データフレームがあります。最初の列には、モデルの予測スコア(0から100の範囲、小さい値はクラスAにあると予想され、大きい値はクラスBにあると予想される)が含まれ、2番目の列にはエントリの実際の分類が含まれます(「クラスA」または「クラスB」)。

20未満または50未満の値をクラスAとして定義する場所をまだ決定できないため、さまざまなカットオフ値に対してRと混同行列を取得するにはどうすればよいですか?

Rとこの比較を効率的に行う方法は?

4

1 に答える 1

22

これを行うにはいくつかの方法がありますが、データを使用した再現可能な例が望ましいでしょう。

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)
于 2011-07-08T04:23:22.840 に答える