output_df.to_csv(args.output_dir + 'icu_data_analysis_measure_' + str(args.measure) + '_est_' + str(args.estimator_type) + '.csv') ## ------------------------------------- ## SHAP values ## ------------------------------------- print("Getting SHAP values") ## fit the full regression function cc_all = (np.sum(np.isnan(data.x_train), axis=1) == 0) cc_all_test = (np.sum(np.isnan(data.x_test), axis=1) == 0) start = time.time() ensemble.fit(data.x_train[cc_all, :], np.ravel(data.y_train[cc_all])) ## print test-set error if args.measure == "auc": if 'nn' in args.estimator_type: test_preds = np.mean(ensemble.transform(data.x_test[cc_all_test, :]), axis=1) else: test_preds = ensemble.predict_proba(data.x_test[cc_all_test, :]) else: test_preds = ensemble.predict(data.x_test[cc_all_test, :]) log_lik = (-1) * sl_scorer(y_true=np.ravel(data.y_test[cc_all_test]), y_pred=test_preds, normalize=False) print('Estimated negative log likelihood: ' + str(log_lik)) if "tree" in args.estimator_type: explainer = shap.TreeExplainer(ensemble) shap_values = explainer.shap_values(data.x_test[cc_all_test, :]) else: if args.measure == "auc":