def train_test_split(X,n):
#N là số hàng, d là số cột
N,d=X.shape
#List test_temp dùng để lưu tập test
test_temp=[]
# Tạo mảng ngẫu nhiên n phần tử từ 0 đến N
random_array=random.sample(range(N),n)
#Sắp xếp mảng ngẩu nhiên
random_array.sort()
#Biến count lưu số lần xóa dòng
count=0
for i in range(n):
#câp nhật dữ liệu vào tập test
test_temp.append(X[random_array[i]-count,:])
#Xóa dữ liệu trong tập train
X=np.delete(X,(random_array[i]-count),axis=0)
count=count+1
#Lưu dữ liệu vào X_train
X_train=X[:,0:d].reshape(-1,d)
#Tách lấy dữ liệu cho tập y_train
y_train=X[:,d-1].reshape(-1,1)
#Chuyển list qua mảng
test_temp1=np.array(test_temp)
#Tách lấy X_test
X_test=test_temp1[:,0:d-1].reshape(-1,d-1)
#Tách lấy y_test
y_test=test_temp1[:,d-1].reshape(-1,1)
return X_train,y_train,X_test,y_test