フィールドのエンコード (Encode Field) (データ管理)

概要

カテゴリ値 (文字列、整数、または日付) を複数の数値フィールド (それぞれが 1 つのカテゴリを表す) に変換します。エンコードされた数値フィールドは、ほとんどのデータ サイエンス ワークフローと統計ワークフロー (回帰モデルを含む) で使用できます。

[フィールドのエンコード (Encode Field)] ツールの図

使用法

  • このツールは、次のエンコード手法に対応しています。

    • [One-hot] - 各カテゴリ値を新しい列に変換して 0 または 1 を割り当てます。値 1 は、そのカテゴリ値が存在することを表します。
    • [One-cold] - 各カテゴリ値を新しい列に変換して 0 または 1 を割り当てます。値 0 は、そのカテゴリ値が存在することを表します。
    • [時系列] - 時間ステップ間隔に基づいて、エンコードするフィールド内の各日付値を整数値 (0、1、2 など) に変換します。同じ時間ステップ間隔に含まれる日付はすべて、同じ整数と共にエンコードされます。[時系列] 手法を使用する場合は、エンコードされた時間ステップを含む時間ステップ フィールド、時間間隔の開始時間を含む開始時間フィールド、時間間隔の終了時間を含む終了時間フィールドという 3 つのフィールドが作成されます。

  • このツールを実行すると、入力データが変更され、新しいエンコード後のフィールドが入力テーブルまたはフィーチャクラスに追加されます。

  • [エンコード手法] パラメーターで [One-hot] 手法または [One-cold] 手法を選択すると、フィールドの数が、エンコード対象として選択したフィールド内のカテゴリ値 (テキストと整数を含む) の数と同じになります。[時系列] エンコード手法を使用する場合は、[時間ステップの間隔] パラメーターの値に基づいて時間ステップの間隔が生成され、時間ステップ、開始時間、および終了時間を含む 3 つのフィールドが作成されます。

  • [時間ステップの間隔] パラメーターを使用できるのは、[エンコード手法] パラメーターで [時系列] 手法が選択されている場合に限ります。時系列値は、時間が含まれている 1 つの時間ステップに集約されます。時間ステップ間隔の単位は、秒、分、時間、日、週、月、または年です。

  • [時間ステップの配列] パラメーターでは、一定の時間ステップ間隔で集約を実行する方法を定義します。[終了時間] オプションを選択すると、最後の時間イベントを基準に時間ステップが配列され、時間を遡って集約されます。[開始時間] オプションを選択すると、最初の時間イベントを基準に時間ステップが配列され、時間を前進して集約されます。[基準時間] オプションを選択すると、特定の日付と時刻を指定し、その日時を基準に時間ステップを配列することができます。

    時間ステップの配列の詳細

構文

arcpy.management.EncodeField(in_table, field, {method}, {time_step_interval}, {time_step_alignment}, {reference_time})
パラメーター説明データ タイプ
in_table

エンコードされるフィールドを含む入力テーブルまたはフィーチャクラス。フィールドは既存の入力テーブルに追加されるため、新しい出力テーブルが作成されません。

Table View; Raster Layer; Mosaic Layer
field

エンコードされるカテゴリ値または時系列値を含むフィールド。

Field
method
(オプション)

[エンコード対象フィールド] パラメーターに含まれている値のエンコードに使用する手法を指定します。

  • ONEHOT各カテゴリ値が新しいフィールドに変換され、値 0 および 1 が割り当てられます。値 1 は、そのカテゴリ値が存在することを表します。これがデフォルトです。
  • ONECOLD 各カテゴリ値が新しいフィールドに変換され、値 0 および 1 が割り当てられます。値 0 は、そのカテゴリ値が存在することを表します。
  • TEMPORAL指定された時間ステップの間隔、時間ステップの配列、および基準時間に基づいて、[エンコード対象フィールド] パラメーターに含まれている各時系列値が整数に変換されます。
String
time_step_interval
(オプション)

1 つの時間ステップを表す秒、分、時間、日、週、または年の数。時系列値は、時間が含まれている特定の時間ステップに集約されます。値を指定しないと、時間ステップ間隔の最適な数と幅を決定するのに使用できる 2 つのアルゴリズムに基づいてデフォルトの時間ステップ間隔が設定されます。2 つの結果のうち、値の小さい方が時間ステップ間隔として使用されます。

Time Unit
time_step_alignment
(オプション)

[時間ステップの間隔] パラメーターの値に基づいて集約方法を指定します。

  • END_TIME 時間ステップは最後の時間イベントに揃えられ、前の時間が集約されます。これがデフォルトです。
  • START_TIME 時間ステップは最初の時間イベントに揃えられ、後の時間が集約されます。
  • REFERENCE_TIME [基準時間] パラメーターで指定された日付と時刻を基準に時間ステップが配列されます。集約は、最初の時系列値または最後の時系列値に達するまで、基準時間から時間を前進して行われるか、時間を遡って行われます。
String
reference_time
(オプション)

時間ステップ間隔の配列の基準となる日付と時刻。たとえば、データを月曜日から日曜日までの 1 週間でビン化するには、日曜日の基準時間を午前 0 時に設定して、時間ステップが日曜日と月曜日の間の午前 0 時に分かれるようにします。

この値として、日付と時刻または日付のみを指定することはできますが、時刻のみを指定することはできません。必要な形式は、コンピューターの地域の時間設定によって決まります。

Date

派生した出力

名前説明データ タイプ
updated_table

追加されたエンコード済みのフィールドを含むテーブル。

テーブル ビュー

コードのサンプル

EncodeField (フィールドのエンコード) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、EncodeField ツールの使用方法を示しています。

arcpy.management.EncodeField("San_Francisco_Crimes", 
                    "Category", "ONEHOT", '', None, "END_TIME")
EncodeField (フィールドのエンコード) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、EncodeField ツールの使用方法を示しています。

# Import system modules.
import arcpy
try:
    # Set the workspace and input features.
    arcpy.env.workspace = r"C:\\Encoded\\MyData.gdb"
    inputFeatures = 'San_Francisco_Crimes'
    # Set input features, dependent variable, and explanatory variable.
    in_table = 'San_Francisco_Crimes'
    field = 'Dates'
    # Set encoding Method
    encoding_method = "TEMPORAL"
    # Set time Step Interval
    time_step_interval = '1 Days'
    # Set Time Step Alignment
    time_step_alignment = "START_TIME"
    # Run Encode Field Tool.
    arcpy.management.EncodeField(in_table, field, encoding_method, 
                    None, time_step_interval, time_step_alignment)
except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the error message.
    print(arcpy.GetMessages())

環境

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック