# credit to the user of StackExchange in the source link
# set stratify=y in the function arguments for stratified selection
# random_state has been fixed for reproducibility
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test
= train_test_split(X, y, test_size=0.2, random_state=1)
# 0.25 x 0.8 = 0.2
X_train, X_val, y_train, y_val
= train_test_split(X_train, y_train, test_size=0.25, random_state=1)