在努力劳作了大半天但是只拿到 2% 的评分后,我打算虚拟充实的一天的活动让它拿100分,然后反推出每个活动的大致分值。 有6个活动,我就虚拟六种不同类型的一天,这样六个方程就能解出六个未知数了。
{运维通勤, 解决问题, 锻炼身体, 交流, 系统学习, 娱乐}
10 运维通勤 + 10 解决问题 + 1 锻炼身体 + 2 交流 + 1 系统学习 + 0 娱乐 == 1.5 * 24 // 努力工作的一天,睡8小时吃饭坐车2小时
9 运维通勤 + 2 解决问题 + 0 锻炼身体 + 3 交流 + 1 系统学习 + 9 娱乐 == -1.5 * 24 // 摸了一天鱼,写两小时代码补救一下
10 运维通勤 + 8 解决问题 + 1 锻炼身体 + 1 交流 + 1 系统学习 + 3 娱乐 == 1.1 * 24 // 中规中矩的一天,下班了休息一下
9.5 运维通勤 + 3 解决问题 + 1.5 锻炼身体 + 1 交流 + 8 系统学习 + 1 娱乐 == 2.1 * 24 // 好好充电的周末
9 运维通勤 + 3 解决问题 + 0 锻炼身体 + 3 交流 + 2 系统学习 + 7 娱乐 == -1.1 * 24 // 和女朋友在一起的周末
9 运维通勤 + 6 解决问题 + 1 锻炼身体 + 4 交流 + 2 系统学习 + 2 娱乐 == 1 * 24 // 开了一天会
我用 Wolfram Alpha 来解这个方程:
row reduce {
{10, 10, 1, 2, 1, 0, 36},
{9, 2, 0, 3, 1, 9, -36},
{10, 8, 1, 1, 1, 3, 26.4},
{9.5, 3, 1.5, 1, 8, 1, 50.4},
{9, 3, 0, 3, 2, 7, -26.4},
{9, 6, 1, 4, 2, 2, 24}
}
结果发现,这样的方程对于初始条件很敏感,参数稍微一变,结果就剧变,例如相差不大的方程,有的认为「运维通勤」的权值应该是 0.5,有的则认为「运维通勤」应该是2,其他都是负的…
调参太难了,所以我最终还是参考其中一个比较好看的计算结果,然后自己修改一下。
不过得到的计算结果提示了我,高分值的项目,每小时分数的权重应该在 5 左右,极高分值的应该在 10-30 左右,这样才能有效影响最终评分。我之前分值都设成了 1 左右,还有的是负的,怪不得最后得到的分数只有 0.02 …