Как бороться с необратимой матрицей в анализе выживания - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в анализе выживания.Я пытался использовать CoxPHFitter, но я столкнулся с этой ошибкой.numpy.linalg.linalg.LinAlgError: Matrix is singular.

После того, как я прошел через эту ошибку, я узнал, одна из моих колонок имеет необратимую матрицу.

Так что мне теперь делать?Я не могу использовать этот столбец?Если да, то к какому выводу я могу прийти с этой колонкой?

Полная трассировка стека:

Трассировка (последний вызов был последним): файл "Survive_model.py", строка 79, в cph.fit (X, 'T', event_col ='label') Файл "/usr/local/lib/python2.7/dist-packages/lifelines/fitters/coxph_fitter.py", строка 165, в файле fit step_size = step_size) "/ usr / local / lib / python2.7 / dist-packages / lifelines / fitters / coxph_fitter.py ", строка 253, в _newton_rhaphson inv_h_dot_g_T = spsolve (-h, gT, sym_pos = True) Файл" /usr/local/lib/python2.7/dist-packages/scipy / linalg / basic.py ", строка 251, в файле решения _solve_check (n, info)" /usr/local/lib/python2.7/dist-packages/scipy/linalg/basic.py ", строка 31, в_solve_check Повышение LinAlgError ('Матрица единственного числа.') numpy.linalg.linalg.LinAlgError: Матрица единственного числа.

Я использую python lifelines

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете попробовать использовать обратную матрицу Мура-Пенроуза матрицы, которая всегда существует.Но учтите, что в случае необратимых матриц это только наименьших квадратов, подходящих для оптимального решения.

Переосмысление вашей проблемы, комментарии верны: Добавьте параметр регуляризации.На самом деле это кажется известной проблемой: https://github.com/sebp/scikit-survival/issues/28#issuecomment-370918386

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...