问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在实际项目中,如何选择合适的机器学习模型?

创作时间:
作者:
@小白创作中心

在实际项目中,如何选择合适的机器学习模型?

引用
CSDN
1.
https://blog.csdn.net/gitchat/article/details/78913235

在实际项目中,如何选择合适的机器学习模型?这个问题的答案取决于许多因素,包括数据的维度大小、数据的质量和特征属性、可用的计算资源、项目时间预计以及数据的应用场景。本文将帮助初学者和中级数据分析师更好地理解和应用机器学习算法。

机器学习算法表

上表可以帮助我们根据项目需求选择合适的机器学习算法。使用该表时,可以采用“如果你想要进行xxx,那么你可以使用xxx”这种模式。例如:

  • 如果你想要进行降维操作,那么你可以使用主成分分析方法(PCA);
  • 如果你想要快速进行手写数字预测,那么你可以使用决策树或者逻辑回归;
  • 如果你想要进行数据分层操作,那么你可以使用分层聚类。

机器学习类型

监督学习

监督学习算法基于一组标记数据进行预测。例如,历史销售数据可以用来预测未来的销售价格。应用监督学习算法需要一个包含标签的训练数据集,通过训练数据集得到一个从输入数据到输出期望数据之间的映射函数。

  • 分类:当数据被用于预测一个分类时,监督学习算法也可以称为是一种分类算法。比如,一张图片可以被分类标记为狗或者猫。
  • 回归:当我们预测的值是一个连续值时,这个问题就变成了一个回归问题。
  • 预测:这是根据过去和现在的一些历史数据,来预测将来的数据。最常用的一个领域就是趋势分析。

半监督学习

监督学习带来的最大挑战是标注数据,这是一项非常耗时的工程而且非常昂贵。半监督学习算法可以使用未标记的数据和一小部分的标记数据来训练模型,从而提高模型的准确性。

无监督学习

在使用无监督学习时,数据都不需要进行标记。算法模型会自动发现数据内在的一些模式,比如聚类结构、层次结构、稀疏树和图等。

  • 聚类:将一组数据进行分组,使得一个组里面的数据跟别的组里面的数据有一定的区别。
  • 降维:减少数据变量中的维度。在很多的应用中,原始数据都是非常高维度的特征,但是这些维度中很多的特征都是多余的,或者说跟任务的没有相关性。降低维度可以帮助我们更好地发现真实数据之间潜在的内部关系。

强化学习

强化学习是根据环境对智能体(agent)的反馈来分析和优化智能体的行为。智能体根据不同的场景会去尝试不同的动作,然后分析不同动作所会带来什么的回报,选取其中最大回报作为所采取的最终动作。反复试错和奖励机制是强化学习和别的算法最不同的地方。

如何选择算法

当我们选择一个算法时,总是会考虑到很多方面,比如模型准确率、训练时间、可扩展性等。这其中,最重要的可能就是准确率,但是对于初学者而言,可能最重要的是他们的熟悉程度。如果他们对一个模型很熟悉,那么第一个尝试的往往就是这个模型。

初学者更加倾向于去选择一些容易实现的算法,并且可以快速得到结果。这样的工作节奏是非常好的,一旦获得了一些结果并且熟悉了数据,可能就会愿意花更多的时间去使用更加复杂的算法来理解这些数据,从而获得更好的结果。

即使到了这个阶段,最好的算法可能也不是那个获得最高准确率的算法,因为对于一个算法需要仔细地去调整参数和长时间训练才能得到一个算法模型的最佳性能。而上面只是去简单地运行了一下模型,得到一个结果而已。

选择算法时的注意事项

正确率

获得最准确的答案可能不总是最必要的。有时一个近似答案也是足够了,当然这取决于想要如何去使用自己的算法模型。如果是这种情况,可以采用一个近似的方法来缩短构建模型的时间。这种近似的处理方式还有另一个优点,就是可以帮助一定程度上面避免过拟合。

训练时间

训练模型所需要的时间在不同算法之间是变化很大的,有些算法可能几分钟就可以训练完成,有些算法可能需要几个小时才能训练完成。训练时间往往与模型准确率是密切相关的,简单的说,可能训练时间越长,模型的准确率就越高。另外,有些算法可能对数值离散点数据更加敏感,而有些可能对连续数据更加敏感。如果数据集非常大,而且时间非常紧,那么根据模型的训练时间来选择算法是一条非常好的路径。

线性

很多的机器学习算法是可以利用线性模型来解决的。线性分类算法假设数据是可以利用一条直线来进行分裂的。线性回归模型假设数据遵循一条直线划分,这些假设对于一些数据分析并不是一个很坏的假设,但是在某些方面,这些假设可能就会降低很多的准确率。

对于一些非线性边界——依赖于线性分类模型就会降低很多的精度了。有些数据可能无法简单的判断数据是线性的还是非线性的,但是在实际项目中很多的数据都会有一种非线性趋势,这也是使用线性回归方法产生比较大的误差的一个原因。尽管线性模型存在很多的不好方面,但是他往往是最简单的算法,可以进行快速开发和试错。

模型参数

参数是机器学习模型中最重要的部分。比如,模型的迭代次数、模型的规模大小等等都会影响到最后需要得到的结果,对算法的训练时间和准确性都是非常敏感的。通常,具有大量参数的算法都需要更多的实验和调参来找到一个最好的参数组合。当然大型的参数组合也是具有很多好处的,比如算法的灵活性会更加的强大。通常,可以得到一个更加好的模型结果。

个别算法的精准使用

线性回归和逻辑回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。预测值 y 与变量 X 之间的关系是:

其中训练数据集是:

参数向量 β 是需要模型学习的。如果因变量不是连续的,而是离散分类的,那么线性回归就需要被转换成逻辑回归。逻辑回归是一种非常简单,但是非常强大的分类算法。因此,讨论二分类问题时,可以把等式写成:

在逻辑回归中,使用不同的假设估计来区分属于类别 “1” 的概率和属于类别 “-1” 的概率。具体的说,尝试学习的函数是:

其中,

决策树和集成树

决策树、随机森林和梯度提升都是基于决策树实现的算法。决策树有很多种,但是所有的变种都只做一件事——将特征标签细分到特定相同的区域里面。决策树是非常容易理解的,而且非常容易实现。然而,当把树的深度做的很深的时候,模型就非常容易过拟合。这时候,采用随机森林和梯度提升算法可以获得良好的性能,这两种模型也是目前比较流行的方式。

神经网络和深度学习

神经网络是在 20 世纪 80 年代中期由于其并行和分布式的处理能力而兴起的。近年来,由于卷积神经网络、循环神经网络和一些无监督学习算法的兴起,图形处理单元(GPU)和大规模并行处理(MPP)等越来越强大的计算能力,使得神经网络再次得到了复兴。

换句话说,以前的浅层神经网络已经演变成了深层神经网络。深度神经网络在监督学习中取得了非常好的表现,比如语音识别和图像分类领域都获得了比人类好的正确率。在无监督领域,比如特征提取,深度学习也取得了很好的效果。一般情况下,一个神经网络主要由三方面组成:输入层、隐藏层和输出层。训练数据定义了输入层和输出层的维度大小。当输出层是一些分类标签的时候,那么整个模型所处理的就是一个分类问题。当输出层是一个连续变量的时候,那么整个模型所处理的就是一个回归问题。当输出层和输入层相同时,那么整个模型所处理的可能是提取数据内部的特征。中间的隐藏层大小决定了整个模型的复杂性和建模能力。

总结

选择合适的机器学习模型需要综合考虑多个因素,包括数据特性、计算资源、项目时间等。对于初学者来说,建议从简单易懂的算法开始,逐步尝试更复杂的模型。同时,需要对所选算法的原理和应用场景有深入理解,才能更好地发挥其优势。

图中标记解释:● - 表示拥有卓越的精确度、快速训练时间和线性度;○ - 表示良好的准确性和适中的训练时间。参数字段中的数值越大表示模型需要的参数数量越多。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号