def test_squared_loss(make_whas500): whas500_data = make_whas500(with_std=False, to_numeric=True) model = ComponentwiseGradientBoostingSurvivalAnalysis(loss="squared", n_estimators=100, random_state=0) model.fit(whas500_data.x, whas500_data.y) time_predicted = model.predict(whas500_data.x) time_true = whas500_data.y["lenfol"] event_true = whas500_data.y["fstat"] rmse_all = numpy.sqrt(mean_squared_error(time_true, time_predicted)) assert round(abs(rmse_all - 793.6256945839657), 7) == 0 rmse_uncensored = numpy.sqrt( mean_squared_error(time_true[event_true], time_predicted[event_true])) assert round(abs(rmse_uncensored - 542.83358120153525), 7) == 0 cindex = model.score(whas500_data.x, whas500_data.y) assert round(abs(cindex - 0.7777082862), 7) == 0 with pytest.raises( ValueError, match="`fit` must be called with the loss option set to 'coxph'" ): model.predict_survival_function(whas500_data.x) with pytest.raises( ValueError, match="`fit` must be called with the loss option set to 'coxph'" ): model.predict_cumulative_hazard_function(whas500_data.x)
def test_squared_loss(make_whas500): whas500_data = make_whas500(with_std=False, to_numeric=True) model = ComponentwiseGradientBoostingSurvivalAnalysis(loss="squared", n_estimators=100, random_state=0) model.fit(whas500_data.x, whas500_data.y) time_predicted = model.predict(whas500_data.x) time_true = whas500_data.y["lenfol"] event_true = whas500_data.y["fstat"] rmse_all = numpy.sqrt(mean_squared_error(time_true, time_predicted)) assert round(abs(rmse_all - 793.6256945839657), 7) == 0 rmse_uncensored = numpy.sqrt(mean_squared_error(time_true[event_true], time_predicted[event_true])) assert round(abs(rmse_uncensored - 542.83358120153525), 7) == 0 cindex = model.score(whas500_data.x, whas500_data.y) assert round(abs(cindex - 0.7777082862), 7) == 0