转载:cheneyshark

机器环境:

scikit-learn==0.19.1

Python 2.7.13

train_test_split基本用法

在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,通常使用sklearn.cross_validation里的train_test_split模块用来分割数据。

简单用法如下:

X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0)
# train_data:所要划分的样本特征集
# train_target:所要划分的样本结果
# test_size:样本占比,如果是整数的话就是样本的数量
# random_state:是随机数的种子。
# 随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。

问题现象(废弃警告)
然而发现每次调用train_test_split模块时,总会出现废弃警告:
代码输入部分提示如下:

sklearn.cross_validation 0.18版本废弃警告及解决方法-LMLPHP

主要意思是说在0.18版本中,cross_validation被废弃了。但实际测试感觉功能并为受影响,可以正常使用,只是有提示信息。
如果实在觉得太烦可以尝试用如下方法解决。

解决方法:
改为从 sklearn.model_selection 中调用train_test_split 函数可以解决此问题。

sklearn.cross_validation 0.18版本废弃警告及解决方法-LMLPHP

补充:如果使用sklearn0.20版本的朋友,那么使用网格搜索(gridsearch)寻找最优参数模型的话,sklearn.grid_search.GridsearchCV类已经被移除了,只有通过sklearn.model_selection调用GridsearchCV。

04-18 20:49