2017-03-21 114 views
1

ROC CURVE via ROCR爲什麼我的ROC曲線看起來像V?

newpred <- c(1, 0 ,0 ,1 ,0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 
0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,0, 1, 0, 0, 
0, 0,0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 
0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
1,0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 
1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0)      


     newlab <- c(0, 0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0, 
        0, 0 ,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0 ,0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 1 ,0, 0 ,0, 0 ,0, 0 ,1, 0 ,0, 0 ,0, 0 ,0, 
        0, 0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,1, 
        0 ,1, 0 ,1, 0 ,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0) 

所以第一個向量是我的預測和第二向量是參考。我不明白爲什麼我的曲線看起來像一個V.我從來沒有看到一個ROC曲線看起來像這樣!我的顧問希望我添加點數,以便通過添加更多點來使圖形更平滑/更曲線。我嘗試使用pROC進行圖形繪製,但我可以添加的唯一參數是預測和參考。

我也試圖與ROCR

print.cutoffs.at=seq(0,1,by=0.1), text.adj=c(-0.2,1.7)) 

,並得到這個 enter image description here

如何平滑曲線或增加更多的點?

+1

你只有一個自變量嗎?那是可變的二進制? – Dason

+0

是的,它是一個獨立的變量是二進制 –

+2

然後就是已經順利,因爲它會得到 – Dason

回答

3

的ROC曲線是指一種用於檢查概率分類器的性能,這意味着一個輸出響應變量是你從預測概率去任何A類或B類

方式的概率到硬盤預測類標籤是通過設定一個臨界點:如果A類是預測的概率大於截止時,則分配給它的標籤A.否則它分配B.

通常人們使用的值0.5的截止點,以便將觀察分配給具有最高概率的類別。但是,沒有什麼能阻止您使用不同的截止值。如果使用較高的截止值,例如0.9,那麼您將看到分配給A的觀察數很少 - 這就像告訴您的分類器將其標記爲A,只有當它非常確信這是正確的值時。反之亦然,如果你使用低截止頻率 - 在這種情況下,只有當你非常確定B是正確的值時,纔會將其標記爲B.

ROC圖基本上是由滑動的截止值從0到1,並觀察結果的預測標籤如何與實際進行比較。但是,這假定您首先有一個潛在的概率預測。你只有預測標籤,這就是你的情節退化的原因。

+0

那麼用這個圖來討論我的模型的準確性會不合適嗎? (我還使用NPV,PPV,特異性,敏感性和準確性是從我的混淆矩陣輸出) –

+1

如果您想對如何衡量模型的表現的意見,那將是[stats.SE]一個問題(HTTPS ://stats.stackexchange.com)。一定要包括你適合什麼樣的模型的細節(邏輯迴歸,樹,SVM等),你使用的是什麼數據等。 –

+0

但是,如果你的模型不能產生_range_的預測值,那麼ROC不會告訴你很多。 –