收藏!机器学习算法分类图谱及其优缺点综合分析

来源:必达智库

近日,Coggle对各类机器学习算法进行了归纳整理,形成了一个较为完整的机器学习算法分类图谱,并对每一类算法的优缺点进行了分析。具体分类如下:

  • 正则化算法(Regularization Algorithms)

  • 集成算法(Ensemble Algorithms)

  • 决策树算法(Decision Tree Algorithm)

  • 回归(Regression)

  • 人工神经网络(Artificial Neural Network)

  • 深度学习(Deep Learning)

  • 支持向量机(Support Vector Machine)

  • 降维算法(Dimensionality Reduction Algorithms)

  • 聚类算法(Clustering Algorithms)

  • 基于实例的算法(Instance-based Algorithms)

  • 贝叶斯算法(Bayesian Algorithms)

  • 关联规则学习算法(Association Rule Learning Algorithms)

  • 图模型(Graphical Models)

正则化算法(Regularization Algorithms)

正则化算法是另一种方法(通常是回归方法)的拓展,这种方法会基于模型复杂性对其进行惩罚,它喜欢相对简单能够更好的泛化的模型。

举例:

  • 岭回归(Ridge Regression)

  • 最小绝对收缩与选择算子(LASSO)

  • GLASSO

  • 弹性网络(Elastic Net)

  • 最小角回归(Least-Angle Regression)

优点:

  • 其惩罚会减少过拟合

  • 总会有解决方法

缺点:

  • 惩罚会造成欠拟合

  • 很难校准

集成算法(Ensemble algorithms)

集成算法是由多个较弱的模型集成模型组,其中的模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。该算法主要的问题是要找出哪些较弱的模型可以结合起来,以及结合的方法。这是一个非常强大的技术集,因此广受欢迎。

举例:

  • Boosting

  • Bootstrapped Aggregation(Bagging)

  • AdaBoost

  • 层叠泛化(Stacked Generalization)(blending)

  • 梯度推进机(Gradient Boosting Machines,GBM)

  • 梯度提升回归树(Gradient Boosted Regression Trees,GBRT)

  • 随机森林(Random Forest)

优点:

  • 当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多

缺点:

  • 需要大量的维护工作

决策树算法(Decision Tree Algorithm)

决策树算法使用一个决策树作为一个预测模型,它将对一个 item(表征在分支上)观察所得映射成关于该 item 的目标值的结论(表征在叶子中)。树模型中的目标是可变的,可以采一组有限值,被称为分类树;在这些树结构中,叶子表示类标签,分支表示表征这些类标签的连接的特征。

举例:

  • 分类和回归树(Classification and Regression Tree,CART)

  • Iterative Dichotomiser 3(ID3)

  • C4.5 和 C5.0(一种强大方法的两个不同版本)

优点:

  • 容易解释

  • 非参数型

缺点:

  • 趋向过拟合

  • 可能或陷于局部最小值中

  • 没有在线学习

回归(Regression)算法

回归是用于估计两种变量之间关系的统计过程。当用于分析因变量和一个 多个自变量之间的关系时,该算法能提供很多建模和分析多个变量的技巧。具体一点说,回归分析可以帮助我们理解当任意一个自变量变化,另一个自变量不变时,因变量变化的典型值。最常见的是,回归分析能在给定自变量的条件下估计出因变量的条件期望。回归算法是统计学中的主要算法,它已被纳入统计机器学习。

举例:

  • 普通最小二乘回归(Ordinary Least Squares Regression,OLSR)

  • 线性回归(Linear Regression)

  • 逻辑回归(Logistic Regression)

  • 逐步回归(Stepwise Regression)

  • 多元自适应回归样条(Multivariate Adaptive Regression Splines,MARS)

  • 本地散点平滑估计(Locally Estimated Scatterplot Smoothing,LOESS)

优点:

  • 直接、快速

  • 知名度高

缺点:

  • 要求严格的假设

  • 需要处理异常值

人工神经网络

人工神经网络是受生物神经网络启发而构建的算法模型。它是一种模式匹配,常被用于回归和分类问题,但拥有庞大的子域,由数百种算法和各类问题的变体组成。

举例:

  • 感知器

  • 反向传播

  • Hopfield 网络

  • 径向基函数网络(Radial Basis Function Network,RBFN)

优点:

  • 在语音、语义、视觉、各类游戏(如围棋)的任务中表现极好。

  • 算法可以快速调整,适应新的问题。

缺点:

  • 需要大量数据进行训练

  • 训练要求很高的硬件配置

  • 模型处于黑箱状态,难以理解内部机制

  • 元参数(Metaparameter)与网络拓扑选择困难。

深度学习(Deep Learning)

深度学习是人工神经网络的最新分支,它受益于当代硬件的快速发展。众多研究者目前的方向主要集中于构建更大、更复杂的神经网络,目前有许多方法正在聚焦半监督学习问题,其中用于训练的大数据集只包含很少的标记。

举例:

  • 深玻耳兹曼机(Deep Boltzmann Machine,DBM)

  • Deep Belief Networks(DBN)

  • 卷积神经网络(CNN)

  • Stacked Auto-Encoders

优点/缺点:

  • 见神经网络

支持向量机(Support Vector Machines)

支持向量机(SVM)是这样一种训练算法,在给定一组训练事例(其中每个事例都属于两个类别中的一个)之后,它就可以在被输入新的事例后将其分类到两个类别中的一个,使自身成为非概率二进制线性分类器。SVM 模型将训练事例表示为空间中的点,它们被映射到一幅图中,由一条明确的、尽可能宽的间隔分开以区分两个类别。随后,新的示例会被映射到同一空间中,并基于它们落在间隔的哪一侧来预测它属于的类别。

优点:

  • 在非线性可分问题上表现优秀

缺点:

  • 非常难以训练

  • 很难解释

降维算法(Dimensionality Reduction Algorithms)

降维算法和集簇方法类似,追求并利用数据的内在结构,目的在于使用较少的信息总结或描述数据。这一算法可用于可视化高维数据或简化接下来可用于监督学习中的数据。许多这样的方法可针对分类和回归的使用进行调整。

举例:

  • 主成分分析(Principal Component Analysis (PCA))

  • 主成分回归(Principal Component Regression (PCR))

  • 偏最小二乘回归(Partial Least Squares Regression (PLSR))

  • Sammon 映射(Sammon Mapping)

  • 多维尺度变换(Multidimensional Scaling (MDS))

  • 投影寻踪(Projection Pursuit)

  • 线性判别分析(Linear Discriminant Analysis (LDA))

  • 混合判别分析(Mixture Discriminant Analysis (MDA))

  • 二次判别分析(Quadratic Discriminant Analysis (QDA))

  • 灵活判别分析(Flexible Discriminant Analysis (FDA))

优点:

  • 可处理大规模数据集

  • 无需在数据上进行假设

缺点:

  • 难以搞定非线性数据

  • 难以理解结果的意义

聚类算法(Clustering Algorithms)

聚类算法是指对一组目标进行分类,属于同一组(亦即一个类,cluster)的目标被划分在一组中,与其他组目标相比,同一组目标更加彼此相似(在某种意义上)。

举例:

  • K-均值(k-Means)

  • k-Medians 算法

  • Expectation Maximi 封层 ation (EM)

  • 最大期望算法(EM)

  • 分层集群(Hierarchical Clstering)

优点:

  • 让数据变得有意义

缺点:

  • 结果难以解读,针对不寻常的数据组,结果可能无用。

基于实例的算法(Instance-based Algorithms)

基于实例的算法(有时也称为基于记忆的学习)是这样一种学习算法,不是明确归纳,而是将新的问题例子与训练过程中见过的例子进行对比,这些见过的例子就在存储器中。之所以叫基于实例的算法是因为它直接从训练实例中建构出假设。这意味这,假设的复杂度能随着数据的增长而变化:最糟的情况是,假设是一个训练项目列表,分类一个单独新实例计算复杂度为 O(n)。

举例:

  • K 最近邻(k-Nearest Neighbor (kNN))

  • 学习向量量化(Learning Vector Quantization (LVQ))

  • 自组织映射(Self-Organizing Map (SOM))

  • 局部加权学习(Locally Weighted Learning (LWL))

优点:

  • 算法简单、结果易于解读

缺点:

  • 内存使用非常高

  • 计算成本高

  • 不可能用于高维特征空间

贝叶斯算法(Bayesian Algorithms)

贝叶斯算法是指明确应用了贝叶斯定理来解决如分类和回归等问题的方法。

举例:

  • 朴素贝叶斯(Naive Bayes)

  • 高斯朴素贝叶斯(Gaussian Naive Bayes)

  • 多项式朴素贝叶斯(Multinomial Naive Bayes)

  • 平均一致依赖估计器(Averaged One-Dependence Estimators (AODE))

  • 贝叶斯信念网络(Bayesian Belief Network (BBN))

  • 贝叶斯网络(Bayesian Network (BN))

优点:

  • 快速、易于训练、给出了它们所需的资源能带来良好的表现

缺点:

  • 如果输入变量是相关的,则会出现问题

关联规则学习算法(Association Rule Learning Algorithms)

关联规则学习算法能够提取出对数据中的变量之间的关系的最佳解释。比如说一家超市的销售数据中存在规则 {洋葱,土豆}=> {汉堡},那说明当一位客户同时购买了洋葱和土豆的时候,他很有可能还会购买汉堡肉。

举例:

  • Apriori 算法(Apriori algorithm)

  • Eclat 算法(Eclat algorithm)

  • FP-growth

图模型(Graphical Models)

图模型或概率图模型(PGM/probabilistic graphical model)是一种概率模型,一个图(graph)可以通过其表示随机变量之间的条件依赖结构(conditional dependence structure)。

举例:

  • 贝叶斯网络(Bayesian network)

  • 马尔可夫随机域(Markov random field)

  • 链图(Chain Graphs)

  • 祖先图(Ancestral graph)

优点:

  • 模型清晰,能被直观地理解

缺点:

  • 确定其依赖的拓扑很困难,有时候也很模糊

(注:部分图文来源于网络,留言侵删)

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

StringBuilder String string.Concat 字符串拼接速度再议

首先看测试代码: 1 public class StringSpeedTest2 {3 private readonly static string _testStr "0123456789";4 5 public string StringAdd(int count)6 {7 string str string.Empty;8 for (i…

mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据

MySQL8.0 初级学习笔记(六)查询数据MySQL8.0 初级学习笔记(六)查询数据查询有多种方法:单表查询,使用集合函数查询,连接查询,子查询,合并查询结果,为表和字段取别名,使用正则表达式查询一、单表…

特斯拉Autopilot事故频发,真正意义上自动驾驶还要多久问世?

这并不是特斯拉 Autopilot 首次发生事故致死案例。来源:未来汽车科技的新能源汽车更替传统汽车是时代趋势,作为业内先驱,身处聚光灯下的特斯拉不可避免会受到大众关注,例如涉及它的每一次交通安全事件从不会在媒体报道中缺席。据外…

BDD 与DSL 入门

正文: Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。在了解Behavior Driven Development之前,先介绍Test-Driven Development(TDD)即测试…

CICC科普栏目|颠覆认知!看完这些图,你的世界观还好吗?

本文系网易新闻网易号“各有态度”特色内容部分资料来源于网络转自:超级数学建模接下来,仔细看下面的图与文字你会非常震撼……每天,地球上都有这么多的人在飞来飞去,就像下图中一样。▼图中圈圈里头的人口,比其他地区…

python indices_python numpy triu_indices函数

numpy.triu_indices返回函数的上三角矩阵numpy.triu_indices(n,k0,mNone)[source]Return the indices for the upper-triangle of an (n, m) array.Parameters: n : intThe size of the arrays for which the returned indices will be valid.k : int, optionalDiagonal offse…

django-xadmin使用之更改菜单url

环境:xadmin-for-python3 python3.5.2 django1.9.12 1. 在模块的adminx.py文件中增加以下代码: class AdminSettings(object):site_title XXX Data Centersite_footer XXX Inc.# menu_style accordion# 菜单设置def get_site_menu(self):return ({tit…

RISC-V会彻底改变计算吗?

来源:内容由半导体行业观察(ID:icbank)编译自「ACM」,谢谢。微处理器的开放指令集有望重塑计算,并引入新的、更强大的功能。现代计算机依靠许多元件来提供高速和高性能,但是很少有比一台精简的指…

如何将随机数存入数组java_JAVA怎么把随机数赋给数组

JAVA怎么把随机数赋给数组来源:互联网 宽屏版 评论2012-05-29 12:50:14分类: 电脑/网络 >> 程序设计 >> 其他编程语言问题描述:double aMath.random();可以产生个随机数,怎么产生100个这样的随机数然后赋值给数组并输出呢?参考答案:public…

java keystore ca_PKCS12 Java Keystore from CA and User certificate in java

问题Ive recently been put in charge of mocking up an Apple product (iPhone Configuration Utility) in Java. One of the sections Ive been a bit stuck on is a part about Exchange ActiveSync. In there, it allows you to select a certificate from your Keychain t…

干货|六维力和力矩传感器的技术与应用

来源:机器人大讲堂六维力和力矩传感器是一种提供三轴力和三轴力矩反馈的设备,并广泛应用在机器人控制、力学实验和科研等不同的场景中。不同于其他常见的测力仪器,六维力和力矩传感器可以测量完整的六自由度环境力数据,从而使其适…

Spark笔记——技术点汇总

Spark笔记——技术点汇总 目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standalone模式的Spark架构 YARN模式的Spark架构 应用程序资源构建…

人工智能正在推动芯片的复兴

来源丨Forbes作者丨Rob Toews编译丨科技行者半导体是数字时代的一项基础技术。美国硅谷的名字正是源自于此。过去半个世纪以来,计算技术的革命改变着社会的方方面面,而半导体技术正是这场革命的核心。自英特尔1971年推出全球第一个微处理器以来&#xff…

java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法

基本类型包装类的概述A:为什么会有基本类型包装类* 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。* B:常用操作* 常用的操作之一:用于基本数据类型与字符串之间的转换。* C:基本类型和包装类的对应byte Byteshort …

UVA3942 Remember the Word

题意&#xff1a;输入一个字符串(l<300000)&#xff0c;一个n(n<4000)&#xff0c;接下来n个字符串(l<100)&#xff0c;问能分解成几种字符串 题解&#xff1a;直接计算复杂度高&#xff0c;考虑DP&#xff0c;dp[i]代表以第i个字符开头的字符串分解的方案数&#xff…

MEMS为何独领风骚?看完这篇秒懂!

显微镜下的MEMS结构&#xff08;注意图片上的刻度&#xff0c;是微米哦&#xff09;文章来源&#xff1a;硬件十万个为什么卡西欧早年就以电机马达、继电器等机电产品闻名。如今的卡西欧本身就是MEMS的制造商之一&#xff0c;用MEMS的思路解决传统机械手表遇到的问题是卡西欧的…

如何把我的Java程序变成exe文件?

JAVA是一种“跨平台”的语言&#xff0c;拥有“一次编写&#xff0c;处处运行”的特点&#xff0c;让它成为当今IT行业&#xff0c;必不可少的一门编程语言。每一个软件开发完成之后&#xff0c;应该大家都需要打包程序并发送给客户&#xff0c;常见的方式&#xff1a;java程序…

福布斯:混合现实未来的八大应用场景

来源&#xff1a;AR工业应用近日&#xff0c;福布斯发布了一篇关于混合现实未来的八个值得关注的领域和应用场景。文中提到&#xff1a;随着时间的推移&#xff0c;技术永远在不断进展&#xff0c;而未来技术中很可能是AR和VR的结合形式。有报告显示&#xff1a;2024年&#xf…

php怎么实现简单的mvc框架,php实现简单的MVC框架实例

这篇文章主要介绍了php实现简单的MVC框架,较为详细的分析了php实现MVC框架的相关实现技巧与注意事项,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了php实现简单的MVC框架。分享给大家供大家参考。具体如下&#xff1a;在开始之前需要知道的知识1.php基础知识2.单一…

演化树,靠不住?挑战物种出现与灭绝速率的估算方法

来源&#xff1a;Nature自然科研原文作者&#xff1a;Mark Pagel以演化树形式绘制的图表能够显示物种之间的系统发育关系&#xff0c;这类图表被广泛用于估算新物种出现以及现存物种灭绝的速率&#xff0c;但一项新的研究对这种方法提出了质疑。科学家经常试图对生物的过去是什…