机器学习算法集锦:从贝叶斯到深度学习及各自优缺点

简介:

选自static.coggle.it

机器之心编译 


在我们日常生活中所用到的推荐系统、智能图片美化应用和聊天机器人等应用中,各种各样的机器学习和数据处理算法正尽职尽责地发挥着自己的功效。本文筛选并简单介绍了一些最常见算法类别,还为每一个类别列出了一些实际的算法并简单介绍了它们的优缺点。


https://static.coggle.it/diagram/WHeBqDIrJRk-kDDY


509f7fc5491992252902f1f91355ec61d097e669



目录


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


1c5d0655572b4f0e3d325862f88a03fec9d94c27


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


例子:


  • 岭回归(Ridge Regression)

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

  • GLASSO

  • 弹性网络(Elastic Net)

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


优点:


  • 其惩罚会减少过拟合

  • 总会有解决方法


缺点:


  • 惩罚会造成欠拟合

  • 很难校准


集成算法(Ensemble algorithms)


63ab43f0036a83b0eedaaceeb044e2ab41d1ed2a


集成方法是由多个较弱的模型集成模型组,其中的模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。


该算法主要的问题是要找出哪些较弱的模型可以结合起来,以及结合的方法。这是一个非常强大的技术集,因此广受欢迎。


  • Boosting

  • Bootstrapped Aggregation(Bagging)

  • AdaBoost

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

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

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

  • 随机森林(Random Forest)


优点:


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


缺点:


  • 需要大量的维护工作


决策树算法(Decision Tree Algorithm)


c4eddff43991a599d5ba3de9efe1b8bbd299f738


决策树学习使用一个决策树作为一个预测模型,它将对一个 item(表征在分支上)观察所得映射成关于该 item 的目标值的结论(表征在叶子中)。


树模型中的目标是可变的,可以采一组有限值,被称为分类树;在这些树结构中,叶子表示类标签,分支表示表征这些类标签的连接的特征。


例子:


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

  • Iterative Dichotomiser 3(ID3)

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


优点:


  • 容易解释

  • 非参数型


缺点:


  • 趋向过拟合

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

  • 没有在线学习


回归(Regression)算法


3dfe4551d94f2900eb87b68674b4368716c3ce4b


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


回归算法是统计学中的主要算法,它已被纳入统计机器学习。


例子:


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

  • 线性回归(Linear Regression)

  • 逻辑回归(Logistic Regression)

  • 逐步回归(Stepwise Regression)

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

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


优点:


  • 直接、快速

  • 知名度高


缺点:


  • 要求严格的假设

  • 需要处理异常值


人工神经网络


53288bd023b407d426f45e0080abaa66af450109


人工神经网络是受生物神经网络启发而构建的算法模型。


它是一种模式匹配,常被用于回归和分类问题,但拥有庞大的子域,由数百种算法和各类问题的变体组成。


例子:


  • 感知器

  • 反向传播

  • Hopfield 网络

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


优点:


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

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


缺点:


需要大量数据进行训练

训练要求很高的硬件配置

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

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


深度学习(Deep Learning)


cd93e22cacf178500338e348f08803a2eb937d14


深度学习是人工神经网络的最新分支,它受益于当代硬件的快速发展。


众多研究者目前的方向主要集中于构建更大、更复杂的神经网络,目前有许多方法正在聚焦半监督学习问题,其中用于训练的大数据集只包含很少的标记。


例子:


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

  • Deep Belief Networks(DBN)

  • 卷积神经网络(CNN)

  • Stacked Auto-Encoders


优点/缺点:见神经网络


支持向量机(Support Vector Machines)


5785f2b216227da22083e275f1c5191f866dd5e2


给定一组训练事例,其中每个事例都属于两个类别中的一个,支持向量机(SVM)训练算法可以在被输入新的事例后将其分类到两个类别中的一个,使自身成为非概率二进制线性分类器。


SVM 模型将训练事例表示为空间中的点,它们被映射到一幅图中,由一条明确的、尽可能宽的间隔分开以区分两个类别。


随后,新的示例会被映射到同一空间中,并基于它们落在间隔的哪一侧来预测它属于的类别。


优点:


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


缺点:


  • 非常难以训练

  • 很难解释


降维算法(Dimensionality Reduction Algorithms)


3471f2d372444b390cbe8d5befdab3620d1a5387


和集簇方法类似,降维追求并利用数据的内在结构,目的在于使用较少的信息总结或描述数据。


这一算法可用于可视化高维数据或简化接下来可用于监督学习中的数据。许多这样的方法可针对分类和回归的使用进行调整。


例子:


  • 主成分分析(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)


2640da1c25ae0647bbd61010a5f45733fef3318c


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


例子:


  • K-均值(k-Means)

  • k-Medians 算法

  • Expectation Maximi 封层 ation (EM)

  • 最大期望算法(EM)

  • 分层集群(Hierarchical Clstering)


优点:


  • 让数据变得有意义


缺点:


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


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


def3d78b09d25fec4fbb8cfac7a276b71263d88a


基于实例的算法(有时也称为基于记忆的学习)是这样学 习算法,不是明确归纳,而是将新的问题例子与训练过程中见过的例子进行对比,这些见过的例子就在存储器中。


之所以叫基于实例的算法是因为它直接从训练实例中建构出假设。这意味这,假设的复杂度能随着数据的增长而变化:最糟的情况是,假设是一个训练项目列表,分类一个单独新实例计算复杂度为 O(n)


例子:


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

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

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

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


优点:


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


缺点:


  • 内存使用非常高

  • 计算成本高

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


贝叶斯算法(Bayesian Algorithms)


ef6f9edce55996013d2515b324c7c006beb86785


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


例子:


  • 朴素贝叶斯(Naive Bayes)

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

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

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

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

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


优点:


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


缺点:


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


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


42d15b9c8849a7a169bfe84d56a886519d0fa83e


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


例子:


  • Apriori 算法(Apriori algorithm)

  • Eclat 算法(Eclat algorithm)

  • FP-growth


图模型(Graphical Models)


960dfc587b7b52fa8da2a1a4875ed6ae4040a5e1


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


例子:


  • 贝叶斯网络(Bayesian network)

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

  • 链图(Chain Graphs)

  • 祖先图(Ancestral graph)


优点:


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


缺点:


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

本文来源于"中国人工智能学会",原文发表时间" 2017-02-21  "


相关文章
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
1621 55
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
821 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
851 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
1017 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
1024 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
1151 7
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
711 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台

热门文章

最新文章