【python机器学习】【留出法】数据切分-sklearn的train_test_split

喜欢可以关注【小猪课堂】公众号了解更多编程小技巧
专业术语叫留出法(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]

喜欢可以关注【小猪课堂】公众号了解更多编程小技巧

你可能感兴趣的:(python机器学习)