多変量クラスター分析 (Multivariate Clustering) (空間統計)

サマリー

フィーチャ属性値にのみ基づき、フィーチャの自然なクラスターを見つけます。

[多変量クラスター分析 (Multivariate Clustering)] の詳細

多変量クラスター分析ツールの図

使用法

  • このツールは、分析で使用されるフィールドに加え、新しい整数フィールド CLUSTER_ID も使用して出力フィーチャクラスを生成します。 デフォルトのレンダリングは CLUSTER_ID フィールドに基づき、各フィーチャがメンバーとなるクラスターを指定します。 たとえば、クラスター数を 3 に設定した場合、各レコードの CLUSTER_ID フィールドの値は 1、2、3 のいずれかになります。 出力フィーチャクラスには、IS_SEED というバイナリ フィーチャも含まれます。 IS_SEED フィールドには、クラスターを開始する始点として使用されたフィーチャが示されます。 IS_SEED フィールドのゼロ以外の値の数は、[クラスター数] パラメーターに入力した値と一致します。

  • [入力フィーチャ] パラメーターには、ポイント、ライン、またはポリゴンを指定できます。

  • このツールは、特定されたクラスターの特徴を理解するために役立つメッセージやチャートを作成します。 このメッセージにアクセスするには、[ジオプロセシング] ウィンドウで進行状況バーにカーソルを合わせるか、ポップアップ ボタンをクリックするか、[詳細の表示] セクションを展開します。 ジオプロセシング履歴を介して、以前に実行した [多変量クラスター分析 (Multivariate Clustering)] ツールのメッセージにアクセスすることもできます。 [コンテンツ] ウィンドウからチャートにアクセスします。

  • 出力されたメッセージとチャートの詳細については、「多変量クラスター分析の仕組み」をご参照ください。

  • [分析フィールド] パラメーターのフィールドは数値である必要があり、多様な値を含んでいる必要があります。 変化のないフィールド (つまり、どのレコードも値が同じかよく似ている) は解析から排除されますが、[出力フィーチャ] パラメーター値には含まれます。 [多変量クラスター分析 (Multivariate Clustering)] ツールでは、カテゴリ フィールドがダミー変数 (あるカテゴリに属するすべてのフィーチャは値 1、それ以外のすべてのフィーチャはゼロ) として表される場合にカテゴリ フィールドを使用できます。

  • [多変量クラスター分析 (Multivariate Clustering)] ツールは、非空間クラスターを作成します。 一部のアプリケーションでは、作成したクラスターに隣接または近接要件を適用できます。 その場合は、[空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールを使用し、空間的に隣接したクラスターを作成します。

  • このツールのベスト プラクティスとして、[分析フィールド] パラメーターに単一の変数を指定して開始し、その後、必要に応じて変数を追加します。 分析フィールドの数が少ないほうが、結果の解析が容易になります。 また、フィールドの数が少ないと、どの変数が最適な区別を実行するか判断しやすくなります。

  • [初期化方法] パラメーターには、[最適化シード ロケーション][ユーザー定義シード ロケーション][ランダム シード ロケーション] の 3 つのオプションがあります。 シードは、個々のクラスターを開始するときに使用されるフィーチャです。 たとえば、[クラスター数] パラメーターに 3 を入力した場合、分析は 3 つのシード フィーチャで開始されます。 デフォルトのオプションである [最適化シード ロケーション] では、最初のシードはランダムに選択され、データ空間内で互いに遠く離れているフィーチャを表すシードが選択されていきます (属性値)。 データ空間内で互いに異なる領域を補足する初期シードを選択すると、パフォーマンスが向上します。 それぞれのクラスターで表現したい個別の特性が、特定のフィーチャによって反映されている場合があります。 その場合、シード フィールドを作成して個別のフィーチャを識別することで、それらのロケーションを指定できます。 作成するシード フィールドには、初期シード フィーチャ以外ではすべてゼロを指定する必要があります。初期シード フィーチャには、値 1 を指定する必要があります。 次に、[初期化方法] パラメーターに [ユーザー定義シード ロケーション] オプションを選択します。 ある種の感度分析を実行して、同じクラスター内で常に見つかるフィーチャを確認したい場合は、[初期化方法] パラメーターに [ランダム シード ロケーション] オプションを選択します。 このオプションでは、シード フィーチャがランダムに選択されます。

    注意:

    ランダム シードを使用する場合は、乱数ジェネレーター環境設定で乱数ジェネレーターの実行を開始できるシードを選択することもできます。 ただし、このツールでは常に、乱数ジェネレーターとしてメルセンヌ ツイスター値が使用されます。

  • [初期化フィールド] パラメーターの値が 1 の場合、それはシードとして解釈されます。 シード ロケーションを指定する場合、[クラスター数] パラメーターは無効になります。ツールは [初期化フィールド] パラメーターにゼロ以外のエントリがある限り、クラスターの数を特定します。

  • データに最適な [クラスター数] パラメーター値がわからない場合は、クラスター数をいろいろと変えて試行し、クラスターの差別化に最適な数を見出すことが必要な場合があります。 [クラスター数] パラメーターを空白のままにすると、ツールは 2 ~ 30 クラスターのクラスター分析ソリューションについて疑似 F 統計量を計算し、クラスターの最適数を評価します。クラスターの最適数は、メッセージ ウィンドウに表示されます。 オプションの [クラスター数の評価用出力テーブル] パラメーター値を指定すると、2 ~ 30 のクラスターを含むソリューションの疑似 F 統計値を示すチャートが作成されます。 疑似 F 統計値が最大となるソリューションでは、同じクラスターに属するフィーチャ同士の相似性、違うクラスターに属するフィーチャ同士の相違性が両方とも最大になります。 [クラスター数] パラメーター値に対して他の基準がない場合は、疑似 F 統計値が最大になる値を、クラスター数として採用してください。 クラスターの最適数を特定する疑似 F 統計チャート

  • このツールでは、フィーチャをクラスターに区分するのに k-means または k-medoids のいずれかが使用されます。 [初期化方法] パラメーターで [ランダム シード ロケーション] を選択すると、アルゴリズムはヒューリスティクスを組み込み、ツールを実行するたびに異なる結果を返すことがあります (同じデータとツール パラメーターを使用している場合も同様)。 これは、クラスターの出発点とする初期シード フィーチャを見つける過程にランダムな要素があるためです。 このヒューリスティック ソリューションにより、クラスターの最適数を特定する作業が複雑になり、疑似 F 統計量はツールを実行するたびに違う結果を出すことがあります (初期シード フィーチャが異なるため)。 ただし、データに個別パターンが存在するときは、個々の実行によって得られるソリューションの一貫性が高くなります。 したがって、クラスターの最適数を特定するために、ツールは 2 ~ 30 の各クラスターに対して 10 倍もの解析を行い、その中から上位 10 個の疑似 F 統計値を使用します。

  • [K-means] オプションと [K-medoids] オプションでは、ほとんどの場合に似た結果が生成されます。 ただし、[K-medoids] の方が [入力フィーチャ] パラメーター値のノイズと外れ値に対して強固です。 [K-means] は通常、[K-medoids] よりも処理速度が速いため、大規模なデータセットに適しています。

  • 一連のフィーチャに割り当てられるクラスター番号は実行するたびに変わる可能性があります。 たとえば、所得変数に基づいてフィーチャを 2 つのクラスターに分割すると、解析の初回実行時に、高所得フィーチャがクラスター 2、低所得フィーチャがクラスター 1 とラベル付けされることがあります。 同じ解析を 2 回目に実行すると、高所得フィーチャがクラスター 1 となる場合があります。解析を実行するごとに、中所得フィーチャ群の一部が高所得クラスターと低所得クラスターの間を行ったり来たりする可能性があります。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

クラスターを作成するフィーチャクラスまたはフィーチャ レイヤー。

Feature Layer
出力フィーチャ

作成された出力フィーチャクラス。すべてのフィーチャ、指定した分析フィールド、および各フィーチャが属しているクラスターを示すフィールドが含まれています。

Feature Class
分析フィールド

クラスターを別のクラスターと区別するために使用するフィールドのリスト。

Field
クラスター分析方法
(オプション)

使用するクラスター アルゴリズムを指定します。

[K-means] オプションと [K-medoids] オプションでは、ほとんどの場合に似た結果が生成されます。 ただし、[K-medoids] の方が [入力フィーチャ] パラメーター値のノイズと外れ値に対して強固です。 [K-means] は通常、[K-medoids] よりも処理速度が速いため、大規模なデータセットに適しています。

  • k-meansK-means アルゴリズムで [入力フィーチャ] パラメーター値がクラスター化されます。 これがデフォルトです。
  • k-medoidsK-medoids アルゴリズムで [入力フィーチャ] パラメーター値がクラスター化されます。
String
初期化方法
(オプション)

クラスターを拡大する初期シードの取得方法を指定します。 たとえば、クラスター数を 3 と指定すると、分析は 3 つのシードで開始されます。

  • 最適化されたシード ロケーションシード フィーチャは解析結果とパフォーマンスを最適化するために選択されます。 これがデフォルトです。
  • ユーザー定義されたシード ロケーション[初期化フィールド] パラメーター値のゼロ以外の値は、クラスターを開始する始点として使用されます。
  • ランダムなシード ロケーション初期シード フィーチャはランダムに選択されます。
String
初期化フィールド
(オプション)

シード フィーチャを識別する数値フィールド。 このフィールドが 1 であるフィーチャがクラスターの拡大の始点として使用されます。 シードはクラスターを生成するため、少なくとも 2 つのシード フィーチャを指定する必要があります。

Field
クラスター数
(オプション)

作成されるクラスターの数。 このパラメーターを空白にすると、ツールは 2 ~ 30 のクラスターを持つクラスタリング ソリューションの疑似 F 統計量を計算することで、クラスターの最適数を評価します。

このパラメーターは、初期化フィールドでシード ロケーションが指定されている場合には無効になります。

Long
クラスター数の評価用出力テーブル
(オプション)

テーブルには、クラスタリング ソリューション 2 ~ 30 の疑似 F 統計量が含まれ、計算を行ってクラスターの最適数を評価します。 このテーブルから作成されたチャートには、[コンテンツ] ウィンドウのスタンドアロン テーブル セクションでアクセスできます。

Table

arcpy.stats.MultivariateClustering(in_features, output_features, analysis_fields, {clustering_method}, {initialization_method}, {initialization_field}, {number_of_clusters}, {output_table})
名前説明データ タイプ
in_features

クラスターを作成するフィーチャクラスまたはフィーチャ レイヤー。

Feature Layer
output_features

作成された出力フィーチャクラス。すべてのフィーチャ、指定した分析フィールド、および各フィーチャが属しているクラスターを示すフィールドが含まれています。

Feature Class
analysis_fields
[analysis_field,...]

クラスターを別のクラスターと区別するために使用するフィールドのリスト。

Field
clustering_method
(オプション)

使用するクラスター アルゴリズムを指定します。

K_MEANS オプションと K_MEDOIDS では、ほとんどの場合に似た結果が生成されます。 ただし、K_MEDOIDS の方が in_features パラメーター値のノイズと外れ値に対して強固です。 K_MEANSは通常、K_MEDOIDS よりも処理速度が速いため、大規模なデータセットに適しています。

  • K_MEANSK-means アルゴリズムで in_features パラメーター値がクラスター化されます。 これがデフォルトです。
  • K_MEDOIDSK-medoids アルゴリズムで in_features パラメーター値がクラスター化されます。
String
initialization_method
(オプション)

クラスターを拡大する初期シードの取得方法を指定します。 たとえば、クラスター数を 3 と指定すると、分析は 3 つのシードで開始されます。

  • OPTIMIZED_SEED_LOCATIONSシード フィーチャは解析結果とパフォーマンスを最適化するために選択されます。 これがデフォルトです。
  • USER_DEFINED_SEED_LOCATIONSinitialization_field パラメーター値のゼロ以外の値は、クラスターの拡大の始点として使用されます。
  • RANDOM_SEED_LOCATIONS初期シード フィーチャはランダムに選択されます。
String
initialization_field
(オプション)

シード フィーチャを識別する数値フィールド。 このフィールドが 1 であるフィーチャがクラスターの拡大の始点として使用されます。 シードはクラスターを生成するため、少なくとも 2 つのシード フィーチャを指定する必要があります。

Field
number_of_clusters
(オプション)

作成されるクラスターの数。 このパラメーターを空白にすると、ツールは 2 ~ 30 のクラスターを持つクラスタリング ソリューションの疑似 F 統計量を計算することで、クラスターの最適数を評価します。

このパラメーターは、初期化フィールドでシード ロケーションが指定されている場合には無効になります。

Long
output_table
(オプション)

テーブルには、クラスタリング ソリューション 2 ~ 30 の疑似 F 統計量が含まれ、計算を行ってクラスターの最適数を評価します。 このテーブルから作成されたチャートには、[コンテンツ] ウィンドウのスタンドアロン テーブル セクションでアクセスできます。

Table

コードのサンプル

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

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

import arcpy
arcpy.env.workspace = r"C:\Analysis"
arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism", 
                                   ["TOTPOP", "VACANT_CY", "UNEMP"], "K_MEANS", 
                                    "OPTIMIZED_SEED_LOCATIONS", None, "5")
MultivariateClustering の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、MultivariateClustering 関数の使用方法を示しています。

# Clustering Vandalism data in a metropolitan area
# using the Multivariate Clustering Tool

# Import system modules
import arcpy

# Set environment property to overwrite existing output, by default
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:\GA"

    # Join the 911 Call Point feature class to the Block Group Polygon feature 
    # class
    # Process: Spatial Join
    fieldMappings = arcpy.FieldMappings()
    fieldMappings.addTable("ReportingDistricts.shp")
    fieldMappings.addTable("Vandalism2006.shp")

    sj = arcpy.SpatialJoin_analysis("ReportingDistricts.shp", 
                                    "Vandalism2006.shp", "Dist_Vand.shp", 
                                    "JOIN_ONE_TO_ONE","KEEP_ALL", fieldMappings, 
                                    "COMPLETELY_CONTAINS")

    # Use the Multivariate Clustering tool to create groups based on different 
    # variables or analysis fields
    # Process: Cluster Similar Features  
    ga = arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism", 
                                            ["Join_Count", "TOTPOP", "VACANT_CY", "UNEMP"],
	             																														"K_MEANS", "OPTIMIZED_SEED_LOCATIONS", 
                                            None, 5)
    
    # Use Summary Statistic tool to get the Mean of variables used to group
    # Process: Summary Statistics
    SumStat = arcpy.Statistics_analysis("outVandalism", "outSS", 
                                        [["Join_Count", "MEAN"], 
                                         ["VACANT_CY", "MEAN"], 
                                         ["TOTPOP_CY", "MEAN"], 
                                         ["UNEMP_CY", "MEAN"]], 
                                        "GSF_CLUSTER")

except arcpy.ExecuteError:
    # If an error occurred when running the tool, print out the error message.
    print(arcpy.GetMessages())

環境

特殊なケース

出力座標系

フィーチャ ジオメトリは、解析の前に、出力データの座標系に投影変換されます。 すべての数学的演算は、出力座標系の空間参照に基づいて実行されます。 出力データの座標系が度、分、および秒に基づく場合、測地距離は弦距離を使用して推定されます。

乱数ジェネレーター

使用される乱数ジェネレーターのタイプは常にメルセンヌ ツイスターです。

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック