すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_ClusterKMeans

最終更新日:Mar 28, 2026

2 次元 K-means アルゴリズムを用いて、各ジオメトリオブジェクトにクラスター ID を割り当てます。

構文

integer ST_ClusterKMeans(geometry winset geom, integer numberOfClusters);

戻り値:各ジオメトリオブジェクトに割り当てられるクラスター ID を表す整数値です。

パラメーター

パラメーター説明
geomクラスタリング対象のジオメトリオブジェクトです。
numberOfClusters生成するクラスターの数です。

注意事項

  • ST_ClusterKMeans はウィンドウ関数です。OVER() 句を指定して呼び出してください。

  • クラスタリング距離は、入力ジオメトリオブジェクトの重心間の距離として計算されます。

基本的なクラスタリング

以下の例では、4 つの 2 次元ポイントを 2 つのグループにクラスタリングします。

SELECT ST_ClusterKMeans(geom, 2) OVER(), ST_AsText(geom)
FROM (
    SELECT unnest(ARRAY[
        'POINT (0 0)'::geometry,
        'POINT(1 1)'::geometry,
        'POINT (-1 -1)'::geometry,
        'POINT (-2 -2)'::geometry
    ]) AS geom
) AS test;

出力結果:

 st_clusterkmeans |  st_astext
------------------+--------------
                0 | POINT(0 0)
                0 | POINT(1 1)
                1 | POINT(-1 -1)
                1 | POINT(-2 -2)
(4 rows)