拆分数据集和拆分比例以在Python中获得恒定的精度

时间:2018-07-18 06:16:28

标签: python dataset classification

def splitDataset(dataset, splitRatio):
  trainSize = int(len(dataset) * splitRatio)
  trainSet = []
  copy = list(dataset)
  while len(trainSet) < trainSize:
    index = random.randrange(len(copy))
    trainSet.append(copy.pop(index))
  return [trainSet, copy]

使用此功能,每次运行分类器时,我都会得到不同的准确性。 这是由随机函数引起的。那么,如何分割数据以获得不变的精度? 这行是主要问题:

index = random.randrange(len(copy))

2 个答案:

答案 0 :(得分:2)

您似乎想要结果的可重复性。为此,请为随机值使用种子。因此,可以再次使用种子来复制为分割而生成的随机数。

import random
random.seed(1)
import numpy as np
np.random.seed(1)

答案 1 :(得分:1)

应该获得不同的准确度。那就是机器学习的重点。 (这实际上是统计学习。)

但是,您的问题可能确实是您想要重复性,因此您希望每次运行时都将相同的条目子集放入训练集中。在这种情况下,您应该能够指定RNG种子,并获得相同的伪随机行序列以放入训练集中。

尽管如此,这种可预测性虽然很好地证明了算法,但它并不是机器学习的目的。