ReceiverOperatingCharacteristic

Receiver Operating Characteristic (ROC) eğrisini oluşturmak için değerleri hesaplar. ClassificationScore'a benzer şekilde, bu metot da doğru değerler vektörüne uygulanır.

bool vector::ReceiverOperatingCharacteristic(
   const matrix&                 pred_scores,   // her sınıf için olasılık dağılımını içeren matris
   const ENUM_ENUM_AVERAGE_MODE  mode           // ortalama alma modu
   matrix&                       fpr,           // her eşik değeri için hesaplanan yanlış pozitif oran değerleri
   matrix&                       tpr,           // her eşik değeri için hesaplanan doğru pozitif oran değerleri
   matrix&                       thresholds,    // azalan sırada sıralanmış eşik değerleri
   );

Parametreler

pred_scores

[in]  Her sınıf için olasılıkları içeren bir dizi yatay vektöre sahip bir matris. Matris satırlarının sayısı, doğru değerler vektörünün büyüklüğüne karşılık gelmelidir.

mode

[in] ENUM_AVERAGE_MODE numaralandırmasından ortalama alma modu. Yalnızca AVERAGE_NONE, AVERAGE_BINARY ve AVERAGE_MICRO kullanılır.

fpr

[out]  Yanlış pozitif oran eğrisinin hesaplanan değerlerini içeren bir matris. Ortalama alma uygulanmazsa (AVERAGE_NONE), matristeki satır sayısı model sınıflarının sayısına karşılık gelir. Sütun sayısı, doğru değerler vektörünün büyüklüğüne (veya pred_score olasılık dağılımı matrisindeki satır sayısına) karşılık gelir. Mikro ortalama alma durumunda, matristeki satır sayısı, yinelenenler hariç olmak üzere toplam eşik değeri sayısına karşılık gelir.

tpr

[out]  Doğru pozitif oran eğrisinin hesaplanan değerlerini içeren bir matris.

threshold

[out]  Olasılık matrisinin sıralanmasıyla elde edilen eşik matrisi.

 

Not

ClassificationScore metodu için notlara bakın.

Örnek:

tpr değerlerinin y ekseninde ve fpr değerlerinin x ekseninde çizildiği bir ROC grafiği örneği. Ayrıca, fpr ve tpr grafiklerinin ayrı ayrı çizildiği ve eşik değerlerinin x ekseninde gösterildiği bir başka örnek.

   matrixf mat_thres;
   matrixf mat_fpr;
   matrixf mat_tpr;
 
   if(y_true.ReceiverOperatingCharacteristic(y_scores,AVERAGE_MICRO,mat_fpr,mat_tpr,mat_thres))
     {
      double fpr[],tpr[],thres[];
      ArrayResize(fpr,mat_thres.Cols());
      ArrayResize(tpr,mat_thres.Cols());
      ArrayResize(thres,mat_thres.Cols());
 
      for(uint i=0; i<fpr.Size(); i++)
        {
         fpr[i]=mat_fpr[0][i];
         tpr[i]=mat_tpr[0][i];
         thres[i]=mat_thres[0][i];
        }
      thres[0]=thres[1]+0.001;
 
      PlotCurve("ROC curve (micro average)","roc","0.5",fpr,tpr);
      Plot2Curves("fpr-tpr (micro average)","fpr","tpr",thres,fpr,tpr);
     }
    

Ortaya çıkan eğriler:

Receiver Operating Characteristic (ROC)

Grafik fpr-tpr mikro ortalama

 

Grafik çıktı kodu basittir ve <Graphics/Graphic.mqh> standart kütüphanesine dayanır.

Örnekler mnist.onnx modelinin verilerini kullanmaktadır. Kod, PrecisionRecall metot açıklamasında sunulmuştur.

ROC AUC ideale yakındır.
 

roc auc score micro = [0.99991]