You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中评估K-means聚类准确率的可用函数咨询

MATLAB环境下K-means聚类效果评估实现方案

你构建的二维测试数据集由点坐标与真实簇标签两部分构成,每个样本点对应一组X/Y二维坐标与所属真实簇编号,数据集分布示例如下:
二维带真实标签聚类数据集示例

核心注意:K-means输出的簇标签是无语义的随机编号,和真实标签的数值不存在固定对应关系,不能直接逐元素对比数值计算准确率,必须先完成标签的最优映射对齐。


一、整体聚类标签匹配准确率计算

要统计K-means输出簇标签和真实标签匹配的样本占比,按以下步骤实现:

  • 基于预测标签和真实标签构建簇间混淆矩阵
  • 用匈牙利(Munkres)算法求解标签的最优映射关系,最大化匹配正确的样本数
  • 将预测标签按映射关系转换为和真实标签同编号规则的标签,再逐元素对比计算准确率

首先约定变量规则:

  • X:n×2矩阵,存储所有样本点的X、Y坐标
  • true_labels:n×1向量,存储每个样本对应的真实簇标签
  • pred_labels:n×1向量,为kmeans函数返回的第一个输出参数,即K-means输出的簇分配结果

参考实现代码

% 统计簇总数
cluster_num = length(unique(true_labels));
% 构建混淆矩阵
confusion_mat = zeros(cluster_num, cluster_num);
for i = 1:cluster_num
    for j = 1:cluster_num
        confusion_mat(i,j) = sum(pred_labels == i & true_labels == j);
    end
end
% 调用内置matchpairs求解最优匹配,无该函数可替换为公开极简匈牙利算法实现
[match_pair, ~] = matchpairs(-confusion_mat, 1e6);
% 映射预测标签到真实标签编号体系
mapped_pred = zeros(size(pred_labels));
for i = 1:size(match_pair,1)
    mapped_pred(pred_labels == match_pair(i,1)) = match_pair(i,2);
end
% 计算最终准确率
cluster_acc = sum(mapped_pred == true_labels) / length(true_labels);
fprintf('K-means聚类标签匹配准确率为:%.2f%%\n', cluster_acc*100);

补充:如果需要快速计算聚类结果和真实划分的相似度,也可以直接调用adjustedRandIndex(pred_labels, true_labels)得到调整兰德指数,该指标取值范围为[-1,1],越接近1说明聚类结果和真实划分越一致,不需要做标签对齐,但该指标不属于「正确样本占比」形式的准确率。


二、指定坐标点是否同簇的校验

校验两个指定坐标点是否被分到同一簇时,不需要做标签对齐——因为同一簇的样本无论被分配什么编号,对应的预测标签值一定相同,只需先找到两个点在数据集中的对应索引,再对比索引对应的预测标签即可。

参考实现代码

% 待校验的两个点坐标
point_a = [7.200592168, 11.73878455];
point_b = [6.951107307, 11.27498898];
% 浮点数匹配设置容差,避免存储精度误差导致匹配失败
match_tol = 1e-6;
% 查找两个点在数据集中的索引
idx_a = find(abs(X(:,1)-point_a(1)) < match_tol & abs(X(:,2)-point_a(2)) < match_tol, 1);
idx_b = find(abs(X(:,1)-point_b(1)) < match_tol & abs(X(:,2)-point_b(2)) < match_tol, 1);
% 对比标签判断是否同簇
if pred_labels(idx_a) == pred_labels(idx_b)
    disp('两个指定点被分配至同一簇');
else
    disp('两个指定点被分配至不同簇');
end

注意:浮点数坐标禁止直接用==做相等判断,必须设置合理容差,否则大概率会因为计算过程中的精度截断找不到对应样本。


内容的提问来源于stack exchange,提问作者lpad ze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:45:41