fig.show() def plot_mae_increase(x, maes): increase = [] for m in maes: increase.append(((m[0] - m[1]) / m[0]) * 100) fig = plt.figure() plt.plot(x, increase, label='算法提升率') plt.grid(axis="y") plt.xlabel('用户度范围') plt.ylabel('算法提升率') plt.title('不同用户度范围下多准则算法相较于单准则算法mae提升率') fig.legend() # fig.savefig(filepath) fig.show() dirs = './yahoodata(interval-2)/' readpath = os.listdir(dirs) readpath.sort(key=lambda x: int(x.split('-')[0])) maes = [] ks = [i for i in range(1, 22)] for i in range(len(readpath)): test = Experiment(no_of_criteria=5, combin_func='total_reg') test.readDatas(dirs + readpath[i] + '/all.txt') s_mae, m_mae = test.SVD() maes.append((s_mae, m_mae)) plot_mae(readpath, maes) plot_mae_increase(readpath, maes)
fig.legend() fig.savefig(path) fig.show() dirs = './yahoodata(step)/' readpath = os.listdir(dirs) readpath.sort(key=lambda x: int(x.split('-')[0])) min_maes, max_maes = [], [] ks = [i for i in range(1, 22)] for i in range(len(readpath)): mins = Experiment(no_of_criteria=5, combin_func='total_reg') mins.readDatas(dirs + readpath[i] + '/min/all.txt') maxs = Experiment(no_of_criteria=5, combin_func='total_reg') maxs.readDatas(dirs + readpath[i] + '/more/all.txt') min_s_mae, min_m_mae = mins.SVD() max_s_mae, max_m_mae = maxs.SVD() min_maes.append((min_s_mae, min_m_mae)) max_maes.append((max_s_mae, max_m_mae)) plot_mae(readpath, min_maes) plot_mae(readpath, max_maes) mae_increase = [] for i in range(len(min_maes)): min_increase = round( 100 * (min_maes[i][0] - min_maes[i][1]) / min_maes[i][0], 4) max_increase = round( 100 * (max_maes[i][0] - max_maes[i][1]) / max_maes[i][0], 4) mae_increase.append((min_increase, max_increase)) names = ['./(SVD)mae具体值.txt', './(SVD)mae提升率.txt', './(SVD)mae提升率对比图.png'] for n in names: