报错1:ImportError: cannot import name ‘plot_partial_dependence‘ from ‘sklearn.inspection‘

from sklearn.inspection import plot_partial_dependence

运行以上代码时报错:

ImportError: cannot import name 'plot_partial_dependence' from 'sklearn.inspection'

将原代码改为:
 

from sklearn.inspection import PartialDependenceDisplay

可成功运行,不报错。

报错2:KeyError: 'values'

# 计算CFI与CDA32共同的影响

CFI_CDA32_2pd = partial_dependence(estimator=MRD_GBR_interpret, X=X, features=[(3,5)], percentiles=(0,1), grid_resolution=100, method='brute', kind='average')

CFI_CDA32_average = CFI_CDA32_2pd['average'].flatten().reshape(-1,1)

CFI_CDA32_cartesian = np.array(list(product(CFI_CDA32_2pd['values'][0], CFI_CDA32_2pd['values'][1])))

CFI_CDA32_2pd_res = pd.DataFrame(np.hstack([CFI_CDA32_cartesian, CFI_CDA32_average]), columns=['CFI', 'CDA32', 'PD'])

CFI_CDA32_2pd_res['CFI'] = CFI_CDA32_2pd_res['CFI'] * (All_MRD_ori['CFI'].max()-All_MRD_ori['CFI'].min()) + All_MRD_ori['CFI'].min()
CFI_CDA32_2pd_res['CDA32'] = CFI_CDA32_2pd_res['CDA32'] * (All_MRD_ori['CDA32'].max()-All_MRD_ori['CDA32'].min()) + All_MRD_ori['CDA32'].min()
CFI_CDA32_2pd_res['PD'] = np.exp(CFI_CDA32_2pd_res['PD']) -1

CFI_CDA32_2pd_res

运行以上代码,发生报错:

原因​​:sklearn 不同版本中 partial_dependence 返回的键名可能不同。例如,旧版本使用 'values' 存储特征值网格,而新版本可能改为 'grid_values'

添加代码检查,打印返回对象的键列表:

print(CFI_CDA32_2pd.keys())  # 输出类似 ['average', 'values', ...] 或 ['grid_values', ...]

返回:

dict_keys(['grid_values', 'average'])

故将原键名改为:grid_values

即:

CFI_CDA32_cartesian = np.array(list(product(CFI_CDA32_2pd['grid_values'][0], CFI_CDA32_2pd['grid_values'][1])))

运行后成功解决,不报错。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐