配置机器学习可解释框架。解决报错:ImportError: cannot import name ‘plot_partial_dependence‘ from ‘sklearn.inspection‘
解决报错:ImportError: cannot import name 'plot_partial_dependence' from 'sklearn.inspection'
·
报错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])))
运行后成功解决,不报错。
更多推荐
所有评论(0)