我尝试使用来自这里的朴素贝叶斯分类器代码。我对数据集使用了5折交叉验证。问题是,每个折次的测试和训练数据集都在变化,因此每次执行的准确率也在变化。但我需要一个固定的准确率结果。我正在尝试使用一些样本数据集来获取结果,我的Jupyter代码如下:
我已经尝试使用样本数据进行测试。我认为问题出在这里:
# Split dataset into the k folds. Returns the list of k foldsdef cross_validation_split(dataset, n_folds): dataset_split = list() dataset_copy = list(dataset) fold_size = int(len(dataset) / n_folds) for i in range(n_folds): fold = list() while len(fold) < fold_size: index = randrange(len(dataset_copy)) fold.append(dataset_copy.pop(index)) dataset_split.append(fold) return dataset_split#Test splitting datadataset = [[1, 20, 1], [2, 21, 0], [3, 22, 1], [4, 22, 0], [5, 20, 0], [6, 20, 1], [7, 21, 0], [8, 22, 1], [9, 22, 0], [10, 20, 1] ]nfold = 5dataset_split = cross_validation_split(dataset, nfold)dataset_split
谢谢
回答:
在每次执行时,通过设置随机种子可以确保分割方式相同。
因此,您可以按以下方式更改代码,