3

multiclass.roc パラメーターがどのように見えるかを理解するのに苦労しています。ここに私のデータのスナップショットがあります:

> head(testing.logist$cut.rank)
[1] 3 3 3 3 1 3
Levels: 1 2 3
> head(mnm.predict.test.probs)
              1            2          3
9  1.013755e-04 3.713862e-02 0.96276001
10 1.904435e-11 3.153587e-02 0.96846413
12 6.445101e-23 1.119782e-11 1.00000000
13 1.238355e-04 2.882145e-02 0.97105472
22 9.027254e-01 7.259787e-07 0.09727389
26 1.365667e-01 4.034372e-01 0.45999610
> 

multiclass.roc を次のように呼び出してみました:

multiclass.roc(
        response=testing.logist$cut.rank,
        predictor=mnm.predict.test.probs,
        formula=response~predictor
        )

しかし当然、エラーが発生します:

Error in roc.default(response, predictor, levels = X, percent = percent,  : 
  Predictor must be numeric or ordered.

バイナリ分類の問題の場合、「予測子」に確率 (観測ごとに 1 つ) を含める必要があることを知っています。ただし、私の場合、3 つのクラスがあるため、予測子は、各クラスの確率に対応する 3 つの列 (または 3 つの値のサブリスト) を持つ行のリストです。私の「予測子」が現在のように見えるのではなく、どのように見えるべきか知っている人はいますか?

4

1 に答える 1

0

pROC パッケージは、(各クラスの確率として) 複数の予測を取得するこのケースを実際に処理するようには設計されていません。通常、P(class = 1) を評価します。

multiclass.roc(
    response=testing.logist$cut.rank,
    predictor=mnm.predict.test.probs[,1])

そして、P(class = 2) と P(class = 3) でもう一度実行します。または、最も可能性の高いクラスを決定します。

predicted.class <- apply(mnm.predict.test.probs, 1, which.max)
multiclass.roc(
    response=testing.logist$cut.rank,
    predictor=predicted.class)

multiclass.roc時には役に立ちますが、実際にはニーズに合わない可能性が高いおもちゃと考えてください。

于 2015-01-23T09:16:12.163 に答える