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))
答案 0 :(得分:2)
您似乎想要结果的可重复性。为此,请为随机值使用种子。因此,可以再次使用种子来复制为分割而生成的随机数。
import random
random.seed(1)
import numpy as np
np.random.seed(1)
答案 1 :(得分:1)
您应该获得不同的准确度。那就是机器学习的重点。 (这实际上是统计学习。)
但是,您的问题可能确实是您想要重复性,因此您希望每次运行时都将相同的条目子集放入训练集中。在这种情况下,您应该能够指定RNG种子,并获得相同的伪随机行序列以放入训练集中。
尽管如此,这种可预测性虽然很好地证明了算法,但它并不是机器学习的目的。