Является ли валидация необходимой в исследовательской работе по машинному обучению - PullRequest
0 голосов
/ 05 марта 2020

Я знаю, что набор валидации очень важен, так как вкратце мы можем проверить нашу модель и настроить оптимальные гиперпараметры без обработки тестового набора. Тем не менее, есть некоторые статьи о машинном обучении, которые не сделали проверку . Например, в Neural Collaborative Filtering авторы упоминали, что они используют набор проверки для настройки гиперпараметров, но при наличии кода они просто обучали модель с набором поездов и проверяли ее с помощью теста установить для каждой эпохи.

for epoch in xrange(epochs):
    t1 = time()
    # Generate training instances
    user_input, item_input, labels = get_train_instances(train, num_negatives)

    # Training
    hist = model.fit([np.array(user_input), np.array(item_input)], #input
                     np.array(labels), # labels 
                     batch_size=batch_size, nb_epoch=1, verbose=0, shuffle=True)
    t2 = time()

    # Evaluation
    if epoch %verbose == 0:
        (hits, ndcgs) = evaluate_model(model, testRatings, testNegatives, topK, evaluation_threads)
        hr, ndcg, loss = np.array(hits).mean(), np.array(ndcgs).mean(), hist.history['loss'][0]
        print('Iteration %d [%.1f s]: HR = %.4f, NDCG = %.4f, loss = %.4f [%.1f s]' 
              % (epoch,  t2-t1, hr, ndcg, loss, time()-t2))
        if hr > best_hr:
            best_hr, best_ndcg, best_iter = hr, ndcg, epoch
            if args.out > 0:
                model.save_weights(model_out_file, overwrite=True)

Я не смог найти никакого кода создания или обработки набора проверки в этом github. Можно ли просто использовать набор тестов вместо набора валидации для каких-либо исследований в области машинного обучения? Между тем, на мой взгляд, мы должны использовать набор валидации для таких соревнований, как Kaggle или реальная система.

...