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

调用bclust包中bclust函数时R会话崩溃求助

问题:调用bclust函数时R会话崩溃,自定义数据集无法运行

每次在RStudio中调用bclust包的bclust()函数时,我的R会话都会直接崩溃。该函数在包自带的gaelle数据集上运行完全正常,但在我自己的数据集(146个代谢物/列,1715个观测值/行)上完全无法运行。我已经尝试过更新RStudio、使用更小的数据集子集、重装R等方法,但都没有解决问题。

运行代码如下:

median_center <- function(x) {apply(x, 2, function(y) y - median(y))}
centered_dat <- median_center(dat)
mc.dat <- meancss(centered_dat, rep.id=1:nrow(centered_dat))
optimfunc <- function(theta) {
  -loglikelihood(x.mean=mc.dat$mean, x.css=mc.dat$css, repno=mc.dat$repno, transformed.par=theta)
}
transpar <- optim(rep(0, 6), optimfunc, method="BFGS")$par
bclust(centered_dat, transformed.par=transpar)

可能的排查方向:

  • 检查数据质量:用sum(is.na(centered_dat))确认是否存在缺失值,用apply(centered_dat, 2, quantile, c(0.01, 0.99))排查极端值——bclust的概率模型对异常值或缺失值可能非常敏感,容易引发计算崩溃。
  • 优化参数设置:尝试给bclust()指定n.clusters参数(比如先设为较小的数值,如n.clusters=5),避免算法自动推断聚类数时的高负载;同时检查optim返回的transpar是否存在异常值(比如无穷大或NaN),若有则调整optim的初始值或方法。
  • 内存与环境检查:确保使用64位R版本(32位R的内存上限较低),运行代码前关闭其他占用内存的程序;也可以尝试在RGui(而非RStudio)中执行代码,排除IDE兼容性问题。
  • 调试中间步骤:在optimfunc中添加打印语句,查看每一步的theta和函数返回值,确认是否在对数似然计算阶段就出现了数值不稳定;也可以给optim()加上trace=TRUE参数,跟踪优化过程的细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:48:19