交差検証による予測を評価 (Evaluate Predictions with Cross-validation) (空間統計)

サマリー

交差検証を使用して予測モデルの性能を評価します。 このツールでは、[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)][一般化線形回帰分析 (Generalized Linear Regression)][Presence-only 予測 (Presence-only Prediction)] ツールで作成されたモデルの検証メトリックが生成されます。 評価タイプ (たとえば K 分割や空間 K 分割)、グループ数、希少イベントのバランス調整を指定でき、強固で偏りのないモデル評価が行われます。

交差検証による予測を評価の仕組みの詳細

交差検証による予測を評価ツールの図

使用法

  • [評価タイプ] パラメーターには、フィーチャをグループに分割するための次のオプションがあります:

    • [空間 K 分割] - 空間交差検証を使用し、モデルがトレーニング データの地理的な分析範囲外にあるフィーチャをどのように予測するかを評価します。
    • [ランダム K 分割] - ランダム交差検証を使用し、モデルがトレーニング データの地理的な分析範囲内にあるフィーチャをどのように予測するかを評価します。

  • 分類を使用してまれなイベントや不均衡なカテゴリーを予測する場合は、[バランス調整タイプ] パラメーターを使用して、各カテゴリー レベル内のサンプル数をバランス調整してください。 このツールで異なるバランス調整方法をテストし、最も効果的であった方法を選択してトレーニング データセット全体に適用し、その後 [予測のためのデータを準備 (Prepare Data for Prediction)] ツールを使用して予測を行います。

  • 交差検証は、単一のモデルやモデル ファイルを生成するためには使用されません。 モデルとそのパラメーターが、トレーニング時に除外されたデータをどの程度正確に予測できるかを評価するための精度メトリックが生成されます。

  • [予測のためのデータを準備 (Prepare Data for Prediction)] ツールで最初にオーバーサンプリング (ランダム オーバーサンプリングまたは SMOTE) によってバランス調整された解析フィーチャは受け入れられません。 データ漏洩を防ぐため、オーバーサンプリングされたデータは検証セットには使用できません。

  • 元の予測ツールのパラメーターは保持されます。 ただし、[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Bo osted Classification and Regression)] ツールからの解析結果については、検証データが 0 に設定されます。 [フォレストベースおよびブースト分類と回帰分析 (Forest-based and Bo osted Classification and Regression)] ツールで [パラメーターの最適化] パラメーターが使用されていた場合、元のツール実行から得られた最適なパラメーターが交差検証に使用されます。

  • このツールでは、次の出力が生成されます:

    • 出力フィーチャ - トレーニング データセットとその中に含まれる各フィーチャのトレーニング結果と予測結果が記録されます。
    • 出力検証 - 各検証実行の評価メトリックが記録されます。
    このツールは、平均サンプル外診断統計値テーブルを含む、多くの有用なジオプロセシング メッセージも作成します。

パラメーター

ラベル説明データ タイプ
分析結果フィーチャ

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)][一般化線形回帰分析 (Generalized Linear Regression)]、または [Presence-only 予測 (Presence-only Prediction)] ツールからのトレーニング出力結果を含むフィーチャクラスです。 予測トレーニング結果は交差検証で評価されます。

Feature Layer
出力フィーチャ

元の独立変数、従属変数、および交差検証結果を要約した追加フィールドを含む出力フィーチャです。

Feature Class
出力整合チェック テーブル

各交差検証実行の評価メトリックを含む出力テーブルです。

Table
分析入力フィーチャ

分析結果フィーチャを生成した予測分析において使用される入力フィーチャです。

Feature Layer
評価タイプ
(オプション)

[分析結果フィーチャ] パラメーター値を K 個のグループに分割する方法を指定します。

  • ランダム K 分割分析結果フィーチャはランダムに K 個のグループに分割されます。 各グループには、同じ数またはほぼ同じ数のフィーチャが含まれます。 カテゴリー (分類) を予測する場合、従属変数のすべてのカテゴリーが各トレーニング グループに含まれます。 これがデフォルトです。
  • 空間 K 分割入力ポリゴンの重心またはポイントに対して K 平均クラスタリングを使用し、分析結果フィーチャを空間的に K 個のグループに分割します。 カテゴリー (分類) を予測する場合、従属変数のすべてのカテゴリーが各トレーニング グループに含まれます。 各グループは互いに空間的に分離されています。
String
グループ数
(オプション)

[分析結果フィーチャ] パラメーター値が分割されるグループ数です。 グループ数は 1 より大きくなければなりません。 デフォルトは 10 です。

Long
バランス調整タイプ
(オプション)

トレーニング グループ内の各従属変数カテゴリーのサンプル数をバランス調整する方法を指定します。 元のモデルがカテゴリー変数を予測した場合に有効になるパラメーターです。

  • なし分析結果フィーチャはバランス調整されません。 これがデフォルトです。
  • ランダム アンダーサンプリング少数クラスのフィーチャ数と一致するまで、各多数クラスからランダムにフィーチャが削除されます。
  • Tomek アンダーサンプリング各多数クラスにおいて、少数クラスのフィーチャに近いフィーチャが削除されます。 この方法によりクラス間の境界が改善されますが、クラスごとのフィーチャ数は異なる場合があります。
  • K-Medoids アンダーサンプリング多数クラスにおいて代表的でないフィーチャは、少数クラスのフィーチャ数と一致するまで削除されます。
  • ランダム オーバーサンプリング少数クラスのフィーチャは、フィーチャ数が多数クラスと一致するまでランダムに複製されます。
  • SMOTE (オーバーサンプリング)少数クラスでは、既存フィーチャ間での内挿によって合成フィーチャが生成され、フィーチャ数が多数クラスと一致するまで追加されます。
String

arcpy.stats.CrossValidate(analysis_result_features, out_features, out_table, analysis_input_features, {evaluation_type}, {num_groups}, {balancing_type})
名前説明データ タイプ
analysis_result_features

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)][一般化線形回帰分析 (Generalized Linear Regression)]、または [Presence-only 予測 (Presence-only Prediction)] ツールからのトレーニング出力結果を含むフィーチャクラスです。 予測トレーニング結果は交差検証で評価されます。

Feature Layer
out_features

元の独立変数、従属変数、および交差検証結果を要約した追加フィールドを含む出力フィーチャです。

Feature Class
out_table

各交差検証実行の評価メトリックを含む出力テーブルです。

Table
analysis_input_features

分析結果フィーチャを生成した予測分析において使用される入力フィーチャです。

Feature Layer
evaluation_type
(オプション)

analysis_result_features パラメーター値を K 個のグループに分割する方法を指定します。

  • RANDOM_KFOLD分析結果フィーチャはランダムに K 個のグループに分割されます。 各グループには、同じ数またはほぼ同じ数のフィーチャが含まれます。 カテゴリー (分類) を予測する場合、従属変数のすべてのカテゴリーが各トレーニング グループに含まれます。 これがデフォルトです。
  • SPATIAL_KFOLD入力ポリゴンの重心またはポイントに対して K 平均クラスタリングを使用し、分析結果フィーチャを空間的に K 個のグループに分割します。 カテゴリー (分類) を予測する場合、従属変数のすべてのカテゴリーが各トレーニング グループに含まれます。 各グループは互いに空間的に分離されています。
String
num_groups
(オプション)

analysis_result_features パラメーター値が分割されるグループ数です。 グループ数は 1 より大きくなければなりません。 デフォルトは 10 です。

Long
balancing_type
(オプション)

トレーニング グループ内の各従属変数カテゴリーのサンプル数をバランス調整する方法を指定します。 元のモデルがカテゴリー変数を予測した場合に有効になるパラメーターです。

  • NONE分析結果フィーチャはバランス調整されません。 これがデフォルトです。
  • RANDOM_UNDER少数クラスのフィーチャ数と一致するまで、各多数クラスからランダムにフィーチャが削除されます。
  • TOMEK_UNDER各多数クラスにおいて、少数クラスのフィーチャに近いフィーチャが削除されます。 この方法によりクラス間の境界が改善されますが、クラスごとのフィーチャ数は異なる場合があります。
  • KMED_UNDER多数クラスにおいて代表的でないフィーチャは、少数クラスのフィーチャ数と一致するまで削除されます。
  • RANDOM_OVER少数クラスのフィーチャは、フィーチャ数が多数クラスと一致するまでランダムに複製されます。
  • SMOTE_OVER少数クラスでは、既存フィーチャ間での内挿によって合成フィーチャが生成され、フィーチャ数が多数クラスと一致するまで追加されます。
String

コードのサンプル

CrossValidate の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、CrossValidate 関数の使用方法を示しています。

# Evaluate a predictive model with cross validation
import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb"

arcpy.stats.CrossValidate(
    analysis_result_features=r"in_analysis_result_features",
    out_features=r"out_feature",
    out_table=r"out_table",
    analysis_input_features=r"analyis_in_feature",
    evaluation_type="RANDOM_KFOLD",
    num_groups=10,
    balancing_type="NONE"
)
CrossValidate の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、CrossValidate 関数を使用する方法を示します。

# Evaluate a predictive model with cross validation

import arcpy 

# Set the current workspace.
arcpy.env.workspace = r"c:\data\project_data.gdb"

# Run tool

arcpy.stats.CrossValidate(
    analysis_result_features=r"in_analysis_result_features",
    out_features=r"out_feature",
    out_table=r"out_table",
    analysis_input_features=r"analyis_in_feature",
    evaluation_type="RANDOM_KFOLD",
    num_groups=10,
    balancing_type="NONE"
)

ライセンス情報

  • Basic: 制限付き
  • Standard: 制限付き
  • Advanced: 制限付き

関連トピック