Анализ выживания: параметры для concordance_index_censored (scikit-survival)
Я хочу реализовать concordance_index_censored в моем тестовом наборе, используя модель, которую я обучил. Я не понимаю, что должно быть моим вкладом в
estimate
параметр в
concordance_index_censored()
.
Это где-то в coxnet_pred? Если нет, то где мне его взять? Я попробовал coxnet_pred ['array'], и это не сработало, потому что он содержит пошаговые функции.
Код следующим образом
from sksurv.linear_model import CoxnetSurvivalAnalysis
from sksurv.metrics import concordance_index_censored
from sksurv.util import Surv
y=Surv.from_arrays(np.array(survival_status_training), np.array(survival_time_training), name_event="event",name_time ="time")
cox_lasso_model = CoxnetSurvivalAnalysis(l1_ratio=1.0, fit_baseline_model=True)
cox_lasso_trained = cox_lasso_model.fit(training_data, y)
coxnet_pred=cox_lasso_trained.predict_survival_function(np.array(test_data))
training_cindex = concordance_index_censored(event_indicator=np.array(survival_status_training),event_time=np.array(survival_time_training), estimate=coxnet_pred['array'])
1 ответ
В
estimate
параметр для
concordance_index_censored
должен быть массивом с единственной оценкой риска для каждого экземпляра в ваших тестовых данных:
from sksurv.linear_model import CoxnetSurvivalAnalysis
from sksurv.metrics import concordance_index_censored
from sksurv.util import Surv
train_y = Surv.from_arrays(
survival_status_training,
survival_time_training
)
test_y = Surv.from_arrays(
survival_status_test,
survival_time_test
)
model = CoxnetSurvivalAnalysis()
model.fit(train_X, train_y)
test_risk_scores = model.predict(test_X)
cindex = concordance_index_censored(
event_indicator=test_y["event"],
event_time=test_y["time"],
estimate=test_risk_scores)
В качестве альтернативы вы можете использовать
model.score(test_X, test_y)
как описано в руководстве пользователя .