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

サマリー

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

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

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

使用法

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

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

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

  • 出力されたメッセージとチャートの詳細については、「多変量クラスター分析 (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-means —k-means アルゴリズムで [入力フィーチャ] がクラスター化されます。これがデフォルトです。
  • k-medoids —k-medoids アルゴリズムで [入力フィーチャ] がクラスター化されます。
  • k-means —k-means アルゴリズムで [in_features] がクラスター化されます。これがデフォルトです。
  • k-medoids —k-medoids アルゴリズムで [入力フィーチャ] がクラスター化されます。
String
初期化方法
(オプション)

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

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

シード フィーチャを識別する数値フィールド。このフィールドが 1 であるフィーチャがクラスターの拡大の始点として使用されます。その他すべてのフィーチャにはゼロが含まれます。

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_MEANS] と [K_MEDOIDS] はいずれもよく使用されているクラスター アルゴリズムであり、ほとんどの場合に似た結果が生成されます。ただし、[K_MEDOIDS] の方が [in_features] のノイズと外れ値に対して強固です。[K_MEANS] は通常、[K_MEDOIDS] よりも処理速度が速いため、大規模なデータセットに適しています。

  • K_MEANSk-means アルゴリズムで [in_features] がクラスター化されます。これがデフォルトです。
  • K_MEDOIDSk-medoids アルゴリズムで [入力フィーチャ] がクラスター化されます。
String
initialization_method
(オプション)

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

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

シード フィーチャを識別する数値フィールド。このフィールドが 1 であるフィーチャがクラスターの拡大の始点として使用されます。その他すべてのフィーチャにはゼロが含まれます。

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())

環境

出力座標系

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

乱数ジェネレーター

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

関連トピック