APPLY_KMEANS
按照已知 k-means 模型将输入关系的每一行分配给一个群集中心。
语法
APPLY_KMEANS ( input‑columns
USING PARAMETERS model_name = 'model‑name' [, match_by_pos = match‑by‑position] )
参数
- input‑columns
- 输入关系中要使用的列的逗号分隔列表,或者使用星号 (*) 选择所有列。
参数
model_name
模型的名称(不区分大小写)。
match_by_pos
该布尔值指定输入列如何与模型特征匹配:
-
false
(默认值):按名称匹配。 -
true
:按输入列列表中列的位置匹配。
-
特权
非超级用户:模型所有者或模型的使用权限
示例
以下示例创建 k-means 模型 myKmeansModel
并将其应用于输入表 iris1
。APPLY_KMEANS
的调用混合了列名和常量。当传递一个常量代替列名称时,该常量将替换该列在所有行中的值:
=> SELECT KMEANS('myKmeansModel', 'iris1', '*', 5
USING PARAMETERS max_iterations=20, output_view='myKmeansView', key_columns='id', exclude_columns='Species, id');
KMEANS
----------------------------
Finished in 12 iterations
(1 row)
=> SELECT id, APPLY_KMEANS(Sepal_Length, 2.2, 1.3, Petal_Width
USING PARAMETERS model_name='myKmeansModel', match_by_pos='true') FROM iris2;
id | APPLY_KMEANS
-----+--------------
5 | 1
10 | 1
14 | 1
15 | 1
21 | 1
22 | 1
24 | 1
25 | 1
32 | 1
33 | 1
34 | 1
35 | 1
38 | 1
39 | 1
42 | 1
...
(60 rows)