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

使用R语言blockmodels库获取生物数据分类样本标签向量的问询

获取blockmodels模型的样本分类标签

嗨,很高兴能帮到你!你已经成功拟合出最优的6类对称泊松随机块模型(SBM_sym),要获取每个样本对应的分类标签其实很简单,直接调用模型的内置属性就能实现,具体操作如下:

步骤1:确认最优类别数对应的模型

你已经通过which.max(my_model$ICL)找到了最优类别数为6,接下来我们直接提取该类别数下的成员归属信息:

步骤2:提取标签矩阵并转换为标签向量

blockmodels中,每个类别数对应的模型结果存在my_model$memberships列表里,其中[[6]]就是6类模型的结果,里面的Z是指示矩阵——每行对应一个样本,矩阵中值为1的列就是该样本所属的类别。如果想要更直观的类别编号向量(每个元素是1-6的整数,代表样本所属类别),可以用max.col()转换:

# 你的原有代码
my_model <- BM_poisson("SBM_sym", mat)
my_model$estimate()
optimal_k <- which.max(my_model$ICL) # 这里已确认optimal_k=6

# 提取6类模型的成员归属指示矩阵
cluster_assignment_matrix <- my_model$memberships[[optimal_k]]$Z

# 转换为简洁的类别编号向量
cluster_labels <- max.col(cluster_assignment_matrix)

# 查看前几个样本的标签
head(cluster_labels)

额外验证(可选)

你可以用table(cluster_labels)查看每个类别的样本数量,确认分类结果是否符合预期:

table(cluster_labels)

这样你就得到了长度为132的标签向量,每个元素对应输入矩阵mat中一行(或一列,因为是对称SBM)的样本类别啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:29:14