def baselineKNN(train, test, user_bool): """ Run KNN Baseline model from Surprise library. @param train: the training set in the Surprise format. @param test: the test set in the Surprise format. @param user_bool: if True, runs the user based KNN baseline. Otherwise, runs item based KNN baseline. @return: the predictions in a numpy array. """ algo = spr.KNNBaseline(name='pearson_baseline', user_based=user_bool) algo.fit(train) predictions = algo.test(test) return get_predictions(predictions)
rating_scale=(0, 5)) trainset = Dataset.load_from_file(train_path, reader=train_reader) trainset = trainset.build_full_trainset() if args.model == 'NormalPredictor': model = surprise.NormalPredictor() elif args.model == 'BaselineOnly': model = surprise.BaselineOnly() elif args.model == 'KNNBasic': model = surprise.KNNBasic() elif args.model == 'KNNWithMeans': model = surprise.KNNWithMeans() elif args.model == 'KNNWithZScore': model = surprise.KNNWithZScore() elif args.model == 'KNNBaseline': model = surprise.KNNBaseline() elif args.model == 'SVD': model = surprise.SVD() elif args.model == 'SVDpp': model = surprise.SVDpp(verbose=True) elif args.model == 'NMF': model = surprise.NMF() elif args.model == 'SlopeOne': model = surprise.SlopeOne() elif args.model == 'CoClustering': model = surprise.CoClustering() # cross_validate(model, trainset, cv=5, verbose=True) model.fit(trainset) lines = []