代码之家  ›  专栏  ›  技术社区  ›  Mohamed Thasin ah

生存分析中不可逆矩阵的处理

  •  0
  • Mohamed Thasin ah  · 技术社区  · 6 年前

    我不熟悉生存分析。我试着用 CoxPHFitter numpy.linalg.linalg.LinAlgError: Matrix is singular.

    在经历了这个错误之后,我才知道 我的一篇专栏文章有不可逆矩阵。

    那我现在该怎么办?我不能用那个专栏吗?如果是这样的话,我能得出什么结论呢?

    完整堆栈跟踪:

    回溯(最近一次呼叫): “surv”文件_模型.py“,第79行,英寸 cph.配合(X,'T',event_col='label') 文件“/usr/local/lib/python2.7/dist-packages/lifelines/fitters/coxph_装配工.py“,第165行,合适 step U size=step U尺寸) inv_h_dot_g_T=s解决方案(-h,g.T,sym_pos=真) 文件“/usr/local/lib/python2.7/dist-packages/scipy/linalg/基本.py“,第251行,求解中 _解算检查(n,info) 文件“/usr/local/lib/python2.7/dist-packages/scipy/linalg/基本.py,第31行,在“求解”检查中 raise LinAlgError('矩阵是单数') 纽比.利纳格.利纳格.linalgerro:矩阵是奇异的。

    我用的是python lifelines

    1 回复  |  直到 6 年前
        1
  •  1
  •   Thomas Lang    6 年前

    您可以尝试使用 Moore-Penrose inverse 一个矩阵,它总是存在的。但请注意,在不可逆矩阵的情况下,这只是一个适合于最优解的最小二乘法。

    重新考虑你的问题,评论是正确的:添加一个正则化参数。这似乎是个问题: https://github.com/sebp/scikit-survival/issues/28#issuecomment-370918386