使用scikit-optimize的BayesSearchCV遇numpy兼容错误求助
解决方案
这个问题的根源是NumPy 1.24及以上版本彻底移除了np.float、np.int这类旧的数值类型别名,而scikit-optimize的稳定版(包括0.9.0)尚未适配这一变更。以下是几种有效的解决方式:
1. 降级NumPy到兼容版本
将NumPy降级到1.23.x系列版本,该版本仍保留这些旧别名,能直接兼容现有scikit-optimize版本:
# conda环境执行 conda activate myEnv conda install numpy=1.23.5 # pip环境执行 pip install numpy==1.23.5
2. 安装scikit-optimize开发版
scikit-optimize的GitHub开发分支已经修复了NumPy 1.24+的兼容问题,直接安装开发版即可:
pip install git+https://github.com/scikit-optimize/scikit-optimize.git
3. 临时补丁(应急用)
如果暂时无法修改包版本,可以在代码最开头添加以下代码,手动恢复np.float别名:
import numpy as np # 恢复被移除的别名 np.float = np.float64
注意:这种方法只是临时绕过问题,可能引发其他潜在兼容风险,不推荐长期使用。
内容的提问来源于stack exchange,提问作者PeeteKeesel
相关产品推荐
相关产品推荐

