You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入eli5.lime的TextExplainer时遭遇scipy.itemfreq弃用错误求助

解决 eli5.lime 导入时 itemfreq 缺失的问题

问题背景

在用BERT做文本分类、尝试用TextExplainer做模型可解释性分析时,导入eli5.lime会触发如下错误:

ImportError: cannot import name 'itemfreq' from 'scipy.stats'

原因是新版本scipy移除了已弃用的scipy.stats.itemfreq,官方推荐用np.unique(..., return_counts=True)替代,但手动修改samplers.py后易出现索引错误。

可行解决方案

方案1:降级scipy到兼容版本

直接安装仍支持itemfreq的scipy旧版本,无需修改源码,快速恢复eli5正常使用:

pip install scipy==1.7.3

方案2:正确替换itemfreq代码

如果坚持使用新版本scipy,需严格对齐原函数的返回格式:
原代码(报错片段):

from scipy.stats import itemfreq
freq = itemfreq(arr)

替换为:

import numpy as np
values, counts = np.unique(arr, return_counts=True)
freq = np.array(list(zip(values, counts)))

原itemfreq返回的是(值, 频数)结构的二维数组,np.unique返回两个一维数组,必须组合成完全一致的格式才能避免索引错误。

方案3:使用修复后的eli5分支

已有开发者在社区提交了该问题的修复PR,可安装对应修复后的分支版本(注意确认分支稳定性)。

补充说明

该问题是scipy版本迭代引发的依赖兼容问题,已有大量用户遇到,其中降级scipy是最直接的解决方式,手动改源码则必须保证返回格式与原函数完全匹配。

内容的提问来源于stack exchange,提问作者ChrisIreland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:24:48