导入hdbscan时触发TypeError:builtin_function_or_method不支持+运算
修复import hdbscan触发TypeError的方案
这个问题是hdbscan与scikit-learn版本不兼容导致的:scikit-learn在1.2.0版本后将KDTree.valid_metrics和BallTree.valid_metrics从属性改为了需调用的方法,而旧版hdbscan仍尝试直接对这两个对象做拼接运算,因此报错。
以下是可行修复方案:
检查当前版本
先确认scikit-learn和hdbscan的版本:conda list scikit-learn hdbscan # 或用pip pip show scikit-learn hdbscan方案一:降级scikit-learn到兼容版本
如果使用的是旧版hdbscan(<=0.8.29),将scikit-learn降级到1.1.x版本:conda install scikit-learn=1.1.3 # pip环境用 pip install scikit-learn==1.1.3方案二:升级hdbscan到最新兼容版本
新版hdbscan已修复该兼容性问题,直接升级即可:conda install hdbscan --update-deps # pip环境用 pip install --upgrade hdbscan方案三:临时修改hdbscan源码(应急用,不推荐长期使用)
找到hdbscan安装目录下的_hdbscan_tree.py文件,定位到包含KDTree.valid_metrics + BallTree.valid_metrics的代码行,修改为:valid_metrics = KDTree.valid_metrics() + BallTree.valid_metrics()保存文件后重新尝试import hdbscan。
内容的提问来源于stack exchange,提问作者Nathan Luo
相关产品推荐
相关产品推荐

