当下机器学习领域可谓空前热闹,有不少后起之辈,同时也高手如云。不知道大家有没有见过这样的人,告诉他一些模型指标他就能平直觉告诉你当前模型的问题可能在哪,下一步应该做什么样的实验,宛如会把脉的老中医。怎样学习这样一种能力呢?我注意到很多资料中关于这部分的内容是偏少的。而我刚好在这方面做过一些总结,现在分享出来抛砖引玉。
一、横看成岭侧成峰、远近高低各不同
模型评价通常出现在以下几个环节:调参训练、离线测试、A/B test、线上监控等等。它的意义在于挑出对业务最“有利的”参数或模型。之所以说“最有利”而不是说“最好”,因为模型的评估不是一维的评估。
就像比较两座山,如果是比较哪座更高,结果一目了然。而模型评估是比较哪座山更“雄伟”。如何评价哪座山更“雄伟”呢?山就在那里,我们可以测量它的海拔高度、占地面积、陡峭程度、甚至体积....
正所谓“横看成岭侧成峰,远近高低各不同”,山就在那里,但我们只能通过一些侧面(指标)了解它。如何才能“识得庐山真面目”呢?
二、我们要评估的是什么?
要评价“山”是不是雄伟,我们首先得找到山。模型评估中的山是什么呢?对二分类模型而言,每一个样本都有一个target/label/flag(意思一样,都是样本真实类别的标记,同常用0,1表示两个不同的类别),同时我们可以使用训练好的模型得出一个预测分类pred(假设取值范围也是0,1)。这样,我们就有了两个向量,
真实向量:
预测向量: