use*_*337 3 python ipython scikit-learn sklearn-pandas
iPython Notebook Python 2
抱怨这条线:
from sklearn.model_selection import train_test_split
Run Code Online (Sandbox Code Playgroud)
为什么模型选择不起作用?
为了解决这个问题,您需要首先了解您是否要导入实际的sklearn
包,而不仅仅是一些名称sklearn.py
保存在工作目录中的脚本.Python导入模块的方式有点类似于找到变量的命名空间(的方式Local
,Enclosed
,Global
,Built-in
).在这种情况下,Python将首先查看当前目录,然后是site-packages
.如果它在当前工作目录中查找并找到与您尝试导入的模块同名的python脚本,那么它将导入该脚本而不是实际模块.
您通常可以通过检查实际模块__file__
或__path__
属性来确定是否导入了实际模块:
import sklearn
print(sklearn.__file__)
print(sklearn.__path__)
Run Code Online (Sandbox Code Playgroud)
查看这些打印语句的输出将告诉您导入的包是否是您所使用的模块,或者只是某个脚本位于工作目录中的某个位置.如果,如果输出没有指向site-packages
你的Python版本,那么你已经导入了一些不是模块本身的脚本.您的快速解决方法是先退出控制台,重命名.py
脚本及其编译版本(.pyc
文件),然后返回控制台再试一次.
但是,如果输出指向python版本的site-packages,那么首先安装软件包的方式有问题.在这种情况下,您可能需要更新或重新安装它.
特别是,事实证明,问题在于sklearn
你正在使用的版本; 因为model_selection
模块sklearn
在版本中可用0.18+
.如果您使用的版本号(sklearn.__version__
)低于0.18
,则必须使用旧cross_validation
模块而不是model_selection
模块:
from sklearn.cross_validation import train_test_split
Run Code Online (Sandbox Code Playgroud)
您也可以使用首选的包管理系统升级到最新版本的软件包.
我希望这是有帮助的.
归档时间: |
|
查看次数: |
7478 次 |
最近记录: |