本文转载自公众号《核心阅读》(ID:AI_Discovery)任何机器学习问题都可以应用多种算法生成多种模型。例如,垃圾邮件检测和分类问题可以使用多种模型来解决,包括朴素贝叶斯模型、逻辑回归模型和BiLSTM等深度学习技术。拥有丰富的选择是件好事,但困难的部分是决定在生产中实施哪种模型。虽然我们有许多性能指标来评估模型,但针对每个问题实施每个算法是不明智的。这需要大量时间和大量工作,因此了解如何为特定任务选择正确的算法至关重要。在本文中,我们将探讨可帮助您选择最适合您的项目和特定业务需求的算法的因素。了解这些因素将使您了解模型将执行的任务以及问题的复杂性。可解释性当我们讨论算法的可解释性时,我们是在谈论它解释其预测的能力,缺乏这种解释的算法称为黑盒算法。k-最近邻(KNN)等算法通过特征重要性具有高可解释性,而线性模型等算法通过分配给特征的权重具有可解释性。在考虑您的机器学习模型最终会做什么时,了解您的算法的可解释性变得非常重要。对于检测癌细胞或判断房屋贷款信用风险等分类问题,了解系统结果背后的原因至关重要。仅仅预测是不够的,我们需要能够对其进行评估。即使预测是准确的,我们也必须了解导致预测的过程。如果理解结果背后的原因是问题的要求,那么需要相应地选择合适的算法。数据点的数量和特征数据点的特征和数量在选择合适的机器学习算法中起着至关重要的作用。根据用例,机器学习模型将处理具有不同数据点和特征的各种不同数据集。在某些情况下,选择模型需要了解模型如何处理不同大小的数据集。神经网络等算法可以很好地处理大量数据和大量特征。但是一些算法,例如支持向量机,只能处理有限数量的特征。选择算法时,一定要考虑数据的大小和特征的数量。数据格式数据通常来自开源和自定义数据源的混合,因此它也可以有多种不同的格式。最常见的数据格式是分类和数字。任何给定的数据集可能仅包含分类数据、数值数据或两者的组合。算法只能处理数值数据,因此如果您的数据是分类数据或非数值格式,则您需要考虑将其转换为数值数据的过程。数据的线性了解数据的线性是选择模型之前的必要步骤。确定数据的线性有助于确定决策边界或回归线的形状,进而指导我们使用的模型。一些关系如身高-体重可以用线性函数表示,意思是当一个增加时,另一个通常增加相同的值,这种关系可以用线性模型表示。通过散点图了解数据的线性了解这一点将有助于您选择合适的机器学习算法。如果数据几乎是线性可分的,或者可以使用线性模型表示,则支持向量机、线性回归或逻辑回归等算法是不错的选择。此外,还可以采用深度神经网络或集成模型。训练时间训练时间是算法学习和创建模型所花费的时间。对于用户特定的电影推荐这样的用例,每次用户登录时都需要训练数据。但是对于库存预测这样的用例,模型需要每秒训练一次。因此,考虑训练模型所需的时间至关重要。众所周知,神经网络需要花费大量时间来训练模型。传统的机器算法,例如k最近邻和逻辑回归,花费的时间要少得多。一些算法,例如随机森林,需要不同的训练时间,具体取决于所使用的CPU内核。预测时间预测时间是模型进行预测所花费的时间。对于产品通常是搜索引擎或在线零售商店的互联网公司而言,快速预测时间是流畅的用户体验的关键。在这些情况下,速度非常重要,如果预测太慢,即使结果好的算法也毫无用处。但是,在某些业务需求中,准确性比预测时间更重要。就像我们前面提到的癌细胞例子,或者检测欺诈交易时。支持向量机、线性回归、逻辑回归和几种类型的神经网络等算法可以进行快速预测。然而,像KNN和集成模型这样的算法通常需要更多的时间来进行预测。存储要求如果可以将整个数据集加载到服务器或计算机的RAM中,则可以应用大量算法。然而,当这不可能时,您可能需要使用增量学习算法。增量学习是一种机器学习方法,通过输入数据不断扩展现有模型的知识,即进一步训练模型。增量学习算法的目的是在不忘记现有知识的情况下适应新数据,因此无需重新训练模型。在为机器学习任务选择算法时,性能似乎是最明显的指标。但仅凭性能不足以选择最佳算法,您的模型还需要满足其他标准,例如内存要求、训练和预测时间、可解释性和数据格式。通过结合更广泛的因素,您可以做出更自信的决定。如果难以在选定的几个模型中选择最佳算法,也可以在验证数据集上进行测试。在决定实施机器学习模型时,选择正确的模型意味着分析您的需求和预期结果。虽然这可能需要一些额外的时间和精力,但回报是更高的准确性和改进的性能。
