what arbitrarybut using test set containing of the data is good rule of thumb in scikit-learndata is usually denoted with capital xwhile labels are denoted by lowercase this is inspired by the standard formulation ( )= in mathematicswhere is the input to function and is the output following more conventions from mathematicswe use capital because the data is two-dimensional array ( matrixand lowercase because the target is one-dimensional array ( vectorlet' call train_test_split on our data and assign the outputs using this nomenclaturein[ ]from sklearn model_selection import train_test_split x_trainx_testy_trainy_test train_test_splitiris_dataset['data']iris_dataset['target']random_state= before making the splitthe train_test_split function shuffles the dataset using pseudorandom number generator if we just took the last of the data as test setall the data points would have the label as the data points are sorted by the label (see the output for iris['target'shown earlierusing test set containing only one of the three classes would not tell us much about how well our model generalizesso we shuffle our data to make sure the test data contains data from all classes to make sure that we will get the same output if we run the same function several timeswe provide the pseudorandom number generator with fixed seed using the random_state parameter this will make the outcome deterministicso this line will always have the same outcome we will always fix the random_state in this way when using randomized procedures in this book the output of the train_test_split function is x_trainx_testy_trainand y_testwhich are all numpy arrays x_train contains of the rows of the datasetand x_test contains the remaining %in[ ]print("x_train shape{}format(x_train shape)print("y_train shape{}format(y_train shape)out[ ]x_train shape( y_train shape( , introduction