求助:sklearn 0.19.1中无法导入power_transform的问题
解决sklearn 0.19.1中无法导入
power_transform的问题 嘿,这个问题我刚好碰到过!原因其实很简单:power_transform函数是scikit-learn 0.20版本才正式加入到sklearn.preprocessing模块里的,而你目前使用的是0.19.1版本,自然找不到这个导入项啦。这也解释了为什么scale这类更早版本就有的预处理函数能正常使用。
给你两个可行的解决方案:
升级scikit-learn版本
既然你用的是Anaconda环境,直接在终端运行这条命令就能升级到最新兼容版本:conda update scikit-learn要是习惯用pip的话,就执行:
pip install --upgrade scikit-learn升级完成后,再导入
power_transform就没问题了。不升级版本,用替代方案
如果你暂时不想升级,可以直接使用power_transform背后的底层实现类——BoxCoxTransformer或者YeoJohnsonTransformer,这两个在0.19.1版本里已经存在了。举个使用示例:from sklearn.preprocessing import YeoJohnsonTransformer # 初始化转换器,Yeo-Johnson支持正负数据,和power_transform默认行为一致 transformer = YeoJohnsonTransformer() # 拟合并转换数据 transformed_data = transformer.fit_transform(your_dataset)要是你的数据全是正数,也可以用
BoxCoxTransformer替代,效果是一样的。
内容的提问来源于stack exchange,提问作者nixon
相关产品推荐
相关产品推荐

