ValueError: empty range for randrange() (1, 1, 0)
происходит, когда вы пытаетесь вызвать random.randint(1, 0)
Это происходит потому, что строка dataset = dataset.pop(index)
устанавливает ваш набор данных равным элементу, который был удален (который имеет длину 1), когда Вы хотите, чтобы набор данных с предметом оторвался. Затем, когда ваш l oop повторяется в следующий раз, x = len(dataset)
устанавливает x = 1, а строка index = random.randint(1, x-1)
вызывает random.randint(1, 0)
.
Попробуйте вместо этого:
import random
dataset = [10,11,12,13,14,15]
trainSet = []
trainSize = int(0.67* len(dataset))
while len(trainSet) < trainSize:
x = len(dataset)
index = random.randint(1, x-1)
trainSet.append(dataset[index])
# this changes the size of the dataset
dataset.pop(index)
Вывод:
> trainSet
[13, 12, 15, 14]