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

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

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

152F9AD9_E705_435e_BEBC_94E56450F2FA

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

  • 正则化算法(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)

436095B0_EBA1_4d67_9691_F56E0EE21A21

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

  • 岭回归(Ridge Regression)
  • 最小绝对收缩与选择算子(LASSO)
  • GLASSO
  • 弹性网络(Elastic Net)
  • 最小角回归(Least-Angle Regression)
    优点:
  • 其惩罚会减少过拟合
  • 总会有解决方法
    缺点:
  • 惩罚会造成欠拟合
  • 很难校准
    FDF13A4C_2493_4421_8B45_672FA353D119

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

  • Boosting
  • Bootstrapped Aggregation(Bagging)
  • AdaBoost
  • 层叠泛化(Stacked Generalization)(blending)
  • 梯度推进机(Gradient Boosting Machines,GBM)
  • 梯度提升回归树(Gradient Boosted Regression Trees,GBRT)
  • 随机森林(Random Forest)
    优点:
  • 当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多
    缺点:
  • 需要大量的维护工作

D7CF7E07_FD2B_44bf_84C0_8186294E15D7

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

  • 分类和回归树(Classification and Regression Tree,CART)
  • Iterative Dichotomiser 3(ID3)
  • C4.5 和 C5.0(一种强大方法的两个不同版本)
    优点:
  • 容易解释
  • 非参数型
    缺点:
  • 趋向过拟合
  • 可能或陷于局部最小值中
  • 没有在线学习

0220F8D7_6F87_48e0_9C82_B444AE0DAE80

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

  • 普通最小二乘回归(Ordinary Least Squares Regression,OLSR)
  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 逐步回归(Stepwise Regression)
  • 多元自适应回归样条(Multivariate Adaptive Regression Splines,MARS)
  • 本地散点平滑估计(Locally Estimated Scatterplot Smoothing,LOESS)
    优点:
  • 直接、快速
  • 知名度高
    缺点:
  • 要求严格的假设
  • 需要处理异常值

4EEEF686_9194_453d_82FC_409BBA91829C

人工神经网络是受生物神经网络启发而构建的算法模型。它是一种模式匹配,常被用于回归和分类问题,但拥有庞大的子域,由数百种算法和各类问题的变体组成。
举例:
感知器
反向传播
Hopfield 网络
径向基函数网络(Radial Basis Function Network,RBFN)
优点:
在语音、语义、视觉、各类游戏(如围棋)的任务中表现极好。
算法可以快速调整,适应新的问题。
缺点:
需要大量数据进行训练
训练要求很高的硬件配置
模型处于黑箱状态,难以理解内部机制
元参数(Metaparameter)与网络拓扑选择困难。

5BEB69A4_9450_47cd_BEDE_C01AA2FA74EC

深度学习是人工神经网络的最新分支,它受益于当代硬件的快速发展。众多研究者目前的方向主要集中于构建更大、更复杂的神经网络,目前有许多方法正在聚焦半监督学习问题,其中用于训练的大数据集只包含很少的标记。
举例:
深玻耳兹曼机(Deep Boltzmann Machine,DBM)
Deep Belief Networks(DBN)
卷积神经网络(CNN)
Stacked Auto-Encoders
优点/缺点:
见神经网络

42086FDF_4359_4c9e_8655_6336F9093DA8

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

B9D5496C_7378_4176_99D7_848724C6BF60

降维算法和集簇方法类似,追求并利用数据的内在结构,目的在于使用较少的信息总结或描述数据。这一算法可用于可视化高维数据或简化接下来可用于监督学习中的数据。许多这样的方法可针对分类和回归的使用进行调整。
举例:
主成分分析(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))
优点:
可处理大规模数据集
无需在数据上进行假设
缺点:
难以搞定非线性数据
难以理解结果的意义

3BC953B5_AB2D_467c_9D5B_52D84DECBD31

聚类算法是指对一组目标进行分类,属于同一组(亦即一个类,cluster)的目标被划分在一组中,与其他组目标相比,同一组目标更加彼此相似(在某种意义上)。
举例:
K-均值(k-Means)
k-Medians 算法
Expectation Maximi 封层 ation (EM)
最大期望算法(EM)
分层集群(Hierarchical Clstering)
优点:
让数据变得有意义
缺点:
结果难以解读,针对不寻常的数据组,结果可能无用。
2BFA6A0F_203B_41ed_A1E1_2A18F8C5D915
基于实例的算法(有时也称为基于记忆的学习)是这样一种学习算法,不是明确归纳,而是将新的问题例子与训练过程中见过的例子进行对比,这些见过的例子就在存储器中。之所以叫基于实例的算法是因为它直接从训练实例中建构出假设。这意味这,假设的复杂度能随着数据的增长而变化:最糟的情况是,假设是一个训练项目列表,分类一个单独新实例计算复杂度为 O(n)。
举例:
K 最近邻(k-Nearest Neighbor (kNN))
学习向量量化(Learning Vector Quantization (LVQ))
自组织映射(Self-Organizing Map (SOM))
局部加权学习(Locally Weighted Learning (LWL))
优点:
算法简单、结果易于解读
缺点:
内存使用非常高
计算成本高
不可能用于高维特征空间

80C5DEEA_C275_46f7_9235_7E31135BAF2C

贝叶斯算法是指明确应用了贝叶斯定理来解决如分类和回归等问题的方法。
举例:
朴素贝叶斯(Naive Bayes)
高斯朴素贝叶斯(Gaussian Naive Bayes)
多项式朴素贝叶斯(Multinomial Naive Bayes)
平均一致依赖估计器(Averaged One-Dependence Estimators (AODE))
贝叶斯信念网络(Bayesian Belief Network (BBN))
贝叶斯网络(Bayesian Network (BN))
优点:
快速、易于训练、给出了它们所需的资源能带来良好的表现
缺点:
如果输入变量是相关的,则会出现问题

E30E13EF_542A_47e4_B796_C6153C48F5D8

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

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

  • 贝叶斯网络(Bayesian network)
  • 马尔可夫随机域(Markov random field)
  • 链图(Chain Graphs)
  • 祖先图(Ancestral graph)
    优点:
  • 模型清晰,能被直观地理解
    缺点:
  • 确定其依赖的拓扑很困难,有时候也很模糊

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-10
本文作者:新智元
本文来自:“大数据DT 微信公众号”,了解相关信息可以关注“大数据DT

相关文章
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】金融数据分析中的机器学习应用
【4月更文挑战第30天】本文探讨了机器学习在金融数据分析中的应用,如股价预测、信用评分、欺诈检测、算法交易和风险管理,并以Python为例展示了如何进行股价预测。通过使用机器学习模型,金融机构能更准确地评估风险、识别欺诈行为并优化交易策略。Python结合scikit-learn库简化了数据分析过程,助力金融从业者提高决策效率。随着技术发展,机器学习在金融领域的影响力将持续增强。
|
2天前
|
机器学习/深度学习 Python
【Python 机器学习专栏】混淆矩阵与 ROC 曲线分析
【4月更文挑战第30天】本文介绍了机器学习中评估模型性能的两种工具——混淆矩阵和ROC曲线。混淆矩阵显示了模型在不同类别上的预测情况,包括真正例、假正例、真反例和假反例,帮助评估模型错误类型和数量。ROC曲线则通过假正率和真正率展示了模型的二分类性能,曲线越接近左上角,性能越好。文章还提供了Python中计算混淆矩阵和ROC曲线的代码示例,强调它们在模型选择、参数调整和理解模型行为中的应用价值。
|
2天前
|
机器学习/深度学习 运维 算法
【Python机器学习专栏】异常检测算法在Python中的实践
【4月更文挑战第30天】本文介绍了异常检测的重要性和在不同领域的应用,如欺诈检测和网络安全。文章概述了四种常见异常检测算法:基于统计、距离、密度和模型的方法。在Python实践中,使用scikit-learn库展示了如何实现这些算法,包括正态分布拟合、K-means聚类、局部异常因子(LOF)和孤立森林(Isolation Forest)。通过计算概率密度、距离、LOF值和数据点的平均路径长度来识别异常值。
|
2天前
|
机器学习/深度学习 数据可视化 算法
【Python机器学习专栏】t-SNE算法在数据可视化中的应用
【4月更文挑战第30天】t-SNE算法是用于高维数据可视化的非线性降维技术,通过最小化Kullback-Leibler散度在低维空间保持数据点间关系。其特点包括:高维到二维/三维映射、保留局部结构、无需预定义簇数量,但计算成本高。Python中可使用`scikit-learn`的`TSNE`类实现,结合`matplotlib`进行可视化。尽管计算昂贵,t-SNE在揭示复杂数据集结构上极具价值。
|
2天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】关联规则学习:Apriori算法详解
【4月更文挑战第30天】Apriori算法是一种用于关联规则学习的经典算法,尤其适用于购物篮分析,以发现商品间的购买关联。该算法基于支持度和置信度指标,通过迭代生成频繁项集并提取满足阈值的规则。Python中可借助mlxtend库实现Apriori,例如处理购物篮数据,设置支持度和置信度阈值,找出相关规则。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】层次聚类算法的原理与应用
【4月更文挑战第30天】层次聚类是数据挖掘中的聚类技术,无需预设簇数量,能生成数据的层次结构。分为凝聚(自下而上)和分裂(自上而下)两类,常用凝聚层次聚类有最短/最长距离、群集平均和Ward方法。优点是自动确定簇数、提供层次结构,适合小到中型数据集;缺点是计算成本高、过程不可逆且对异常值敏感。在Python中可使用`scipy.cluster.hierarchy`进行实现。尽管有局限,层次聚类仍是各领域强大的分析工具。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】K-means 聚类算法在 Python 中的实现
【4月更文挑战第30天】K-means 是一种常见的聚类算法,用于将数据集划分为 K 个簇。其基本流程包括初始化簇中心、分配数据点、更新簇中心并重复此过程直到收敛。在 Python 中实现 K-means 包括数据准备、定义距离函数、初始化、迭代和输出结果。虽然算法简单高效,但它需要预先设定 K 值,且对初始点选择敏感,可能陷入局部最优。广泛应用在市场分析、图像分割等场景。理解原理与实现对应用聚类分析至关重要。
|
2天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
2天前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。

热门文章

最新文章