做机器学习时,经常会对数据划分作为测试集和验证集。如果使用随机的方式,那么多次训练总有出现读取到所有的数据,显然容易出现过拟合。

np.random.seed(42)

import numpy as np
def split_train_test(data, test_ratio):
    shuffled_indices = np.random.permutation(len(data))
    test_set_size = int(len(data) * test_ratio)
    test_indices = shuffled_indices[:test_set_size]
    train_indices = shuffled_indices[test_set_size:]
    return data.iloc[train_indices], data.iloc[test_indices]
numpy中的随机方法:
  • np.random.permutation(len) : 随机产生长度为len的数组
  • np.random.seed(42):设置种子池,再使用permutation方法,会返回同样数组
  • iloc:按列索引取数
  • loc:按行索引取数