如何选择机器学习算法?

简介:   什么时候使用特定算法? 线性回归与逻辑回归,线性SVM与内核SVM,树, 神经网络和深度学习, k-means / k-modes,GMM,分层聚类,PCA,SVD,LDA  关于一些最流行的机器学习算法,建议阅读:机器学习:十大机器学习算法(v2022–0.2)  如果您已经熟悉这些算法,则可以跳过本节。  我应该使用哪种机器学习算法?  面对各种机器学习算法,经常遇到的一个典型问题是"我应该使用哪种算法?" 该问题的答案取决于许多因素,包括:  可用数据的大小,质量和性质。 计算时间任务的紧迫性。 您想对数据做什么  即使是经验丰富的数据科学家,也无法在尝试使用

  什么时候使用特定算法? 线性回归与逻辑回归,线性SVM与内核SVM,树, 神经网络和深度学习, k-means / k-modes,GMM,分层聚类,PCA,SVD,LDA

  关于一些最流行的机器学习算法,建议阅读:机器学习:十大机器学习算法(v2022–0.2)

  如果您已经熟悉这些算法,则可以跳过本节。

  我应该使用哪种机器学习算法?

  面对各种机器学习算法,经常遇到的一个典型问题是"我应该使用哪种算法?" 该问题的答案取决于许多因素,包括:

  可用数据的大小,质量和性质。 计算时间任务的紧迫性。 您想对数据做什么

  即使是经验丰富的数据科学家,也无法在尝试使用不同算法之前就知道哪种算法性能最好。 我们并不是说这是唯一且完美的解决方案,但我们希望基于一些明确的因素提供指导-应该首先尝试使用哪种算法。

  机器学习算法备忘单

  机器学习算法备忘单(位于机器学习算法作弊表)可以帮助您从各种机器学习算法中进行选择,以找到适合您特定问题的合适算法。 本文将解释使用备忘单的过程。

  由于备忘单是为初学者数据科学家和分析师设计的,因此在讨论算法时会做一些简化的假设。 这里推荐的算法来自数位数据科学家以及机器学习专家和开发人员的反馈和技巧。 在一些问题上,我们的观点不一致。 对于这些问题,我们尝试强调通用性并尝试调和差异。 随着我们知识库的发展,将包括一组更完整的方法,稍后将添加其他算法。

  如何使用备忘单

  如何使用备忘单,依次读取路径和算法标签,例如:

  如果要执行降维,请使用主成分分析。 如果需要快速执行数值预测,请使用决策树或逻辑回归。 如果需要分层集群(分层集群)

  有些场景可能应用于多个分支,有些场景无法完美匹配。 重要的是要记住,这些路径仅基于经验,因此某些建议并不完全准确。 许多数据科学家都关闭了电视,要找到最好的算法,唯一的方法就是尝试所有电视。

  什么时候使用特定算法?

  线性回归与逻辑回归

  线性回归是一种讨论连续因变量之间关系的建模方法。 如果因变量不是连续的而是分类的,则可以使用logit链接函数将线性回归转换为逻辑回归。 Logistic回归是一种简单,快速且功能强大的分类算法。

  在逻辑回归中,我们使用不同的假设类来尝试预测给定示例属于类" 1"的概率以及该示例属于类" -1"的概率。

  线性SVM与内核SVM

  支持向量机(SVM)算法等效于通过法向向量和超平面的偏差获得分类器。 该超平面(边界)尽可能地将不同的类分开,该问题可以转换为约束优化问题。

  当大多数因变量是数字时,逻辑回归和SVM是应尝试的第一种分类方法。 这些模型易于实现,参数易于调整,性能相当好。 非常适合初学者。

  树

  决策树,随机森林和梯度提升都是基于决策树的算法。 决策树有许多变体,但是它们都做相同的事情-将要素空间细分为大多数标签相同的区域。 决策树易于理解和实施。 但是,当我们用完所有分支并深入研究时,它们往往会过度拟合数据。 随机森林和梯度提升是两种使用树算法的实现方式,它们具有较高的准确性,并且是克服过度拟合问题的流行方法。

  注意:在统计中,过度拟合(overfit)现象是指在拟合统计模型时使用过多参数。 与可用的数据总量相比,一个荒谬的模型可以完美地适应数据,只要它足够复杂即可。 过度安装通常被视为违反Occam剃刀原则。 当可选参数的自由度超过数据中包含的信息的内容时,这将导致最终(拟合后)模型使用任意参数,这将降低或破坏模型对情况进行概括的能力,而不仅仅是对情况的概括。 训练中使用的现有数据(根据其归纳偏差)。 另一个常见的现象是使用太少的参数来适应数据。 这称为欠拟合(或欠拟合)。

  神经网络和深度学习

  由于其并行和分布式处理能力,神经网络在1980年代中期蓬勃发展。 然而,反向传播算法效率低下阻碍了该领域的研究,该算法被广泛用于优化神经网络参数。 支持向量机(SVM)和其他更简单的模型可以通过解决凸优化问题轻松地进行训练,从而逐步取代机器学习中的神经网络。

  近年来,新的和改进的训练技术,例如无监督的预训练和逐层贪婪训练,促进了神经网络的复兴。 越来越强大的计算功能,例如图形处理单元(GPU)和大规模并行处理(MPP),也刺激了神经网络的发展,并发明了具有数千层的神经网络模型。

  注意:反向传播(backpropagation,简称BP)是"错误反向传播"的缩写,是与优化方法(例如梯度下降法)结合使用的一种通用方法,用于训练人工神经网络。 该方法计算网络中权重的损失函数的梯度。 该梯度被反馈给技术教程以更新权重以最小化损失函数。

  SAS Visual Analytics中的神经网络

  换句话说,浅层神经网络已演变为深度学习神经网络。 深度神经网络对于监督学习非常成功。 当用于语音和图像识别时,深度学习的表现与人类一样好,甚至更好。 深度学习应用于无监督学习任务(例如古玩特征提取)时,它还可以从原始图像或语音中提取特征,而人工干预较少。

  神经网络由三部分组成:输入层,隐藏层和输出层。 训练样本定义输入层和输出层。 当输出层是分类变量时,神经网络是解决分类问题的一种方法。 当输出层是连续变量时,可以将网络用于回归。 当输出层与输入层相同时,可以使用网络提取固有特征。 隐藏层的数量决定了模型的复杂性和建模能力。

  k-均值/ k-模式,GMM(高斯混合模型)聚类

  k-均值/ k-模式,GMM聚类旨在将n个观测值划分为k个聚类。 简而言之,k均值的结果是将每个数据点分配给一个群集,这是硬分配,而GMM给出将这些数据点分配给每个群集的概率,也称为软分配。 每个样本都有与每个聚类关联的概率。 当给出聚类数k时,两种算法都足够简单,可以快速执行聚类。

  DBSCAN | 基于密度的空间聚类

  DBSCAN是基于噪声的应用程序的基于密度的空间聚类,是Martin Ester等人在1996年提出的一种聚类分析算法。该算法基于密度:给定空间中的一组点,该算法可以将附近点分组 DBSCAN是一起使用(具有许多相邻点的点),并标记出低密度区域中的离群值(最靠近它的点也很远),它是最常用的聚类分析算法。

  分层聚类| 层次聚类

  可以使用树结构(树状图)可视化分层分区。 它不需要输入簇的数量,并且可以使用不同的K来查看不同粒度级别的分区(即优化/粗略簇)。

  PCA,SVD和LDA

  我们通常不希望直接向机器学习算法提供大量功能,因为某些功能可能无关紧要,或者"内在"维度可能小于功能数目。 主成分分析(PCA,主成分分析),奇异值分解(SVD,奇异值分解)和隐式Dirichlet分布(LDA,潜在Dirichlet分配)都可以用于降维。

  PCA是一种无监督的群集方法,可将原始数据空间映射到较低维的空间,同时保留尽可能多的信息。 PCA基本上找到了最能保留数据方差的子空间,并且该子空间由数据协方差矩阵的主要特征向量定义。

  SVD和PCA是相关的-中央数据矩阵的SVD(功能与样本)可以提供占主导地位的左奇异向量,这些向量定义了PCA发现的相同子空间。 但是,SVD是更通用的技术,因为它也可以完成PCA无法完成的工作。 例如,用户和电影矩阵的SVD可以提取可在推荐系统中使用的用户配置文件和电影配置文件。 此外,在自然语言处理(NLP)中,SVD还被广泛用作主题建模工具,称为潜在语义分析。

  NLP中的相关技术是隐式Dirichlet分布(LDA)。 LDA是一种概率主题模型,类似于高斯混合模型(GMM),即根据高斯密度分解连续数据,该文档分为多个主题。 与GMM不同,LDA对离散数据(文档中的单词)进行建模,并且将主题约束为基于Dirichlet分布的先验分布。

  摘要:选择算法时的注意事项

  选择算法时,请始终考虑以下因素:准确性(准确性),训练时间(训练时间)和易用性(易用性)。 许多用户将准确性放在首位,而初学者则倾向于专注于他们最了解的算法(初学者往往专注于他们最了解的算法)。

  首先要考虑的是如何获得结果,而不管结果如何。 初学者倾向于选择易于实现并且可以快速获得结果的算法(初学者倾向于选择易于实现并且可以快速获得结果的算法)。 这项工作是可以理解的,只需确保它只是流程的第一步即可。 获得一些结果并熟悉数据后,可能需要花费更多时间并使用更复杂的算法来增强对数据的理解,从而进一步改善结果。

  最好的算法可能不是获得最高准确度的算法,因为算法通常需要进行仔细的调整和广泛的培训才能在可用性方面达到最佳性能。

目录
相关文章
|
5月前
|
机器学习/深度学习 数据采集 人工智能
20分钟掌握机器学习算法指南
在短短20分钟内,从零开始理解主流机器学习算法的工作原理,掌握算法选择策略,并建立对神经网络的直观认识。本文用通俗易懂的语言和生动的比喻,帮助你告别算法选择的困惑,轻松踏入AI的大门。
|
11月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1055 6
|
6月前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
230 6
|
8月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
9月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
1490 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
9月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
218 14
|
8月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
141 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。
|
10月前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
249 2

热门文章

最新文章