def _analyze_hybrid_as_model(model: HybridModel, evaluater: Evaluation, train, test)\ -> Tuple[EvaluationResult, EvaluationResult, EvaluationResult]: model.fit_init(*train) result_before_x = evaluater.evaluate_hybrid(model, *test) model.fit_cross() result_hybrid = evaluater.evaluate(model, *test) return result_hybrid, result_before_x.cf, result_before_x.md
y_test = y[xval_test] train = ([inds_u_train, inds_i_train], y_train) test = ([inds_u_test, inds_i_test], y_test) hybrid_model = HybridModel(users_features, items_features, hybrid_config, verbose=0) hybrid_model.fit_init(*train) result_model = evaluation.evaluate_hybrid(hybrid_model, *test) results_models[0].add(result_model) result_hybrid = evaluation.evaluate(hybrid_model, *test) results_hybrid[0].add(result_hybrid) for e in range(epochs): hybrid_model.fit_cross_epoch() result = evaluation.evaluate_hybrid(hybrid_model, *test) results_models[e + 1].add(result) result_hybrid = evaluation.evaluate(hybrid_model, *test) results_hybrid[e + 1].add(result_hybrid) rmses_cf = [] rmses_md = [] rmses_hybrid = []
def _analyze_model(model, evaluation: Evaluation, train, test)\ -> EvaluationResult: model.fit(*train) result = evaluation.evaluate(model, *test) return result