python中的train_test_split函数
>>> import numpy as np
>>> ss_validation import train_test_split #从ss_validation模块导⼊train_test_split 函数,⽤于训练集和测试集的划分,cross_validation即>>> X, y = np.arange(10).reshape((5, 2)), range(5) #
>>> 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]])random python
>>> y_test
[1, 4]
解释:test_size 为测试集占⽐,如果为整数就代表样本的数量
random_state 为随机数种⼦
讨论⼀下random_state :
random_state 相当于随机数种⼦,你可以先看⼀下图⽚中的代码和运⾏结果来了解它的作⽤。图中设置了 random.seed() 就相当于在 SVC 中设
置了 random_state。设置了 random.seed() 就相当于在 SVC 中设置了 random_state。
第三段和第四段代码设置了相同的 random seed(123),它们取的随机数就完全相同,你多运⾏⼏次也是这样的。
第五段代码也设置了 random seed (456),但是与前⾯设置的不同,于是运⾏取随机数的结果也不同。
random_state 与 random seed 作⽤是相同的。不仅 SVC 中有 random_state ,很多其它的模型也有,你可以从模型对应的⽂档中查看。交叉验证的时候使⽤的 ShuffleSplit() 也有 random_state。在 ShuffleSplit() 设置 random_state 可以让每次划分训练集和验证集的时候都是完全⼀样的。在模型(如SVC)中设置 random_state 可以使模型每次⽤相同的训练集训练结果是⼀样的,对测试集的预测结果也是⼀样的。不然的话,你的结果,⽐如准确度可能会有波动。如果你在需要设置 random_state 的地⽅都设置好,那么当别⼈重新运⾏你的代码的时候就能得到完全⼀
当别⼈重新运⾏你的代码的时候就能得到完全⼀样的结果,复现和你⼀样的过程。如果你设置为 None,则会随机选择⼀个种⼦。
样的结果,复现和你⼀样的过程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论