2017-08-14 4 views
2

レンジャーモデルのAUC値はどのようにして計算できますか?レンジャーRFモデルのAUC値の計算方法は?

#Build the model using ranger() function 
ranger.model <- ranger(formula, data = data_train, importance = 'impurity', 
write.forest = TRUE, num.trees = 3000, mtry = sqrt(length(currentComb)), 
classification = TRUE) 
#get the prediction for the ranger model 
pred.data <- predict(ranger.model, dat = data_test,) 
table(pred.data$predictions) 

しかし、私は計算する方法を知らない:レンジャーは、私は分類目的のためにレンジャーモデルを構築し、モデルから予測を取得するには、次のコードを使用していR.におけるランダムフォレストアルゴリズムの高速な実装でありますAUC値

ご存じですか?

答えて

2

AUCを計算する鍵は、テストサンプルのランク付け方法が「最も可能性が高い」から「最も低い可能性が最も高い」になります。トレーニングコールを変更してprobability = TRUEを追加します。 pred.data$predictionsはクラス確率の行列になります。あなたの「陽性」クラスに対応する列を書き留めます。この列は、AUCを計算するために必要なランク付けを提供します。

実際にAUCを計算するには、Hand and Till, 2001から式(3)を使用します。次のように我々は、この方程式を実装することができる:scoresは正のクラスに対応pred.data$predictionsのカラムであろう、そしてlblsバイナリベクトルとして符号化された対応するテストラベルである

## An AUC estimate that doesn't require explicit construction of an ROC curve 
auc <- function(scores, lbls) 
{ 
    stopifnot(length(scores) == length(lbls)) 
    jp <- which(lbls > 0); np <- length(jp) 
    jn <- which(lbls <= 0); nn <- length(jn) 
    s0 <- sum(rank(scores)[jp]) 
    (s0 - np*(np+1)/2)/(np*nn) 
} 

(ポジティブため10又は-1負の場合)。

+0

ありがとうございましたArtem – user2947767

関連する問題