指標と検証 - アマゾン SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

指標と検証

このガイドでは、機械学習モデルのパフォーマンスを測定するために使用できる指標と検証手法を紹介します。Amazon SageMaker Autopilot は、機械学習モデル候補の予測品質を測定するメトリクスを生成します。候補に対して計算されるメトリクスは、MetricDatum 型の配列を使用して指定します。

Auto候補メトリクス

次のリストは、Autopilot 内でモデルのパフォーマンスを測定するために現在使用可能なメトリクスの名前を示しています。

Accuracy

正しく分類された項目の数の、(正しく、および誤って) 分類された項目の総数に対する比率。二項分類と多クラス分類の両方で使用されます。精度は、予測されたクラス値が実際の値にどれだけ近いかを測定します。精度メトリクスは 0~1 の間の値をとります。値 1 は完全な精度を示し、0 は完全な不正確さを示します。

AUC

曲線下面積 (AUC) メトリクスは、ロジスティック回帰など、確率を返すアルゴリズムによる二項分類の比較と評価に使用されます。確率を分類にマッピングするには、しきい値と比較します。

関連する曲線は、受信者操作特性曲線 (ROC 曲線) です。ROC 曲線は、予測の偽陽性率 (FPR) に対する真陽性率 (TPR)/再現率を、しきい値 (これを超えれば予測を陽性とみなす) の関数としてプロットします。しきい値を高くすると偽陽性が小さくなりますが、偽陰性が増加します。

AUC は、この ROC 曲線の下面積です。したがって、AUC は、考えられるすべての分類しきい値にわたってモデルパフォーマンスの集約評価基準を提供します。AUC スコアは 0~1 の間の値をとります。1 のスコアは完全な精度を示し、半分のスコア (0.5) は予測がランダム分類器を上回らないことを示します。

BalancedAccuracy

BalancedAccuracyは、すべての予測に対する正確な予測の比率を測定するメトリクスです。この比率は、真陽性 (TP) と真陰性 (TN) を陽性 (P) と陰性 (N) の合計数で正規化した後に計算します。これは、二項分類と多クラス分類の両方で使用し、0.5*((TP/P)+(TN/N)) として定義します。値は 0~1 の範囲です。 BalancedAccuracy不均衡なデータセットで陽性と陰性の数が相互に大きく異なる場合に、より優れた精度の尺度となります。例えば、メールの 1% だけがスパムである場合などです。

F1

F1スコアは精度と再現率の調和平均で、次のように定義されます。F1 = 2 * (精度 x 再現率)/(精度 + 再現率)。これは、従来、正と負と呼ばれているクラスへの二項分類に使用されます。予測は、実際の (正しい) クラスと一致する場合は true、そうでない場合は false とみなされます。

精度は、すべての陽性予測数に対する真陽性予測数の比率であり、データセット内の偽陽性予測数を含みます。精度は、陽性クラスを予測するときの予測品質を測定します。

再現率 (または感度) は、すべての実際の陽性インスタンス数に対する真陽性予測数の比率です。再現率は、モデルがデータセット内の実際のクラスメンバーをどれだけ完全に予測したかを測定します。

F1 のスコアは 0~1 の間の値です。スコアが 1 の場合は可能な限り最高のパフォーマンスを示し、0 は最悪を示します。

F1macro

F1macroスコアは、多クラス分類問題に F1 スコアリングを適用します。これを行うために、精度と再現率を計算し、その調和平均をとって各クラスの F1 スコアを計算します。最後に、F1macro は個々のスコアを平均化し、F1macroスコアを取得します。 F1macroスコアは 0~1 の間の値です。スコアが 1 の場合は可能な限り最高のパフォーマンスを示し、0 は最悪を示します。

InferenceLatency

推論レイテンシーは、モデル予測のリクエストを行ってから、モデルがデプロイされているリアルタイムのエンドポイントからそれを受け取るまでのおおよその時間です。このメトリクスは、秒単位で測定され、アンサンブルモードでのみ使用できます。

LogLoss

対数損失は、クロスエントロピー損失とも呼ばれ、確率出力そのものではなく、出力の品質を評価するために使用するメトリクスです。二項分類と多クラス分類の両方、およびニューラルネットで使用します。また、これはロジスティック回帰のコスト関数でもあります。対数損失は、モデルが高い確率で誤った予測を行っていることを示す重要なメトリクスです。値の範囲は 0 から無限大です。値 0 は、データを完全に予測するモデルを表します。

MAE

平均絶対誤差 (MAE) は、予測値と実際値がどの程度異なるかを示す尺度です。MAE は、モデルの予測誤差を理解するために回帰分析で一般的に使用します。線形回帰がある場合、MAE は予測線から実際の値までの平均距離を表します。MAE は、絶対誤差の合計を観測値の数で割った値として定義されます。値の範囲は 0 から無限大で、数字が小さいほど、モデルがよりデータに適合していることを示します。

MSE

平均二乗誤差 (MSE) は、予測値と実際の値の差の二乗の平均です。これは回帰に使用します。MSE の値は常に正です。モデルによる実際の値の予測精度が高くなるほど、MSE 値は小さくなります。

Precision

精度は、アルゴリズムが識別したすべての陽性のうち、真陽性 (TP) をどの程度適切に予測したかを測定します。精度は Precision = TP/(TP+FP) として定義し、値は 0~1 の範囲です。二項分類で使用します。偽陽性のコストが高い場合、精度は重要なメトリクスです。例えば、航空機の安全システムが誤って安全に飛行可能と判断した場合、偽陽性のコストは非常に高くなります。偽陽性 (FP) は、陽性予測であるが、データ内で実際には陰性であることを示します。

PrecisionMacro

精度マクロは、多クラス分類問題の精度を計算します。そのために、各クラスの精度を計算し、スコアを平均化して複数のクラスの精度を取得します。 PrecisionMacroスコアは 0~1 の範囲です。スコアが高いほど、モデルが特定したすべての陽性のうち、真陽性 (TP) を予測した能力が高いこと (複数のクラスを平均化した結果) を示します。

R2

R 2 は、決定係数とも呼ばれ、モデルが従属変数の分散をどれだけ説明できるかを定量化するために使用します。値は 1 から -1 の範囲です。数値が大きいほど、説明された変動性の割合が高いことを示します。 R2ゼロ (0) に近い値は、従属変数のほとんどをモデルが説明できなかったことを示します。負の値は、適合度が悪く、モデルは定数関数と比べてパフォーマンスが下回る (モデルは定数関数と比べてパフォーマンスが下回る) ことを示します。線形回帰の場合、これは水平線です。

Recall

再現率は、アルゴリズムがデータセット内のすべての真陽性 (TP) をどれだけ正しく予測するかを測定します。真陽性は、陽性予測のうち、データ内で実際にも陽性である値を示します。再現率は、Recall = TP/(TP+FN) として定義し、値は 0~1 の範囲です。スコアが高いほど、データの真陽性 (TP) を予測するモデルの能力が高いことを示します。二項分類で使用します。

再現率は、すべての真陽性を見つけるために使われるため、がんの検査においては重要です。偽陽性 (FP) は、陽性予測であるが、データ内では実際に陰性であることを示します。再現率を測定するだけでは不十分な場合があります。すべての出力を真陽性として予測すると、完全な再現率スコアになってしまうためです。

RecallMacro

RecallMacroは、多クラス分類問題の再現率を計算します。 RecallMacro0~1 の範囲です。スコアが高いほど、データセット内の真陽性 (TP) を予測するモデルの能力が高いほど、データセット内の真陽性 (TP) を予測するモデルの能力が高いことを示します。真陽性は、陽性予測のうち、データ内で実際にも陽性予測のうち、データ内で実際にも陽性予測のうち、データ内で実際にも陽性予測した値です。再現率を測定するだけでは不十分な場合があります。すべての出力を真陽性として予測すると、完全な再現率スコアになってしまうためです。

RMSE

二乗平均平方根誤差 (RMSE) は、予測値と実際値の二乗差の平均値を求め、すべての値を平均化します。これは、モデルの予測誤差を理解するために回帰分析で使用されます。これは、大きなモデル誤差や外れ値の存在を示す重要なメトリクスです。値はゼロ (0) から無限大の範囲で、数値が小さいほど、モデルがデータにより適合していることを示します。RMSE は規模に依存するため、サイズが異なるデータセットの比較には使用しないでください。

候補モデルに対して自動的に計算されるメトリクスは、対象としている問題のタイプによって決まります。

  • 回帰:InferenceLatencyMAE,MSE,R2,RMSE

  • 二項分類:AccuracyAUC,BalancedAccuracy,F1,InferenceLatency,LogLoss,Precision,Recall

  • マルチクラス分類:AccuracyBalancedAccuracy,F1macro,InferenceLatencyLogLoss,PrecisionMacro,RecallMacro

オートパイロットでの相互検証

相互検証は、モデル選択における過適合や偏りを減らすために使用されます。これは、検証データセットが同じ集団から抽出された場合に、モデルが未確認の検証データセットの値をどれだけ正確に予測できるかを評価するためにも使用されます。この方法は、トレーニングインスタンスの数が限られているデータセットをトレーニングする場合に特に重要です。

オートパイロットは、相互検証を使用してハイパーパラメーター最適化 (HPO) とアンサンブルトレーニングモードでモデルを構築します。オートパイロットの相互検証プロセスの最初のステップは、データを k 倍に分割することです。

K-フォールドスプリット

K 分割は、入力トレーニングデータセットを複数のトレーニングデータセットと検証データセットに分割する方法です。データセットは、kフォールドと呼ばれる同じサイズのサブサンプルに分割されます。その後、k-1モデルは再現率でトレーニングされ、検証データセットである残りの k 番目の部分でテストされます。検証用に別のデータセットを使用して、kこのプロセスを何度も繰り返します。

以下の画像は、k = 4 つ折りの場合の k 分割を示しています。各折り目は行として表されます。濃い色調のボックスは、トレーニングに使用されたデータの一部を表しています。残りの明るい色調のボックスは、検証データセットを示しています。


             四つ折りの四つ折りの四つ折り分け。使用したデータは暗く、検証データセットは薄い。

オートパイロットは、ハイパーパラメーター最適化 (HPO) モードとアンサンブルモードの両方に k 分割交差検証を使用します。

他の Autopilot またはモデルと同様に、交差検証を使用して構築された Autopilot SageMaker モデルをデプロイできます。

HPO モード

K 分割交差検証は、K 分割分割のメソッドを使用して交差検証を行います。HPO モードでは、トレーニングインスタンスが 50,000 以下の小規模データセットに対して、Autopilot は k 部分交差検証を自動的に実装します。クロスバリデーションを実行すると、過適合や選択バイアスを防ぐことができるため、小規模なデータセットでトレーニングを行う場合は特に重要です。

HPO モードでは、データセットのモデル化に使用される候補アルゴリズムごとに 5 の k 値を使用します。複数のモデルが異なる分割でトレーニングされ、モデルは別々に保存されます。トレーニングが完了すると、各モデルの検証メトリクスが平均化され、1 つの推定メトリクスが生成されます。最後に、Autopilot は、トライアルからのモデルと最良の検証メトリクスを組み合わせてアンサンブルモデルを作成します。オートパイロットは、このアンサンブルモデルを使用して予測を行います。

Autopilot によってトレーニングされたモデルの検証メトリクスは、モデルリーダーボードに目標メトリクスとして表示されます。特に指定しない限り、Autopilot は扱う各問題タイプに対してデフォルトの検証メトリクスを使用します。オートパイロットが使用する指標の詳細については、を参照してくださいAutoMLJobObjective

例えば、ボストンの住宅のデータセットには 861 個のみのサンプルが含まれています。このデータセットを使用して相互検証を行わずに住宅販売価格を予測するモデルを構築すると、ボストンの住宅ストックを代表しないデータセットでトレーニングを行うリスクがあります。データをトレーニングサブセットと検証サブセットに 1 回だけ分割した場合、トレーニング部分は主に郊外からのデータのみが含まれる可能性があります。その結果、市内の他の地域とは異なるデータでトレーニングすることになります。この例では、この偏った選択ではモデルがオーバーフィットする可能性があります。K-部分交差検証は、トレーニングと検証の両方に利用可能なデータを完全かつランダムに使用することで、この種のエラーのリスクを軽減できます。

相互検証により、トレーニング時間が平均 20% 増加する可能性があります。また、複雑なデータセットの場合、トレーニング時間が大幅に長くなる可能性があります。

注記

HPO モードでは、/aws/sagemaker/TrainingJobs CloudWatch Logs の各部分のトレーニングメトリクスと検証メトリクスを確認できます。 CloudWatch ログの詳細については、を参照してください SageMaker アマゾンでアマゾンイベントを記録する CloudWatch

アンサンブルモード

アンサンブルモードでは、データセットのサイズに関係なく相互検証が実行されます。お客様は独自の検証データセットとカスタムデータ分割率を提供することも、オートパイロットにデータセットを自動的に 80~ 20% の分割率に分割させることもできます。次に、トレーニングデータをk-folds に分割して相互検証を行います。このとき、k AutoGluon の値はエンジンによって決定されます。アンサンブルは複数の機械学習モデルで構成され、各モデルは基本モデルと呼ばれます。1 つの基本モデルを (k-1) フォールドでトレーニングし、 out-of-fold 残りのフォールドで予測を行います。kこの処理がすべてのフォールドで繰り返され、 out-of-fold (OOF) 予測が連結されて 1 つの予測セットが形成されます。アンサンブルのすべての基本モデルは、これと同じプロセスに従って OOF 予測を生成します。

以下の画像は、4k つ折りの場合の k 分割検証を示しています。各折り目は行として表されます。濃い色調のボックスは、トレーニングに使用されたデータの一部を表しています。残りの明るい色調のボックスは、検証データセットを示しています。

画像の上部の各折り目では、最初の基本モデルがトレーニングデータセットでトレーニングを行った後、検証データセットで予測を行っています。以降のフォールドごとに、データセットの役割が変わります。以前はトレーニングに使用されていたデータセットが検証に使用され、これは逆にも当てはまります。kフォールドが終了すると、すべての予測が連結されて out-of-fold (OOF) 予測と呼ばれる単一の予測セットが形成されます。nこのプロセスはベースモデルごとに繰り返されます。


            k 分割検証:4 行のボックスは 4 つ折りに表示され、1 行の OOF 予測が生成されます。

次に、各基本モデルの OOF 予測をフィーチャとして使用して、スタッキングモデルをトレーニングします。スタッキングモデルは、各基本モデルの重要度を学習します。これらの重みは、OOF 予測を組み合わせて最終的な予測を形成するために使用されます。検証データセットのパフォーマンスによって、どのベースモデルまたはスタッキングモデルが最適かが決まり、このモデルが最終モデルとして返されます。

アンサンブルモードでは、独自の検証データセットを提供することも、オートパイロットが入力データセットを 80% のトレーニングデータセットと 20% の検証データセットに自動的に分割することもできます。次に、kトレーニングデータを-foldsに分割して相互検証を行い、各分割のOOF予測と基本モデルを生成します。

これらの OOF 予測は、スタッキングモデルをトレーニングするための機能として使用されます。スタッキングモデルでは、各基本モデルの重みが同時に学習されます。これらの重みは、OOF 予測を組み合わせて最終的な予測を形成するために使用されます。各フォールドの検証データセットは、すべての基本モデルとスタッキングモデルのハイパーパラメータチューニングに使用されます。検証データセットのパフォーマンスによって、どのベースモデルまたはスタッキングモデルが最適なモデルかが決まり、このモデルが最終モデルとして返されます。