好问题。我认为现在,最好的方法是重现预测生存函数所做的事情。也就是说,做这样的事情:
def predict_cumulative_hazard_at_single_time(self, X, times, ancillary_X=None):
lambda_, rho_ = self._prep_inputs_for_prediction_and_return_scores(X, ancillary_X)
return (times / lambda_) ** rho_
def predict_survival_function_at_single_time(self, X, times, ancillary_X=None):
return np.exp(-self.predict_cumulative_hazard_at_single_time(X, times=times, ancillary_X=ancillary_X))
wft.predict_survival_function_at_single_time = predict_survival_function_at_single_time.__get__(wft)
wft.predict_cumulative_hazard_at_single_time = predict_cumulative_hazard_at_single_time.__get__(wft)
p_surv2 = wft.predict_survival_function_at_single_time(test, test['duration'])