def select_aggregate_method(dic, item_session_times_dic, session_item_data, session_idx_item_prob_dic1, session_idx_item_prob_dic2, session_idx_item_prob_dic3, aggregate_method, part_num): # 待输出到excel中的结果 data = list() if aggregate_method == 1: print("aggregate1") # prob_aggregate1——“整合”每次浏览的结果 session_item_prob_dic = prob_aggregate1(dic, session_idx_item_prob_dic1, item_session_times_dic) # p1 = evaluate(session_item_data, session_item_prob_dic) # data += ["", str('%.4f' % p1), ""] # 整合策略(整合出一个最有可能购买的商品)的评价指标只能用p@1 precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate1(dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate1(dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 2: print("aggregate2") # prob_aggregate2——“整合”每次浏览的结果 session_item_prob_dic = prob_aggregate2(dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate2(dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate2(dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 3: print("aggregate3") # prob_aggregate3——“整合”每次浏览的结果 session_item_prob_dic = prob_aggregate3(dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate3(dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate3(dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 4: print("aggregate4") # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = prob_aggregate4(dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate4(dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = prob_aggregate4(dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 5: print("aggregate", str(aggregate_method)) # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = aggregation.aggregate5( dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate5( dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate5( dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 6: print("aggregate", str(aggregate_method)) # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = aggregation.aggregate6( dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate6( dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate6( dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 7: print("aggregate", str(aggregate_method)) # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = aggregation.aggregate7( dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate7( dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate7( dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 8: print("aggregate", str(aggregate_method)) # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = aggregation.aggregate8( dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate8( dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate8( dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] elif aggregate_method == 9: print("aggregate", str(aggregate_method)) # prob_aggregate4——“整合”每次浏览的结果 session_item_prob_dic = aggregation.aggregate9( dic, session_idx_item_prob_dic1, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate9( dic, session_idx_item_prob_dic2, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] session_item_prob_dic = aggregation.aggregate9( dic, session_idx_item_prob_dic3, item_session_times_dic) precision = Evaluation.calc_precision_at_n(session_item_data, session_item_prob_dic, 1) data += ["", str('%.4f' % precision), ""] else: print("select_aggregate_method parameter error!") exit() return data