1. 程式人生 > >用Python畫ROC曲線 matplotlib 顏色、標記、線條引數控制

用Python畫ROC曲線 matplotlib 顏色、標記、線條引數控制

在分類模型中,ROC曲線和AUC值經常作為衡量一個模型擬合程度的指標。最近在建模過程中需要作出模型的ROC曲線,參考了sklearn官網的教程和部落格。現在將自己的學習過程總結如下,希望對初次接觸的同學有所幫助。PS:網上的例子實在是晦澀難懂,在折騰了一下午之後終於搞定了。下面是我在學習過程中主要參考的資料,大家也可以學習一下。

  sklearn上有一個畫ROC曲線的例子,利用的是經典的鳶尾花(iris)資料。但鳶尾花資料分類的結果有三種,例子就直接來做圖(一般的分類任務明明只有兩種結果啊!!!),對於初學者來說(說的是我自己)看起來真的彆扭。因此我對該例子做了一些改動(簡化),將資料轉化為二分類,這樣比較容易理解。

   首先為大家介紹一下Python做ROC曲線的原理。sklearn.metrics有roc_curve, auc兩個函式,ROC曲線上的點主要就是通過這兩個函式計算出來的。

(1.)

fpr, tpr, thresholds = roc_curve(y_test, scores)

  其中y_test為測試集的結果,scores為模型預測的測試集得分(注意:通過decision_function(x_test)計算scores的值);fpr,tpr,thresholds 分別為假正率、真正率和閾值。(應該是不同閾值下的真正率和假正率)。

(2.)

roc_auc =auc(fpr, tpr)

roc_auc為計算的acu的值。

PS:下面的程式碼大家可以直接copy跑一下,我相信跑完之後大家就理解作圖的原理了。