我们知道skilean有一个train_test_split函数可以帮我们划分trian和test, 那么我们就可以通过这个函数间接完成train_test_validation的划分.
from sklearn.model_selection import train_test_split
def train_test_val_split(train_ratio = 0.8,validation_ratio = 0.1,test_ratio = 0.1,random_state):
# random_state for reproduction
# shuffle must be 'True'
[x_train, x_test, y_train, y_test] = train_test_split(
x, y, test_size=validation_ratio+test_ratio, random_state=random_state, shuffle=True)
[x_val, x_test, y_val, y_test] = train_test_split(
x_test, y_test, test_size=test_ratio/(test_ratio + validation_ratio), random_state=random_state)
return x_train,y_train, x_test, y_test, x_val, y_val