喜欢可以关注【小猪课堂】公众号了解更多编程小技巧
专业术语叫留出法(hold out)
train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签。
格式:
X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.3, random_state=0)
参数解释:
train_data:被划分的样本特征集;要研究的样本
train_target:被划分的样本标签;所要划分的样本结果
test_size:如果是浮点数,在0-1之间,表示测试样本占比;如果是整数的话就是样本的数量
random_state:是随机数的种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0 或 不填,每次都会不一样。(我的测试结果是填0也不变)
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。
示例
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
# from sklearn.cross_validation import train_test_split 不能运行不知道咋回事,暂不了解
>>> X, y = np.arange(10).reshape((5, 2)), range(5)
#**之前没见过的写法** reshape一个括号也能用
>>> X
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> list(y)
[0, 1, 2, 3, 4]
>>>
>>> X_train, X_test, y_train, y_test = train_test_split(
... X, y, test_size=0.33, random_state=42)
...
>>> X_train
array([[4, 5],
[0, 1],
[6, 7]])
>>> y_train
[2, 0, 3]
>>> X_test
array([[2, 3],
[8, 9]])
>>> y_test
[1, 4]
喜欢可以关注【小猪课堂】公众号了解更多编程小技巧