類似検索 (Similarity Search) (空間統計)

概要

フィーチャ属性に基づいて、どの候補フィーチャが 1 つ以上の入力フィーチャに最も類似しているか、または最も類似していないかを識別します。

[類似検索 (Similarity Search)] ツールの詳細

類似検索

使用法

  • 1 つ目のレイヤーに照合する入力フィーチャを指定し、2 つ目のレイヤーに照合するための候補フィーチャを指定します。多くの場合、照合する入力フィーチャ候補フィーチャは同じフィーチャ レイヤーが設定されます。2 つのデータセットを別々に作成するオプションがありますが、そうする必要はありません。それよりも、2 つの異なるフィルター設定を使用してレイヤーを作成するほうが簡単です。この 1 か月間に発生したすべての犯罪事件を格納したファイルがあるとします。最新の自動車乗っ取り事件に最も類似した犯罪をすべて見つけたい場合は、次のようにします。

    • すべての犯罪事件を表示するレイヤーをコピーし、[コンテンツ] に貼り付けて重複するレイヤーを作成します。そのレイヤーの名前を変更します。
    • 名前を変えたレイヤーで、最新の自動車乗っ取り事件を表す範囲を選択するか、またはフィルター設定を設定します。[照合する入力フィーチャ] パラメーターにこのレイヤーを使用します。
    • 最新の自動車乗っ取り事件が除外されるように、選択範囲を適用するか、または元のレイヤーのフィルター設定を設定します。[候補フィーチャ] パラメーターにこのレイヤーを使用します。

  • 照合する入力フィーチャが複数ある場合、照合は対象属性の平均値に基づいて行われます。そのため、たとえば、照合する入力フィーチャが 2 つあり、対象属性の 1 つが人口変数である場合、平均人口値に最も近い人口値を持つ候補フィーチャが検索されます。たとえば、人口値が 100 と 102 なら、人口が 101 に近い候補が検索されます。

    メモ:

    照合する入力フィーチャが複数ある場合、類似した値の対象属性を選択できます。たとえば、1 つの入力の人口値が 100、もう 1 つの入力の人口値が 100,000 なら、2 つの平均値である 50,050 に近い人口値で照合が行われます。この平均値は、どちらの照合する入力フィーチャの人口値にも近くないことに注目してください、

  • 照合する入力フィーチャ候補フィーチャが両方ともポリゴンまたはポリラインである場合を除いて、出力フィーチャには常にポイントが含まれます。ポリゴンまたはポリラインの出力フィーチャを作成すると、大きいデータセットでのパフォーマンスが低下する可能性があるため、[出力からポイントを作成] をオンにして強制的にポイント ジオメトリとすることで、パフォーマンスを改善することができます。

  • [類似度の高低] パラメーターを指定すると、照合する入力フィーチャ最も類似するまたは最も類似しないフィーチャを検索できます。必要に応じて、範囲の両端を確認することもできます。たとえば、[結果数] パラメーターに「3」、[類似度の高低] パラメーターに [両方] を入力すると、最も類似する 3 つの候補フィーチャと最も類似しない 3 つの候補フィーチャが返されます。

  • 出力フィーチャの一致結果は、ターゲットの照合する入力フィーチャに最も類似するか、最も類似しない結果のいずれかです。1 つの結果が両方を兼ねることはできません (また、出力フィーチャ内で一致結果が重複することもありません)。したがって、[類似度の高低] パラメーターに [両方] を選択すると、可能な一致結果の最大数 ([結果数]) は、候補フィーチャの半数になります。入力した [結果数] の値が大きすぎる場合は、ツールが可能な最大数に調整します。

  • 類似度の空間パターンを検討するために、すべての候補フィーチャの類似性をランク付けしたい場合があります。[結果数] パラメーターに「0」を入力すると、すべての候補フィーチャを簡単にランク付けできます。そうすると、ツールは候補データセット内の有効なフィーチャの数を判断し、そのすべてを最も類似するものから類似しないものへランク付けして、その順番に出力フィーチャに書き込みます。

  • [照合方法] パラメーターには、[属性値][ランク付けされた属性値]、または [属性プロファイル] を選択できます。

    • [属性値] の場合、すべての対象属性の差の二乗和 (SSD) が最も小さいものが最も類似した候補になります。差を計算する前に、すべての値が標準化されます。
    • [ランク付けされた属性値] の場合、すべての対象属性のランクの差の二乗和が最も小さいものが最も類似した候補になります。出力フィーチャは、SIMINDEX (ランクの差の二乗和) フィールドでこれらの合計を報告します。
    • [属性プロファイル] の場合、コサイン類似度が測定されます。コサイン類似度では、大きさを照合するのではなく、標準化された属性値の間で同じ関係を探します。A1、A2、A3、A4 という 4 つの対象属性があり、A2 は A1 の 2 倍の大きさで、A3 は A2 とほぼ同じ、A4 は A3 の 3 倍の大きさだとします。[属性プロファイル] 照合方法の場合、それらと同じ属性関係 (2 倍の大きさ、ほぼ同じ大きさ、3 倍の大きさ) を持つ候補を検索します。この方法は属性関係に注目するため、2 つ以上の対象属性を指定する必要があります。コサイン類似度方式 ([属性プロファイル]) を使用して、ロサンゼルスなどの場所を、より小さい縮尺で見つけることができます。コサイン類似度指標の範囲は、1.0 (完全に類似) から -1.0 (完全に相違) までです。コサイン類似度指標は、出力フィーチャ SIMINDEX (コサイン類似度) フィールドに書き込まれます。

  • 対象属性は、数値でなければならず、照合する入力フィーチャおよび候補フィーチャ データセットの両方に (同じフィールド名とフィールド タイプで) 存在する必要があります。対象属性パラメーターを指定すると、照合する入力フィーチャ データセット内で見つかったすべての数値フィールドが表示されます。候補フィーチャに対応するフィールドがない場合、存在しない属性が解析から除外されたことを知らせる警告が表示されます。すべての対象属性が除外されると、照合に使用する属性がなくなるため、ツールが解析を実行できないことを知らせるエラーが表示されます。

  • 照合に使用されたすべての属性が、出力フィーチャに書き込まれます。[出力に追加するフィールド] パラメーターを使用すると、必要に応じて他のフィールドを出力テーブルに含めることができます。対象属性の数値フィールドは有効な識別子にならない可能性が高いため、一致結果ごとに名前などの識別子フィールドを追加することができます。複数の一致結果によって判断する必要がある場合は、他の非数値属性を追加することもできます。たとえば、求めている結果がいくつかの土地利用タイプの 1 つでなければならない場合、カテゴリ土地利用属性を追加すると、この要件を満たす結果を絞り込むために役立ちます。場合によっては、参照目的で出力テーブルに追加の数値属性を含めることができます。たとえば、特定の動物の生息に適した場所を探しているとします。その種が適応している既知の場所を照合する入力フィーチャに使用することができます。種の適応に関連する [対象属性] を選択できます。さらに、数値範囲属性を出力フィーチャに追加できます。これは、実際にターゲットの範囲値と照合するためではなく、可能な最大の範囲で結果を探すためです。

  • 照合する入力フィーチャと一致結果はすべて、対象属性および出力に追加するフィールドと共に出力フィーチャに書き込まれます。さらに、次のフィールドが出力フィーチャに含められます。

    フィールド名フィールドのエイリアス説明注意事項

    MATCH_ID

    MATCH_ID

    照合する入力フィーチャ レイヤーのすべてのターゲット フィーチャが、MATCH_ID フィールドに書き込まれた OID または FID 識別子と共に最初に表示されます。一致結果のこのフィールドには NULL 値が入ります。

    出力フィーチャがシェープファイルの場合、NULL 値は非常に大きい負の数 (-21474836 など) で表されます。

    CAND_ID

    CAND_ID

    次にすべての一致結果が表示され、この値はその OID または FID 識別子になります。照合する入力フィーチャ レイヤーのターゲット フィーチャのこのフィールドには NULL 値が入ります。

    出力フィーチャがシェープファイルの場合、NULL 値は非常に大きい負の数 (-21474836 など) で表されます。

    SIMRANK

    類似ランク

    [照合方法] パラメーターに [最も類似する] または [両方] を選択すると、すべての一致結果が、最も類似するものから最も類似しないものへの順にランク付けされます。最も類似する一致結果は、ランク値が 1 になります。

    [照合方法] パラメーターに [最も類似する] または [両方] を選択した場合にのみ、このフィールドは出力フィーチャに含められます。

    DSIMRANK

    相違ランク

    [照合方法] パラメーターに [最も類似しない] または [両方] を選択すると、すべての一致結果が、最も類似しないものから最も類似するものへの順にランク付けされます。最も類似しない一致結果は、ランク値が 1 になります。

    [照合方法] パラメーターに [最も類似しない] または [両方] を選択した場合にのみ、このフィールドは出力フィーチャに含められます。

    SIMINDEX

    差の二乗和 (SSD)、ランクの差の二乗和、コサイン類似度

    このフィールドは、それぞれの一致結果がターゲット フィーチャにどれだけ類似しているかを定量化します。

    • [照合方法][属性値] を指定すると、フィールド エイリアスは二乗差の合計になります。
    • [照合方法][ランク付けされた属性値] を指定した場合、フィールド エイリアスはランクの差の二乗和になります。
    • [照合方法][属性プロファイル] を指定すると、フィールド エイリアスはコサイン類似度になります。
    これらの指標の計算方法の詳細については、「類似検索 (Similarity Search) の詳細」をご参照ください。

    照合する入力フィーチャが 1 つのみの場合、このフィーチャがターゲット フィーチャになります。複数の照合する入力フィーチャを指定した場合、すべての対象属性の平均値で作成される一時フィーチャがターゲット フィーチャになります。

    LABELRANK

    レンダリング ランク

    このフィールドは、表示のためにのみ使用されます。このツールは、このフィールドを使用して解析結果のデフォルトのレンダリングを提供します。

  • 出力フィーチャ レイヤーは自動的に [コンテンツ] ウィンドウに追加され、LABELRANK フィールドにはデフォルトのレンダリングが適用されます。適用されるレンダリングは、<ArcGIS Pro>\Resources\ArcToolBox\Templates\Layers にあるレイヤー ファイルによって定義されます。必要に応じて、[レイヤーのシンボル情報を適用 (Apply Symbology From Layer)] ツールを使用して、デフォルトのレンダリングを再適用できます。

    メモ:

    デフォルトのサンプル サイズは 10,000 レコードです。結果の数がこのデフォルトより大きい場合は、サンプル サイズを増加することによって、すべての結果をレンダリングする必要があります。サンプル サイズを増やすには、[シンボル] ウィンドウの メニュー をクリックして、[高度な設定] を選択します。[サンプル サイズ] オプションを展開して、[最大サンプル数] の値を変更します。

構文

SimilaritySearch(Input_Features_To_Match, Candidate_Features, Output_Features, Collapse_Output_To_Points, Most_Or_Least_Similar, Match_Method, Number_Of_Results, Attributes_Of_Interest, {Fields_To_Append_To_Output})
パラメーター説明データ タイプ
Input_Features_To_Match

照合するフィーチャを含むレイヤー (またはレイヤー上の選択セット)。これらのフィーチャに類似した他のフィーチャを探します。複数のフィーチャを指定すると、属性の平均に基づいて照合が行われます。

ヒント: 照合する入力フィーチャ候補フィーチャが 1 つのデータセット レイヤーから取得されるときは、次の操作を行うことができます。

  • レイヤーをコピーして [コンテンツ] に貼り付け、重複するレイヤーを作成します。
  • 重複するレイヤーの名前を変更します。
  • 名前を変えたレイヤーで、照合する参照フィーチャの選択を行うか、またはフィルター設定を設定します。[照合する入力フィーチャ] パラメーターに、作成した新規レイヤーを使用します。
  • 選択を適用するか、元のレイヤーに関するフィルター設定を設定して、参照フィーチャを除外します。これにより、[候補フィーチャ] パラメーターで使用できるレイヤーが得られます。

Feature Layer
Candidate_Features

照合する候補フィーチャを含むレイヤー (またはレイヤーの選択セット)。このツールは、Input_Features_To_Match に最も類似する (または最も類似しない) フィーチャを、これらの候補の中から探します。

Feature Layer
Output_Features

出力フィーチャクラスには、Input_Features_To_Match ごと、および見つかったすべての一致結果フィーチャに対応したレコードが入ります。

Feature Class
Collapse_Output_To_Points

Input_Features_To_MatchCandidate_Features が両方ともラインまたはポリゴンの場合、Output_Features のジオメトリをポイントに単純化するか、入力フィーチャの元のジオメトリ (ラインまたはポリゴン) に一致させるかを選択できます。このオプションは、Desktop Advanced ライセンスでのみ利用可能です。大きいラインまたはポリゴン データセットで COLLAPSE を選択すると、ツールのパフォーマンスが向上します。

  • COLLAPSEライン フィーチャとポリゴン フィーチャは、フィーチャの重心 (ポイント) として表されます。
  • NO_COLLAPSE出力ジオメトリは、入力フィーチャのラインまたはポリゴン ジオメトリに一致します。これがデフォルトです。
Boolean
Most_Or_Least_Similar

に最も類似するフィーチャまたは最も類似しないフィーチャのいずれに関心があるかを選択します。Input_Features_To_Match

  • MOST_SIMILAR最も類似するフィーチャを見つけます。
  • LEAST_SIMILAR最も類似しないフィーチャを見つけます。
  • BOTH最も類似するフィーチャと最も類似しないフィーチャの両方を見つけます。
String
Match_Method

照合を値、ランク、またはコサイン関係のいずれに基づいて行うか選択します。

  • ATTRIBUTE_VALUES類似度または相違度は、すべての対象属性の標準化した属性値の差の二乗和に基づきます。
  • RANKED_ATTRIBUTE_VALUES類似度または相違度は、すべての対象属性のランクの差の二乗和に基づきます。
  • ATTRIBUTE_PROFILES類似度または相違度は、すべての対象属性のコサイン類似度の関数として計算されます。
String
Number_Of_Results

検索する一致結果の数。0 または Candidate_Features の合計数より大きい数字を入力すると、すべての候補フィーチャのランキングが返されます。

Long
Attributes_Of_Interest
[field,...]

照合基準を表す数値属性の一覧。

Field
Fields_To_Append_To_Output
[field,...]
(オプション)

Output_Features に含まれるオプションの属性の一覧。たとえば、名前識別子、カテゴリ フィールド、日付フィールドなどを含めることができます。これらのフィールドは類似度を判断するために使用されるものではなく、参照用として Output_Features に含められます。

Field

コードのサンプル

SimilaritySearch (類似検索) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SimilaritySearch (類似検索) ツールの使用方法を示しています。

import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\Analysis"
SS.SimilaritySearch ("Crime_selection", "AllCrime", "c:\\Analysis\\CrimeMatches", 
                     "NO_COLLAPSE", "MOST_SIMILAR", "ATTRIBUTE_VALUES", 4, 
                     "HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP", "Name;WEAPON")
SimilaritySearch (類似検索) の例 2 (スタンドアロン Python スクリプト)

次のスタンドアロン Python スクリプトは、SimilaritySearch (類似検索) ツールの使用方法を示しています。

# Similarity Search of crime data in a metropolitan area
# Import system modules
import arcpy
import os
import arcpy.stats as SS
# Set property to overwrite existing output
arcpy.env.overwriteOutput = True
try:
    # Set the current workspace (to avoid having to specify the full path to
    # the feature classes each time)
    arcpy.env.workspace = r"C:\Analysis"
    # Make a layer from the crime feature class
    arcpy.MakeFeatureLayer_management("AllCrime", "Crime_selection") 
    # Select the target crime to match
    # Process: Select By Attribute
    arcpy.SelectLayerByAttribute_management("Crime_selection", "NEW_SELECTION",
                                            '"OBJECTID" = 1230043')
    # Use Similarity Search to find  to create groups based on different variables 
    # or analysis fields
    # Process: Group Similar Features  
    SS.SimilaritySearch("Crime_selection", "AllCrime", "CJMatches", "NO_COLLAPSE",
                        "MOST_SIMILAR", "ATTRIBUTE_VALUES", 4,
                        "HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP", "Name;WEAPON")
    
except:
    # If an error occurred when running the tool, print out the error message.
    print(arcpy.GetMessages())

ライセンス情報

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

関連トピック