ランダム ツリーによる分類器定義ファイルの作成 (Train Random Trees Classifier) (Image Analyst)

Spatial Analyst のライセンスで利用可能。

Image Analyst ライセンスで利用できます。

サマリー

ランダム ツリー分類方法を使用して、Esri 分類器定義ファイル (*.ecd) を作成します。

ランダム ツリーによる分類器定義は、過剰適合を低減し、セグメント化された画像やその他の補助ラスター データセットを操作できる画像分類手法です。標準的な画像入力の場合、このツールは任意のビット深度のマルチバンド画像を受け入れ、入力トレーニング フィーチャ ファイルに基づいてピクセル ベースまたはセグメントに基づいてランダム ツリー分類を実行します。

使用法

  • ランダム ツリー分類手法は、個々の意思決定ツリーのコレクションです。各ツリーは、トレーニング データのさまざまなサンプルやサブセットから生成されます。これらが意思決定ツリーと呼ばれるのは、分類されるすべてのピクセルに対して、重要性のランク順に多くの意思決定が行われるためです。ピクセルに対する意思決定を図にすると、木の枝のようになります。データセット全体を分類すると、この木の枝から樹木が形成されます。この方法は、トレーニング ピクセルのランダムな副選択に基づき、データセットを実際に多くの回数分類して、多くの意思決定ツリーを作成するため、ランダム ツリーと呼ばれます。最終的な意思決定を行うために、各ツリーには決定権があります。このプロセスは、過剰適合を低減する役割を果たします。ランダム ツリー分類方法は、多数の意思決定の構築に基づいた、教師付きコンピューター学習分類器です。各ツリーに対して変数のランダムなサブセットを選択し、ツリー出力の最頻値を全体の分類として使用します。ランダム ツリー分類手法は、トレーニング サンプル データに過剰適合する意思決定ツリーの傾向を矯正します。この手法では、多くのツリーが成長して森林のようになり、各ツリーの適合前にトレーニング データをランダムに選択されたサブスペースに投影することで、ツリー間のばらつきを生じさせています。各ノードでの決定は、ランダム化された手順によって最適化されます。

  • セグメント ラスターの場合、キー プロパティが [セグメント化] に設定されており、このツールは RGB セグメント ラスターからインデックス画像と、関連するセグメント属性を計算します。これらの属性は、別の分類ツールで使用される分類器定義ファイルを生成するために計算されます。各セグメントの属性は、Esri でサポートされている画像から計算できます。

  • ラスター製品、セグメント化されたラスター、モザイク、イメージ サービス、一般的なラスター データセットなど、Esri でサポートされているラスターは入力として受け入れられます。セグメント ラスターは 3 バンドの 8 ビット ラスターである必要があります。

  • トレーニング サンプル ファイルを作成するには、[分類ツール] ドロップダウン メニューから [トレーニング サンプル マネージャー] ウィンドウを使用します。

  • [セグメント属性] パラメーターは、ラスター レイヤー入力のうちのいずれかがセグメント画像である場合にのみ、アクティブになります。

  • CCDC (Continuous Change Detection and Classification) アルゴリズムを使用して時系列ラスター データを分類するには、まず [CCDC を使用した変化の解析 (Analyze Changes Using CCDC)] ツールを実行し、出力変化解析ラスターをこのトレーニング ツールの入力ラスターとして使用します。

    トレーニング サンプル データは、[トレーニング サンプル マネージャー] を使用して複数回収集されている必要があります。 各サンプルのディメンション値は、トレーニング サンプル フィーチャクラスのフィールドにリストされています。このフィールドは、[ディメンション値フィールド] パラメーターで指定します。

パラメーター

ラベル説明データ タイプ
入力ラスター

分類対象のラスター データセット。

Esri でサポートされているラスター データセットを使用できます。選択肢の 1 つとして、3 バンドの 8 ビット セグメント ラスター データセットがあります。ここでは、同じセグメント内のすべてのピクセルは同じ色を持ちます。入力は、シングル バンドの 8 ビット グレースケール セグメント ラスターにすることもできます。

Raster Layer; Mosaic Layer; Image Service; String
入力トレーニング サンプル ファイル

トレーニング サイトを表すトレーニング サンプル ファイルまたはレイヤー。

これらは、トレーニング サンプルを含んでいる、シェープファイルまたはフィーチャクラスです。 トレーニング サンプル ファイルには、次のフィールド名が必要です。

  • classname— クラス カテゴリ名を示すテキスト フィールド
  • classvalue— 各クラス カテゴリの整数値を含む long integer フィールド

Feature Layer
出力分類器定義ファイル

分類器に関する属性情報、統計情報、その他の情報を含んでいる JSON ファイルです。*.ecd ファイルが作成されます。

File
追加入力ラスター
(オプション)

マルチスペクトル画像や DEM などの補助ラスター データセットを取り入れて、分類の属性やその他の必要な情報を生成できます。 このパラメーターはオプションです。

Raster Layer; Mosaic Layer; Image Service; String
ツリーの最大数
(オプション)

フォレスト内のツリーの最大数。ツリー数を増やすと、精度率が高くなります。ただし、この向上は最終的には一定になります。ツリー数は、処理時間を線形的に増加させます。

Long
最大ツリー階層
(オプション)

フォレスト内の各ツリーの最大深度。深度は、各ツリーが意思決定に至るまでに作成できるルールの数を示すもう 1 つの方法です。ツリーは、この設定を超えた深度には成長しません。

Long
クラスあたりの最大サンプル数
(オプション)

各クラスの定義に使用されるサンプルの最大数。

入力がセグメント ラスターでない場合は、デフォルトの値 1000 を推奨します。0 以下の値は、システムが分類器をトレーニングするためにトレーニング サイトのすべてのサンプルを使用することを意味します。

Long
セグメント属性
(オプション)

出力ラスターに関連付けられた属性テーブルに含める属性を指定します。

  • 収束色 —RGB カラー値は、入力ラスターからセグメント単位で取得されます。
  • 平均デジタル ナンバー —セグメント単位でオプションのピクセル画像から得られる平均デジタル ナンバー (DN)。
  • 標準偏差 —セグメント単位でオプションのピクセル画像から得られる標準偏差。
  • ピクセル数 —セグメント単位で、セグメントを構成するピクセル数。
  • コンパクト性 —セグメント単位で、セグメントがコンパクトまたは円形である程度。 値の範囲は 0 から 1 で、1 は円形です。
  • 矩形性 —セグメント単位で、セグメントが矩形である程度。 値の範囲は 0 から 1 で、1 は矩形です。
String
ディメンション値フィールド
(オプション)

入力トレーニング サンプル フィーチャクラスのディメンション値が含まれます。

このパラメーターは、[CCDC を使用した変化の解析 (Analyze Changes Using CCDC)] ツールから出力された変化解析ラスターを使用して時系列のラスター データを分類する際に必要となります。

Field

TrainRandomTreesClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})
名前説明データ タイプ
in_raster

分類対象のラスター データセット。

Esri でサポートされているラスター データセットを使用できます。選択肢の 1 つとして、3 バンドの 8 ビット セグメント ラスター データセットがあります。ここでは、同じセグメント内のすべてのピクセルは同じ色を持ちます。入力は、シングル バンドの 8 ビット グレースケール セグメント ラスターにすることもできます。

Raster Layer; Mosaic Layer; Image Service; String
in_training_features

トレーニング サイトを表すトレーニング サンプル ファイルまたはレイヤー。

これらは、トレーニング サンプルを含んでいる、シェープファイルまたはフィーチャクラスです。 トレーニング サンプル ファイルには、次のフィールド名が必要です。

  • classname— クラス カテゴリ名を示すテキスト フィールド
  • classvalue— 各クラス カテゴリの整数値を含む long integer フィールド

Feature Layer
out_classifier_definition

分類器に関する属性情報、統計情報、その他の情報を含んでいる JSON ファイルです。*.ecd ファイルが作成されます。

File
in_additional_raster
(オプション)

マルチスペクトル画像や DEM などの補助ラスター データセットを取り入れて、分類の属性やその他の必要な情報を生成できます。 このパラメーターはオプションです。

Raster Layer; Mosaic Layer; Image Service; String
max_num_trees
(オプション)

フォレスト内のツリーの最大数。ツリー数を増やすと、精度率が高くなります。ただし、この向上は最終的には一定になります。ツリー数は、処理時間を線形的に増加させます。

Long
max_tree_depth
(オプション)

フォレスト内の各ツリーの最大深度。深度は、各ツリーが意思決定に至るまでに作成できるルールの数を示すもう 1 つの方法です。ツリーは、この設定を超えた深度には成長しません。

Long
max_samples_per_class
(オプション)

各クラスの定義に使用されるサンプルの最大数。

入力がセグメント ラスターでない場合は、デフォルトの値 1000 を推奨します。0 以下の値は、システムが分類器をトレーニングするためにトレーニング サイトのすべてのサンプルを使用することを意味します。

Long
used_attributes
[used_attributes;used_attributes,...]
(オプション)

出力ラスターに関連付けられた属性テーブルに含める属性を指定します。

  • COLORRGB カラー値は、入力ラスターからセグメント単位で取得されます。
  • MEANセグメント単位でオプションのピクセル画像から得られる平均デジタル ナンバー (DN)。
  • STDセグメント単位でオプションのピクセル画像から得られる標準偏差。
  • COUNTセグメント単位で、セグメントを構成するピクセル数。
  • COMPACTNESSセグメント単位で、セグメントがコンパクトまたは円形である程度。 値の範囲は 0 から 1 で、1 は円形です。
  • RECTANGULARITYセグメント単位で、セグメントが矩形である程度。 値の範囲は 0 から 1 で、1 は矩形です。

このパラメーターは、入力ラスターで [セグメント化] キー プロパティを true に設定した場合にのみ有効になります。 このツールへの入力が、セグメント画像のみである場合、デフォルトの属性は COLORCOUNTCOMPACTNESS、および RECTANGULARITY になります。 セグメント画像とともに in_additional_raster 値が入力として含まれている場合、MEAN および STD 属性も使用できます。

String
dimension_value_field
(オプション)

入力トレーニング サンプル フィーチャクラスのディメンション値が含まれます。

このパラメーターは、[CCDC を使用した変化の解析 (Analyze Changes Using CCDC)] ツールから出力された変化解析ラスターを使用して時系列のラスター データを分類する際に必要となります。

Field

コードのサンプル

TrainRandomTreesClassifier (ランダム ツリーによる分類器定義ファイルの作成) の例 1 (Python ウィンドウ)

以下は、TrainRandomTreesClassifier ツールを実行する Python サンプルです。

import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

TrainRandomTreesClassifier("c:/test/moncton_seg.tif",
                           "c:/test/train.gdb/train_features",
                           "c:/output/moncton_sig_SVM.ecd",
                           "c:/test/moncton.tif", "50", "30", "1000",
                           "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainRandomTreesClassifier (ランダム ツリーによる分類器定義ファイルの作成) の例 2 (スタンドアロン スクリプト)

以下は、TrainRandomTreesClassifier ツールを実行する Python スクリプト サンプルです。

# Import system modules
import arcpy
from arcpy.ia import *

# Set local variables
inSegRaster = "c:/test/cities_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/cities_sig.ecd"
in_additional_raster = "c:/cities.tif"
maxNumTrees = "50"
maxTreeDepth = "30"
maxSampleClass = "1000"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute
TrainRandomTreesClassifier(inSegRaster, train_features,
                           out_definition, in_additional_raster, maxNumTrees,
                           maxTreeDepth, maxSampleClass, attributes)
TrainRandomTreesClassifier (ランダム ツリーによる分類器定義ファイルの作成) の例 3 (スタンドアロン スクリプト)

次の例は、[CCDC を使用した変更の解析 (Analyze Changes Using CCDC)] ツールの変更解析ラスターを使用してランダム ツリー分類器により分類器定義ファイルを作成する方法を示しています。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")


# Define input parameters
in_changeAnalysisRaster = "c:/test/LandsatCCDC.crf"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/change_detection.ecd"
in_additional_raster = ""
maxNumTrees = 50
maxTreeDepth = 30
maxSampleClass = 1000
attributes = None
dimension_field = "DateTime"

# Execute
arcpy.ia.TrainRandomTreesClassifier(
	in_changeAnalysisRaster, train_features, out_definition, 
	in_additional_raster, maxNumTrees, maxTreeDepth, maxSampleClass, 
	attributes, dimension_field)

関連トピック