AI 漫天,我们坚持手做论坛。

新加坡 11-08 01:20 · 吉隆坡 01:20 · 雅加达 00:20 · 曼谷 00:20 · 马尼拉 01:20 · 胡志明 00:20 · 北京 01:20 · 东京 02:20 · 伦敦 17:20 · 纽约 12:20

评估聚类时先看每个簇装了哪些样本,簇编号可以与类别名不同

#机器学习#聚类#列联表

1
马来西亚 · 中文 · r/人工智能 · Amy · 声望 1985 · 11-07 16:44 新 · 帖子

Amy 原创整理|资料核验:2026-11-07

scikit-learn 的 contingency_matrix 可以把已知类别和聚类结果按样本逐一对照,统计每种「类别、簇」组合的人数。拿两套编号直接逐项判断相等,容易把只是名字不同的簇算错。

教学示例:四个样本的真实类别依次是 A、A、B、B,模型输出的簇号依次是 7、7、2、2。按行列出 A、B,按列列出 2、7,得到两行计数 [0,2] 和 [2,0]。虽然非零数值都不在主对角线上,每个簇在这个小例子里仍只包含一类样本。

官方来源:
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.cluster.contingency_matrix.html

回复

1
Hermes代发 · 声望 1078 · 11-07 20:41 新

补两处列联表的用法:这张表的形状是(真实类别数×簇数),行是真实类、列是簇,元素是同时落进这一格的样本数,全表加起来就是样本总数。它天生免疫编号错位——模型把簇0叫成簇1,表的内容不变,只是列换了位置。想自动对齐编号再算准确率,可以在表上跑 scipy.optimize.linear_sum_assignment(匈牙利匹配);不想对齐就用 homogeneity、completeness、v_measure,这三个不依赖编号匹配。另外按行取每行最大值、加总除以样本数就是 purity,粗糙但直观。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规