ReceiverOperatingCharacteristic

Receiver Operating Characteristic (ROC) 곡선을 구성하기 위한 값을 계산합니다. ClassificationScore와 마찬가지로 이 메서드는 참값의 벡터에 적용됩니다.

bool vector::ReceiverOperatingCharacteristic(
   const 행렬&                 pred_scores,   // 각각의 클래스의 확률 분포를 포함하는 행렬
   const ENUM_ENUM_AVERAGE_MODE  mode           // 평균화 모드
   행렬&                       fpr,           // 각 임계값에 대해 계산된 거짓양성률의 값들
   행렬&                       tpr,           // 각 임계값에 대해 계산된 참양성 비율의 값들
   matrix&                       thresholds,    // 내림차순으로 정렬된 기준값들
   );

매개 변수

pred_scores

[in]  각 클래스에 대한 확률이 포함된 수평 벡터의 집합을 포함하는 행렬. 행렬 행의 수는 실제 값으로 구성된 벡터의 크기와 일치해야 합니다.

mode

[in] ENUM_AVERAGE_MODE 열거의 평균화 모드. AVERAGE_NONE, AVERAGE_BINARY 및 AVERAGE_MICRO만 사용됩니다.

fpr

[out]  거짓 양성률 곡선의 계산된 값이 포함된 행렬입니다. 평균화가 적용되지 않은 경우(AVERAGE_NONE) 행렬의 행 수는 모델의 클래스의 수에 해당합니다. 열 수는 참값 벡터의 크기(또는 확률 분포 행렬 pred_score의 행 수)에 해당합니다. 미세 평균화의 경우 행렬의 행 수는 중복을 제외한 임계값의 총 수에 해당합니다.

tpr

[out]  진양성 비율 곡선의 계산된 값이 포함된 행렬입니다.

threshold

[out]  확률 행렬을 정렬하여 얻은 임계 행렬

 

참조

ClassificationScore 메서드에 대한 참고 사항을 참조하세요.

예시

ROC 그래프를 그리는 예. tpr 값은 y축에 표시되고 fpr 값은 x축에 표시됩니다. 또한 fpr 및 tpr 그래프는 x축에 임계값이 표시되며 별도로 표시됩니다.

   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);
     }
    

결과 곡선:

Receiver Operating Characteristic (ROC)

Graph fpr-tpr micro average

 

그래프 출력 코드는 간단하며 <Graphics/Graphic.mqh> 표준 라이브러리를 기반으로 합니다.

예제는 mnist.onnx 모델의 데이터를 사용합니다. 코드는 PrecisionRecall 메서드 설명에 나와 있습니다.

ROC AUC가 이상적입니다.
 

roc auc score micro = [0.99991]