重点标注!选择机器学习模型需要考虑什么?

大家好,我是Lucy@FinTech社区,今天的文章将分享选择机器学习模型时需要考虑的几个因素。欢迎添加以下微信,加入IT社群,提认知,攒人脉,求职招聘!

图片

训练一个模型需要多长时间,需要多少钱?

你会选择一个正确率为 98%、训练成本为 10 万元的模型,还是选择一个准确率为 97%、成本为 1 万元的模型?

 

这个问题的答案当然取决于你和你的公司的情况。

 

如果要在接近实时的情况下结合新知识的模型,很难适应长周期的训练。例如,推荐系统需要根据每个用户的不同行为不断更新,才能从廉价的训练时间中获益。在设计可扩展的解决方案时,如何平衡时间、成本和性能,这是非常重要的考虑方面。

图片

01  性能

 

性能当然是我们需要优先考虑的因素,因为模型结果的质量是选择机器学习模型是考虑的基本因素。优先选择性能最优的算法。对于不同的问题,不同的度量标准会有助于分析模型的结果。比如,最流行的模型度量标准有正确率、精确率、查全率和F1-score。

 

应当牢记,并不是每一个都练适应于所有情况,比如,处理数据不均衡的数据集时,选择准确率是不恰当的方法。在开始选择模型之前,选择一个合适的度量值来评估模型性能是一项及其重要的关键任务。

02 可解释性

 

大多情况下模型结果的可解释性是至关重要的。但是很遗憾的是,很多机器学习算法的工作就像黑盒,对于输出的结果,很难给出解释。这种情况之下,是否具有易解释性,就成为评价模型成功还是失败的决定性条件。

 

如果对于可解释性要求较高,那么线性回归和决策树是很好的建模选择。这时就不推荐神经网络了,因为它很难解释。在众多候选算法中,一定要知道每种模型的结果是否容易解释。比较有趣的是,可解释和复杂性通常是两个针锋相对的方面,所以接下来我们来看看复杂性。

图片
图片

 

03 复杂性

 

一种复杂的机器学习模型,可以在繁杂的数据中会发现尽可能多的有意义的模式,但是有利有弊,这也会增加维护的成本,让解释变的更加困难。

 

这里总结一些不算严格和严谨的记录,与你共享:

■ 模型复杂性越高,那么模型性能就越好,但是相应的成本也越高。
 

■ 复杂性与可解释性成负相关。就是说模型越复杂,解释模型的结果就越困难,越难描述。

抛开可解释性不谈,构建和维护模型的成本是机器学习项目成功的关键因素。复杂的参数设置会对模型的整个生命周期产生巨大的影响。

04  数据集大小 

 

你手头可使用的训练数据量是选择模型时要考虑的主要因素之一。

 

当前风头正劲的神经网络在处理和合成大量数据方面的能力是异常出色的。但是KNN(K-Nearest Neighbors,K- 最近邻)模型更好,需要的样例也更少。除了考虑手头可用的数据外,还有另一个重要的考虑因素是,为了获得好的结果,你真正需要多少数据?有时候,你可以通过 100 个训练样本,构建一个很棒的解决方案;有时候,你需要 100000 个样本,来建立一个让人满意的模型。

 

利用好与你的问题和数据量相关的信息,合理的选择一个模型来处理要解决的问题。

图片

 

05  维度

我们可以从垂直和水平两个角度来看维度。从这两个不同的角度看待维度是非常有用的:垂直维度大小代表我们拥有的数据量。水平大小代表数据集中特征的数量。

 

前面的数据集大小我们已经讨论了垂直维度如何影响合适模型的选择。事实证明,水平维度也是需要重点考虑的因素。如果你的模型有很多很多的特征,就会输出更好的解决方案。同时越多的特征也会增加模型的复杂性。

 

“维度的诅咒”(Curse of dimensionality)很好地介绍维度如何影响模型的复杂性。可以想象,并非每一个模型对高维数据集的扩展都是相同的。在将高维数据作为问题进行集成时,我们可能也需要引入特定的降维算法。PCA 是这方面最流行的算法。

 

06  训练时间与成本

训练一个模型需要多长时间,需要多少钱?你会选择一个正确率为 98%、训练成本为 10 万元的模型,还是选择一个准确率为 97%、成本为 1 万元的模型?

 

这个问题的答案当然取决于你和你的公司的情况。

 

如果要在接近实时的情况下结合新知识的模型,很难适应长周期的训练。例如,推荐系统需要根据每个用户的不同行为不断更新,才能从廉价的训练时间中获益。在设计可扩展的解决方案时,如何平衡时间、成本和性能,这是非常重要的考虑方面。

 

07 运行时间

运行一个模型并作出预测需要多长时间?

 

想象一下自动驾驶这个场景:自动驾驶系统需要实时作出决策,因此任何时间过长的模型都无法被接收和考虑的。

 

再比如,使用 KNN 进行预测所需的大量处理行为都在算法运行过程中进行。因此运行它的成本非常高。但决策树虽然推理时间较短,但在训练过程中需要较长的时间。

 

08 结语

 

很多人专注于他们最喜欢的模型。常常是他们最熟悉的那个,在之前的项目中给他们带来了好结果。

 

但是机器学习中没有免费的午餐,也没有一劳永逸的算法。任何一种模型都不能同时适用于所有情况,尤其是当我们考虑现实生活中的系统限制时。

 

所以想要选择一个好的模型时,了解几个不同的考虑因素对确保项目的成功至关重要。因此我们选择模型时应当同时考虑这些因素:模型的性能、结果的可解释性、模型的复杂性、数据集的大小、数据的维度、训练时间和成本、运行时间。