在BigQuery中,聚类是一种用于将数据分组成相似项的分析技术。BigQuery使用k-means算法来执行聚类。以下是一个包含代码示例的解决方法:
CREATE TABLE my_table (
age INT64,
income FLOAT64
);
INSERT INTO my_table (age, income)
VALUES
(25, 50000),
(30, 60000),
(35, 70000),
(40, 80000),
(45, 90000),
(50, 100000);
WITH clusters AS (
SELECT
age,
income,
ML.KMEANS_CLUSTER(
STRUCT(age, income) AS point,
3, -- 聚类的数量
STRUCT(0.01 AS init_random_centroids_fraction) -- 可选参数
).*
FROM
my_table
)
SELECT
centroid_id,
COUNT(*) AS num_points,
APPROX_QUANTILES(point.age, 3)[OFFSET(1)] AS median_age,
APPROX_QUANTILES(point.income, 3)[OFFSET(1)] AS median_income
FROM
clusters
GROUP BY
centroid_id;
在上述查询中,我们使用ML.KMEANS_CLUSTER
函数来执行聚类。指定要聚类的数据点,以及聚类的数量和可选参数。在本例中,我们将数据点指定为包含age
和income
的结构体。我们还使用APPROX_QUANTILES
函数来计算每个聚类的中位数年龄和收入。
| centroid_id | num_points | median_age | median_income |
|-------------|------------|------------|---------------|
| 0 | 2 | 27.5 | 55000 |
| 1 | 2 | 37.5 | 75000 |
| 2 | 2 | 47.5 | 95000 |
在本例中,我们将数据分为3个聚类,并计算了每个聚类的中位数年龄和收入。
这就是在BigQuery中执行聚类的基本步骤和代码示例。你可以根据自己的需求调整查询和参数。