我正在尝试在Anaconda上通过Spyder运行Skikit学习
C:\Anaconda3>conda --version
conda 4.3.4
C:\Anaconda3>python --version
Python 3.5.2 :: Anaconda 4.0.0 (64-bit)
Spyder 2.3.8
我尝试执行以下操作:
print("Scikit-Learn", sklearn.__version__)
NameError: name 'sklearn' is not defined
from sklearn.model_selection import *
from ..utils.fixes import rankdata
ImportError: cannot import name 'rankdata'
Errors
不知道为什么会出现此错误,如Anaconda所示,该软件包为当前软件包,但是当我运行Spyder时,它给出了以上错误。
最佳答案
当您使用水蟒时,请尝试:
conda update scikit-learn
Conda将尝试处理依赖关系,并且可能会更新其他软件包。
如果这不起作用,则
<Anaconda_basedir>\lib\python3.5\site-packages\sklearn\utils
中的fixs.py文件中有一行if sp_version < (0,13, 0):
,如果scipy的版本低于0.13.0,则该行会限制rankdata
的导入。由于某些原因,如果版本> 0.13.0,则应使用
rankdata
中的scipy.stats
。但是,至少就我而言,不是,我要做的是添加and False
以便从rankdata
获取scipy
。最后一行是:
...
if sp_version < (0, 13, 0) and False:
def rankdata(a, method='average'):
...