クラスタリング
書式
clustering(table, method, scale=True, key_column=None, columns=None, weights=None, weights_def=None,
save_weights_as=None, spatial_col=None, crs=None, to_crs=None, plot=None, **kwargs)
パラメータ
次の表で、この事前定義済関数のパラメータについて説明します。
| パラメータ | 説明 |
|---|---|
method |
実行するクラスタリング・アルゴリズムを指定する文字列。 オプションは、DBSCAN、KMEANSおよびAGGLOMERATIVEです。 |
scale |
指定した場合、関数oml.createをコールして、指定した名前の表内の空間ラグを含むpandas DataFrameを格納します。
|
key_column |
定義すると、指定した列が結果のpandas DataFrameに追加されます。 それ以外の場合は、DataFrameの索引を持つ列が結果にアタッチされます。
|
columns |
トレーニング・セットを構成する機能を示す文字列の配列。 |
weights |
データ・ストアにすでに格納されている空間重みを使用する場合に必要です。 内部的には、関数olm.ds.loadをコールします。 サポートされているパラメータは、それぞれデータ・ストア名とオブジェクト名を示すds_nameおよびobj_nameです。
|
weights_def |
パラメータweightsが指定されていない場合は必須です。 近隣の場所間の関係を確立します。
これは、重み定義のタイプとそのパラメータを指定するjsonオブジェクトとして渡されます。 各パラメータの詳細は、APIリファレンスのドキュメントを参照してください。 サポートされているタイプとパラメータは次のとおりです。
|
save_weights_as |
weights_defが定義されている場合にのみ使用されます。 空間ウェイトをデータ・ストアに格納する方法を指定します。 値は、oml.ds.saveのパラメータを決定するjsonファイルです。 サポートされているパラメータは、[ds_name, obj_name, overwrite_ds, append, overwrite_obj, grantable, compression]です。 一部のパラメータ名は、oml.ds.save関数のパラメータ名と若干異なります。 パラメータoverwrite_objは、既存のオブジェクトを現在のオブジェクトで置き換える必要があるかどうかを示すために使用されます。
|
spatial_col |
ジオメトリを含む列を指定します。 列は表のメタデータで指定できます。 指定しない場合、列名は表から取得されます。 |
crs |
座標参照システムを指定します。 指定しない場合、表から推測されます。 |
to_crs |
指定した場合、座標参照システムは指定された値に変更されます。 |
plot |
プロット・クラスタ関数のプロパティを指定するディクショナリ。 定義すると、結果のクラスタを示すプロットがレスポンスに含まれます。 |
例
この例では、クラスタの数と空間重みのタイプを指定して、特定のデータセットに対してリージョン化アルゴリズムを使用してagglomerativeを実行する方法を示します。
クラスタリング・アルゴリズムはmethodパラメータで設定され、クラスタ数と空間加重はそれぞれn_clustersパラメータとweights_defパラメータで定義されます。 クラスタ化の対象となる機能は、columnsパラメータで指定されます。
select *
from table(
pyqEval(
'{
"oml_connect": true,
"table": "oml_user.la_block_groups",
"columns": ["median_income"],
"method": "AGGLOMERATIVE",
"n_clusters": 6,
"key_column": "geoid",
"weights_def": {"type": "Queen"}
}',
'{ "geoid": "VARCHAR2(50)", "label": "NUMBER" }',
'clustering'
)
);
結果には、key_columnパラメータで指定された索引列と各行のラベルが含まれ、それらが属しているクラスタが示されます。
SELECT IMAGE句およびtrueに設定されたoml_graphics_flagパラメータを使用して、クラスタをビジュアル化できます。 次のコードでは、plotパラメータは、ベース・マップをバックグラウンドとして使用することを示します。 また、出力形式( out_fmt)はPNGに設定されています。
select IMAGE
from table(
pyqEval(
par_lst => '{
"oml_connect": true,
"oml_graphics_flag": true,
"table": "oml_user.la_block_groups",
"columns": ["median_income"],
"method": "AGGLOMERATIVE",
"n_clusters": 6,
"key_column": "geoid",
"weights_def": {"type": "Queen"},
"plot": {"with_basemap": true}
}',
out_fmt => 'PNG',
scr_name => 'clustering'
)
);
結果は、割り当てられたクラスタに従って観測が色付けされたマップになります。 n_clustersパラメータで指定された6つのクラスタがあることに注意してください。 空間重みを定義することにより、集合クラスタリング・アルゴリズムはリージョン化を実行します。 つまり、同じクラスタに割り当てられた観測は共通の特性を共有し、地理的に接続されます。

