Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Split data into training and testing sets
| ResourceFunction["TrainTestSplit"][data] splits data into a pair of shuffled training and testing sets. | 
The default test size is 20%:
| In[1]:= | ![ResourceFunction["TrainTestSplit"][# & /@ Range[10]]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/0cff0b4765cdd721.png) | 
| Out[1]= |  | 
Specify a non-default test set size as a scaled value:
| In[2]:= | ![ResourceFunction["TrainTestSplit"][# -> EvenQ[#] & /@ Range[10], "TestSetSize" -> Scaled[0.5]]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/2088eae1eae622ec.png) | 
| Out[2]= |  | 
Specify a non-default test set size as an explicit value:
| In[3]:= | ![ResourceFunction["TrainTestSplit"][# -> EvenQ[#] & /@ Range[10], "TestSetSize" -> 3]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/00ae8e9af232098d.png) | 
| Out[3]= |  | 
Specify a non-default training set size (a real value is taken as a Scaled):
| In[4]:= | ![ResourceFunction["TrainTestSplit"][# -> EvenQ[#] & /@ Range[10], "TrainingSetSize" -> 0.9]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/76359b5dcae9e4e4.png) | 
| Out[4]= |  | 
By default, samples are shuffled:
| In[5]:= | ![ResourceFunction["TrainTestSplit"][Range[10]]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/40a74574b4ac4563.png) | 
| Out[5]= |  | 
Use "Shuffle"→False to ensure that a sample keeps its original ordering:
| In[6]:= | ![ResourceFunction["TrainTestSplit"][Range[10], "Shuffle" -> False]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/202aaa4768ce8893.png) | 
| Out[6]= |  | 
You must give sensible sizes:
| In[7]:= | ![ResourceFunction["TrainTestSplit"][# -> EvenQ[#] & /@ Range[10], "TrainingSetSize" -> \[Infinity]]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/40c86ef6c63f2124.png) | 
| Out[7]= |  | 
The option "TrainSize" takes precedence over "TestSize":
| In[8]:= | ![ResourceFunction["TrainTestSplit"][Range[10], "TrainingSetSize" -> 10,
  "TestSetSize" -> 10, "Shuffle" -> False]](https://www.wolframcloud.com/obj/resourcesystem/images/a34/a34a1447-6c23-486c-b454-6e05993a545e/363ec2d59dca75f6.png) | 
| Out[8]= |  | 
This work is licensed under a Creative Commons Attribution 4.0 International License