''' data['X']['mid_level_lapse_rate_ens_mean_spatial_mean'] = data['X']['mid_level_lapse_rate_ens_mean_spatial_mean'] / 2.67765 X['mid_level_lapse_rate_ens_mean_spatial_mean'] = X['mid_level_lapse_rate_ens_mean_spatial_mean'] / 2.67765 fname = join(perm_path, f'permutation_importance_all_models_{target}_{time}_training_{metric}{drop_opt}{perm_method}.nc') explainer = InterpretToolkit(X=data['X'],y=data['targets'],estimator_output='probability',) perm_results = explainer.load(fname) #important_vars = perm_results['multipass_rankings__LogisticRegression'].values[:12] #important_vars = ['low_level_lapse_rate_ens_mean_spatial_mean'] important_vars = ['mid_level_lapse_rate_ens_mean_spatial_mean'] all_vars = perm_results['singlepass_rankings__LogisticRegression'].values display_feature_names = {f: to_readable_names([f])[0] for f in all_vars} #display_feature_names = _fix_long_names(display_feature_names) feature_units = {f: get_units(f)for f in all_vars} if option == 'interaction': interaction_index = 'auto' y = None elif option == 'targets': interaction_index=None y =data['targets'] elif option == 'interaction_and_target': interaction_index = 'auto' y =data['targets'] else: interaction_index=None y =data['targets'] y = np.ones((len(y)))
) #examples_subset = shap.sample(examples_transformed, 1000) myInterpreter = InterpretToolkit(model=[model.steps[-1][1]], model_names=[model_name], examples=examples_subset, targets=target_subset, feature_names=feature_names) display_feature_names = { f: to_readable_names([f])[0] for f in feature_names } display_feature_names = _fix_long_names(display_feature_names) feature_units = {f: get_units(f) for f in feature_names} date_subset = date_col[:len(examples_subset)].reshape( len(examples_subset), 1) examples_subset = np.concatenate((examples_subset, date_subset), axis=1) examples_subset = pd.DataFrame(examples_subset, columns=original_feature_names) if normalize_method != None: unnormalize = UnNormalize(model.steps[1][1], feature_names) feature_values = unnormalize._full_inverse_transform(examples_subset) else: unnormalize = None feature_values = examples_subset.values
'cin_ml_ens_mean_spatial_mean', 'lcl_ml_ens_mean_spatial_mean', 'shear_v_0to6_ens_mean_spatial_mean', 'srh_0to3_ens_mean_spatial_mean', ] # {'w_up_time_max_ens_mean_of_90th': 'Updraft ($\\mu_e$ of P$_{90}$ of max$_t$)', 'uh_2to5_time_max_ens_mean_of_90th': '2-5 km UH ($\\mu_e$ of P$_{90}$ of max$_t$)', 'cape_ml_ens_mean_spatial_mean': 'ML CAPE ($\\mu_e$)'} display_feature_names = { f: to_readable_names([f])[0].split('(')[0][:-1] for f in important_vars } print(display_feature_names) display_feature_names = _fix_long_names(display_feature_names) feature_units = {f: get_units(f) for f in important_vars} ale_results = [] for i, model_name in enumerate(model_set): parameters['model_name'] = model_name calibrated_pipeline = _load_model(**parameters) model = calibrated_pipeline.calibrated_classifiers_[0].base_estimator examples_transformed, target_values_transformed = just_transforms( model, examples, target_values) myInterpreter = InterpretToolkit(model=[model.steps[-1][1]], model_names=[model_name], examples=examples_transformed, targets=target_values_transformed, feature_names=feature_names)