今日のひとこと Challange IT For Future

FioneのAutoMLでモデルの順位付けと探索停止の評価指標を選ぶ

Fione 読了 3分
目次
  1. 学習フォームで二つの指標を設定する
  2. 目的列の値に合わせて指標を選ぶ
  3. 学習結果の指標タブで確認する
  4. 関連PR

不良品が少ないデータでは、すべてを良品と予測しても正解率は高くなります。Fione v2の開発版では、平均適合率やF1を使って、検証データ上でどのモデルを上位に並べるかを指定できます。順位付けと探索停止の指標は別々に設定できます。

学習フォームで二つの指標を設定する

「順位付けの指標」はリーダーボードの並び順を決めます。「停止の指標」は探索の途中で試行が改善したかを判定します。APIやSDKから学習する場合のキーは、それぞれ sort_metric と stopping_metric です。どちらも初期値は auto で、分類はログ損失、回帰はRMSEになります。各モデルの学習と最終アンサンブルの重み付けは、従来どおり分類ではログ損失、回帰では二乗誤差を使います。

二値分類で不良品の候補を確率順に点検する場合は、順位付けに平均適合率(aucpr)を選び、停止には既定のログ損失を使えます。APIで学習条件を組み立てる場合は、目的列などの設定に次の二項目を加えます。

{
  "sort_metric": "aucpr",
  "stopping_metric": "auto"
}

二値分類で平均適合率やF1、適合率、再現率を解釈するときは、クラス順で後ろに並ぶラベルが評価対象です。例えば 0 を良品、1 を不良品とした場合は 1 のスコアを確認します。F1など予測ラベルを使う指標は判定設定の影響を受けます。この変更の時点で decision の初期値は argmax で、確率が最も高いクラスを選びます。

目的列の値に合わせて指標を選ぶ

回帰では、外れ値の影響を抑えて典型的な誤差を見たいときは誤差の中央値(medae)、予測値の順序を評価したいときはスピアマン順位相関(spearman)を選べます。RMSLEとポアソン逸脱度には非負の目的値が必要です。正規化ジニ係数には非負で変動のある値が必要で、MAPEは目的列に0があると使えません。丸めた予測の二次重み付きカッパ(rounded_qwk)は、最大値と最小値の差が1以上1000未満の整数評価が対象です。

多クラス分類では、上位3位以内の正解率(top3_accuracy)は4クラス以上、MAP@3(map3)は3クラス以上で使えます。フォームで指標を選べても、目的列の値やクラス数の条件を満たさない場合は学習開始時にエラーになります。旧名の deviance は受け付けなくなるため、既存の設定ファイルに残っている場合は確認します。

学習結果の指標タブで確認する

モデル詳細の指標タブでは、選んだ順位付けの指標に加え、データに適用できる指標を確認できます。追加された確率順位の指標である平均適合率、ジニ係数、上位10%のリフトは、指標タブには二値分類の場合に表示されます。目的列を log1p 変換した回帰でも、明示した非既定の停止指標やアンサンブルの進捗スコアは、リーダーボードと同様に元の尺度に戻した予測で計算されます。

関連PR