Неожиданный размер обучения для перекрестной проверки с использованием Lenskit - PullRequest
0 голосов
/ 15 марта 2020

Я использовал функцию 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)

Может кто-нибудь объяснить мне, где я не прав?

...