Jun-04-2024, 12:14 PM
I am trying to plot a PDP plot using Matplotlib, but I find an error that indicates that figures were created but nothing was drawn on it.
This is my code:
[inline]
from perovmldis.ML_utilities.ML_plotting import plot_pdp_plots
plot_pdp_plots(best_estimator,dataset,regression_feature_list,ranked_features[0:3],ranked_labels[0:3])
[/inline]
This is my code:
[inline]
from perovmldis.ML_utilities.ML_plotting import plot_pdp_plots
plot_pdp_plots(best_estimator,dataset,regression_feature_list,ranked_features[0:3],ranked_labels[0:3])
[/inline]
import matplotlib.pyplot as plt from matplotlib.pyplot import annotate, savefig, rcParams, rc, tick_params, xlabel, ylabel, xlim, ylim, legend, title from sklearn.metrics import roc_curve, auc from sklearn.preprocessing import label_binarize from .performance_functions import BinaryClassification from sklearn.tree import export_graphviz from subprocess import call import os, shutil import seaborn as sns from itertools import combinations import numpy as np from pdpbox import pdp def plot_pdp_plots(model,df,feature_list,ranked_features,ranked_labels): feature_pairs = np.array(list(combinations(ranked_features,2))) feature_labels = np.array(list(combinations(ranked_labels,2))) for i in range(len(feature_pairs)): inter1 = pdp.PDPInteract(model=model,df=df, model_features=feature_list,features=feature_pairs[i],feature_names=feature_labels[i], pred_func=None, n_classes=0, memory_limit=0.5, chunk_size=-1, n_jobs=1, predict_kwds=None, data_transformer=None, num_grid_points=[10, 10], grid_types='percentile', percentile_ranges=[(5, 95), (5, 95)], grid_ranges=None, cust_grid_points=None) fig, axes = inter1.plot(plot_type='contour', plot_pdp=False, to_bins=True, show_percentile=False, which_classes=None, figsize=None, dpi=300, ncols=2, plot_params=None) fname = feature_pairs[i][0]+'_'+feature_pairs[i][1] +'.pdf' plt.tight_layout() plt.savefig(fname, dpi=500,format='pdf')I am expecting similar like the picture: