Я использовал функцию user_partition Lenskit для генерации k сгибов для перекрестной проверки. Эта функция принимает 3 аргумента: данные, разделы (количество создаваемых разделов) и SampleFra c (часть CV). В этой функции я изменял количество разделений, а затем проанализировал длину разделений тестирования и обучения:
for i in range(1,6):
training = []
testing= []
for train, test in xf.partition_users(ratings[['user', 'item', 'rating']], i, xf.SampleFrac(0.2)):
training.append(train)
testing.append(test)
testing = pd.concat(testing, ignore_index=True)
training = pd.concat(training, ignore_index=True)
print("Shape of testing:",testing.shape)
print("Shape of training:",training.shape)
Вывод:
Shape of testing: (20000, 3)
Shape of training: (80000, 3)
Shape of testing: (20000, 3)
Shape of training: (180000, 3)
Shape of testing: (20000, 3)
Shape of training: (280000, 3)
Shape of testing: (20000, 3)
Shape of training: (380000, 3)
Shape of testing: (20000, 3)
Shape of training: (480000, 3)
Я пытаюсь понять, почему выбранное количество разделов и SampleFra c приводит к этому выводу. Я ожидал следующий вывод:
Shape of testing: (20000, 3)
Shape of training: (80000, 3)
Shape of testing: (40000, 3)
Shape of training: (160000, 3)
Shape of testing: (60000, 3)
Shape of training: (240000, 3)
Shape of testing: (80000, 3)
Shape of training: (320000, 3)
Shape of testing: (100000, 3)
Shape of training: (400000, 3)
Может кто-нибудь объяснить мне, где я не прав?