2017-01-08 12 views
-1

Roc曲線を計算し、線形判別モデルからAUCを計算したいと考えています。私はこれをどうやってできるのか知っていますか?ROCを用いた線形判別分析のRoc曲線

##LDA 
require(MASS) 
library(MASS) 
lda.fit = lda(Negative ~., trainSparse) 
lda.fit 
plot(lda.fit) 
###prediction on the test set 
lda.pred=predict(lda.fit,testSparse) 
table(testSparse$Negative,lda.pred$class) 
+0

: > rocplot =関数(predは、真実、...){ここにコードがあります + predob =予測(pred、truth) + perf =パフォーマンス(predob、 "tpr"、 "fpr") +} > yhat.opt = predict(lda.fit 、testSparse、決定。値はTRUE) > fit.opt =属性(yhat.opt)$ decision.values > par(mfrow = c(1,2)) > rocplot(fitted.opt、testSparse ["Negative"]、main = "Training Data")、このエラーが表示されます。予測のエラー(pred、truth):予測の形式が無効です。 –

+0

[ROCRパッケージでAUCを計算する方法](http://stackoverflow.com/questions/41523761/how-to-compute-auc-with-rocr-package) –

答えて

1

は、単にこれを試してください:私はこのコードを試してみました@calimo

library(ROCR) 
# choose the posterior probability column carefully, it may be 
# lda.pred$posterior[,1] or lda.pred$posterior[,2], depending on your factor levels 
pred <- prediction(lda.pred$posterior[,2], testSparse$Negative) 
perf <- performance(pred,"tpr","fpr") 
plot(perf,colorize=TRUE) 

enter image description here

+0

ありがとう!選択する要因の数を確認するにはどうすればよいですか? lda.fit = lda(負の値、正の値、trainSparse) 警告メッセージ: lda.default(x、grouping、...)の変数は次のとおりです。共線。それは問題ですか?@sandipan –

+0

@ macgionny私はあなたの最初の質問は、正しい要因レベルをlda.pred $ posteriorから選択する方法を知ることだと思いますか?あなたの応答変数の正の因子レベルが 'Y'であるとしましょう、 'prediction()'はそれぞれのデータタプルについて2つの引数を期待しています、最初にモデルによって予測される確率は 'Y'そのインスタンスの真のラベル2番目の質問の答えは、予測子が線形依存であるため、警告の理由である複数の共線性の問題です.VIFテストを行い、いくつかの変数を削除する必要があります。 –

+0

モデルの精度とリコールが高い場合、プロットされたROC曲線は上記の形状になる可能性があります。 –

関連する問題