各种机器学习的优缺点及应用场景

目录

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

优点:

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

缺点:

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

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

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

相关文章

TensorFlow自带例子

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作摄像头。 代码在这里下载,使用Visual Studio 2017编译。 http://files.cnblogs.com/files/autosoft…

java01基础简介

1 java概述 开发服务器端应用程序最流行语言,产生网页、运行后端逻辑。 当对java了解到一定程度,阅读源码才能解决问题。 Applet:在网页中运行的java程序, Java的应用领域: 桌面应用系统开发 企业级应用开发 多媒…

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作摄像头。 代码在这里下载,使用Visual Studio 2017编译。 http://files.cnblogs.com/files/autos…

BP神经网络与Python实现

人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善.联想大家熟悉的回归问题, 神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数, 并使用该函数进行预测, 网络的训练过程即为调节该…

《关于长沙.NET技术社区未来发展规划》问卷调查结果公布

那些开发者们对于社区的美好期待 2月,长沙.net 技术社区自从把群拉起来开始,做了一次比较正式、题目为《关于长沙.NET技术社区未来发展规划》的问卷调查,在问卷调查中,溪源写道: 随着互联网时代的到来,互联…

第一节:ASP.NET开发环境配置

第一节:ASP.NET开发环境配置 什么是ASP.NET,学这个可以做什么,学习这些有什么内容? ASP.NET是微软公司推出的WEB开发技术。 2002年,推出第一个版本,先后推出ASP.NET2.0,和ASP.NET3.5&#xff0c…

深度学习笔记之win7下TensorFlow的安装

最近要学习神经网络相关的内容,所以需要安装TensorFlow。不得不说,安装TensorFlow的感受就像是大一刚入学学习C语言时,安装vs时一样,问题一大堆,工具都装不好,还学啥呀。好在,就在昨晚&#xff…

人脸识别经典算法一:特征脸方法(Eigenface)

这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eigenface)理论基础-PCA(主成分分析法)…

Xception

The First ColumnThe Second Columnpadding 方式:same and valid The First ColumnThe Second ColumnSame 就是 增加一列相同的数 (一般是0)valid只保留有效的转载于:https://www.cnblogs.com/hugeng007/p/10477430.html

1.苍穹外卖-day01

苍穹外卖-day01 课程内容 软件开发整体介绍 苍穹外卖项目介绍 开发环境搭建 导入接口文档 Swagger 项目整体效果展示: 管理端-外卖商家使用 用户端-点餐用户使用 当我们完成该项目的学习,可以培养以下能力: 1. 软件开发整体介绍 作为一名…

C#调用Python模块

编程:C#调用Python模块 当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python。 如果让C#支持调用Python模…

面试简单整理之克隆

61.为什么要使用克隆? 克隆获取对象的副本,直接用复制还是一个引用。 62.如何实现对象克隆? 1.被clone的类实现cloneable接口,重写object类的clone()方法 2.如果深克隆则克隆对象的引用对象也要实现接口、重…

PyCharm调试错误

JetBrains PyCharm 2017.3.2 这就说明python.exe的环境没有配,点击蓝色的configure Python Interpreter,然后选择对应的路径就可以了

Java06集合

13 集合 实现方法时,不同的数据结构会导致性能有很大差异。 13.1 集合接口 Java集合类库将接口(interface)与实现(implementation)分离。 可以使用接口类型存放集合的应用,一旦改变了想法,可…

Tensorflow验证码识别应用

简单的Tensorflow验证码识别应用,供大家参考,具体内容如下 1.Tensorflow的安装方式简单,在此就不赘述了. 2.训练集训练集以及测试及如下(纯手工打造,所以数量不多): 3.实现代码部分(参考了网上的一些实现来完成的) main.py(主要的神经网络代码) ?123456…

Linux 桌面玩家指南:09. X Window 的奥秘

Linux 桌面玩家指南:09. X Window 的奥秘 原文:Linux 桌面玩家指南:09. X Window 的奥秘特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结…

Storm教程1理论介绍

流式计算的历史: 早在7、8年前诸如UC伯克利、斯坦福等大学就开始了对流式数据处理的研究,但是由于更多的关注于金融行业的业务场景或者互联网流量监控的业务场景,以及当时互联网数据场景的限制,造成了研究多是基于对传统数据库处理的流式化&…

梯度下降原理及Python实现

梯度下降算法是一个很基本的算法,在机器学习和优化中有着非常重要的作用,本文首先介绍了梯度下降的基本概念,然后使用python实现了一个基本的梯度下降算法。梯度下降有很多的变种,本文只介绍最基础的梯度下降,也就是批…

matplotlib一些常用知识点的整理,

本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找。 强烈推荐ipython 无论你工作在什么项目上,IPython都是值得推荐的。利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如…

Storm教程3编程接口

Spouts Spout是Stream的消息产生源,Spout组件的实现可以通过继承BaseRichSpout类或者其他Spout类来完成,也可以通过实现IRichSpout接口来实现。 需要根据情况实现Spout类中重要的几个方法有: open方法 当一个Task被初始化的时候会调用此…