Python中调用
from sklearn.cross_validation import train_test_split时会报错No module named 'sklearn.cross_validation'。
是因为木有这个包了,如果是单独掉这个包,主需要在自己的代码中把
from sklearn.cross_validation import train_test_split替换为
import sklearn.model_selection就可以了。
但是如果有其他包依赖
sklearn.cross_validation这个包就很麻烦了,比如我就遇到这种问题。
我需要的包是from sknn.mlp import Regressor,Layer。但sknn.mlp会依赖这个
sklearn.cross_validation。这时候就不是在自己代码里换调用的包的问题了,是需要去改
sknn.mlp这里面的代码的。需改如下:
找到D:\software\anaconda\Lib\site-packages\sknn,这个文件夹下的mlp文件,
将#import sklearn.cross_validation
改成 import sklearn.model_selection
再打开D:\software\anaconda\Lib\site-packages\sknn\backend\lasagne里面的mlp文件中
将#import sklearn.cross_validation
import sklearn.model_selection
将
# 原来的
X, X_v, y, y_v = sklearn.cross_validation.train_test_split(
X, y,
test_size=self.valid_size,
random_state=self.random_state)
# 更改后
X, X_v, y, y_v = sklearn.model_selection.train_test_split(
X, y,
test_size=self.valid_size,
random_state=self.random_state)
然后再
from sklearn.cross_validation import train_test_split就OK了