面灵AI→

华为 AI 岗机考:X-Means 聚类题 300 分全绿通过

轮次
机考
时间
2026-10
来源
牛客网

《面试题目》

  1. 实现 X-Means:在给定范围 [Kmin, Kmax] 内自动选择 K 的 K-Means 聚类,按指定规则初始化、迭代、合并与输出。

《参考解析》

X-Means 的核心是「用 BIC 给不同 K 打分」。对每个候选 K 跑一遍 K-Means,收敛后计算该划分的 BIC(似然项减模型复杂度惩罚),取 BIC 最小的 K 作为结果。BIC 的直觉是「拟合得好但参数少」的模型更优,避免 K 越大越好。

题目给的初始化是确定性的:先按第一维排序,均匀取初始中心,不随机。这样结果可复现,也避免了随机初始化带来的波动。迭代过程是标准 K-Means:每个点分到最近中心(同距选小编号)、中心更新为簇内均值、直到归属不变。

收敛后的合并:如果两个中心的距离平方小于阈值(题里是 1e-4),就合并并更新实际簇数。这一步是为了防止出现几乎重合的簇。

输出细节别丢分:选全局 BIC 最小的结果后,按中心第一维从小到大重新编号,中心保留两位小数,再输出每个样本的标签。机考里格式错误和算法错误一样扣分,写完先拿题面样例对一遍。