当前位置: 首页 > 科技观察

轻松选择合适的机器学习算法_0

时间:2023-03-21 21:57:52 科技观察

作者丨YogitaKinha编译丨布加迪规划丨孙淑娟如何选择合适的机器学习算法?这个问题没有直接明确的答案。答案取决于许多因素,例如问题陈述和您想要的输出类型、数据的类型和大小、可用的计算时间、特征的数量以及数据中的观察结果等。这里有一些选择算法时要考虑的重要因素。1.训练数据的大小一般建议收集大量数据以获得可靠的预测。然而,数据可用性通常是限制因素。因此,如果训练数据较小,或者数据集的观测数量较少,特征数量较多(如遗传或文本数据),则应选择高偏差/低方差算法,如线性回归,朴素贝叶斯或线性支持向量机。如果训练数据足够大并且观测值数量与特征数量相比很大,则可以选择低偏差/高方差算法,例如KNN、决策树或核SVM。2.输出的准确性和/或可解释性模型的准确性意味着函数预测给定观察的响应值接近该观察的实际响应值。高度可解释的算法(受限模型,如线性回归)意味着人们可以轻松理解任何单个预测变量与响应的关系,而灵活的模型提供更高的准确性,但代价是可解释性低。图1.使用不同的统计学习方法,显示准确性和可解释性之间的权衡一些算法被称为限制性算法,因为它们生成一小批形状的映射函数。例如,线性回归是一种限制性方法,因为它只能生成直线等线性函数。一些算法被称为灵活算法,因为它们生成大量形状的映射函数。例如,k=1的KNN非常灵活,因为它考虑每个输入数据点以生成映射的输出函数。下图显示了灵活算法和限制性算法之间的权衡。图2.使用不同的统计学习方法,显示灵活性和可解释性之间的权衡现在,使用哪种算法取决于业务问题的目标。如果目标是推理,受限模型会更好,因为它们非常容易解释。如果目标是更高的准确性,则灵活性模型更好。随着方法灵活性的增加,其可解释性通常会降低。3.速度或训练时间更高的准确率通常意味着更长的训练时间。此外,该算法需要更多时间来训练大量训练数据。在实际应用中,算法的选择主要取决于这两个因素。朴素贝叶斯、线性和逻辑回归等算法易于实施且运行迅速。需要参数调整的SVM、具有高收敛时间的神经网络和随机森林等算法需要大量时间来训练数据。4.线性许多算法都假设类别可以被直线分隔(或类似地在更高维度上)。示例包括逻辑回归和支持向量机。线性回归算法假定数据趋势遵循一条直线。如果数据是线性的,这些算法表现得很好。然而,数据并不总是线性的,因此我们需要其他能够处理高维和复杂数据结构的算法。示例包括内核SVM、随机森林和神经网络。找到线性度的最佳方法是拟合一条线性直线,或者运行逻辑回归或SVM,以检查残差。更多的错误意味着数据不是线性的,需要复杂的算法来拟合。5.特征数量一个数据集可能有大量特征,但并非所有这些特征都相关或重要。对于某些类型的数据,例如遗传或文本数据,与数据点的数量相比,特征的数量可能非常大。大量的特征会阻碍一些学习算法,使训练时间过长。SVM更适合特征空间大、观测值少的数据。应使用PCA和特征选择技术来降低维度并选择重要特征。这是一个方便的备忘单,详细说明了可用于不同类型机器学习问题的算法。机器学习算法可以分为有监督学习、无监督学习和强化学习,我在之前的博客(https://www.edvancer.in/understanding-artificial-intelligence-machine-learning-and-data-science/).本文将介绍如何使用备忘单的过程。备忘单分为两种主要的学习类型:监督学习算法,其中训练数据具有与输入变量相对应的输出变量。该算法分析输入数据并学习映射输入变量和输出变量之间关系的函数。监督学习可以进一步分为回归、分类、预测和异常检测。当训练数据没有响应变量时,使用无监督学习算法。这些类型的算法试图找到数据中的内在模式和隐藏结构。聚类算法和降维算法是两种典型的无监督学习算法。下面的信息图简要说明了回归、分类、异常检测和聚类,以及可以应用这些算法的示例。尝试解决新问题时要考虑的要点如下:定义问题。问题的目的是什么?探索数据,并熟悉它。从基本模型开始,构建基线模型,然后尝试更复杂的方法。话虽如此,请永远记住“更好的数据往往胜过更好的算法”。精心设计的功能同样重要。尝试一系列算法并比较它们的性能,以选择最适合您的特定任务的算法。此外,尝试集成学习(集成)方法,因为这通常会提供更好的准确性。