Я тренирую свою модель выживания со следующими строками:
wft = WeibullAFTFitter()
wft.fit(train, 'duration', event_col='y')
После этого я хочу посмотреть, какова вероятность выживания в настоящее время (столбец duration
).
То, как я сейчас это делаю, если использовать следующий цикл for:
p_surv = np.zeros(len(test))
for i in range(len(p_surv)):
row = test.iloc[i:i+1].drop(dep_var, axis=1)
t = test.iloc[i:i+1, col_num]
p_surv[i] = wft.predict_survival_function(row, t).values[0][0]
Однако, это действительно медленно, учитывая, что я использую цикл for (200k + строк). Другая альтернатива для wft.predict_survival_function(test, test['duration'])
создаст матрицу 200000x200000, так как она проверяет каждую строку на все предоставленные времена.
Я просто хочу сравнить вероятность выживания с ее собственной продолжительностью. Есть ли в lifelines
функция, которая это делает?