在现实实践中会遇到的机器学习算法总结

2023-10-26

在理解了我们需要解决的机器学习问题之后,我们要思考需要收集什么数据以及我们可以用什么算法。本文我们会过一遍最流行的机器学习算法,大致了解哪些方法可用,很有帮助。


机器学习领域有很多算法,然后每种算法又有很多延伸,所以对于一个特定问题,如何确定一个正确的算法是很困难的。本文中我想给你们两种方法来归纳在现实中会遇到的算法。

  • 机器学习


  • 学习方式

根据如何处理经验、环境或者任何我们称之为输入的数据,算法分为不同种类。机器学习和人工智能课本通常先考虑算法可以适应的学习方式。

这里只讨论几个主要的学习风格或学习模型,并且有几个基本的例子。这种分类或者组织的方法很好,因为它迫使你去思考输入数据的角色和模型准备的过程,然后选择一个最适合你的问题的算法,从而得到最佳的结果。

监督学习:输入数据被称为训练数据,并且有已知的结果或被标记。比如说一封邮件是否是垃圾邮件,或者说一段时间内的股价。模型做出预测,如果错了就会被修正,这个过程一直持续到对于训练数据它能够达到一定的正确标准。问题例子包括分类和回归问题,算法例子包括逻辑回归和反向神经网络。

无监督学习:输入数据没有被标记,也没有确定的结果。模型对数据的结构和数值进行归纳。问题例子包括Association rule learning和聚类问题,算法例子包括 Apriori 算法和K-均值算法。

半监督学习:输入数据是被标记的和不被标记的数据的混合,有一些预测问题但是模型也必须学习数据的结构和组成。问题例子包括分类和回归问题,算法例子基本上是无监督学习算法的延伸。

增强学习:输入数据可以刺激模型并且使模型做出反应。反馈不仅从监督学习的学习过程中得到,还从环境中的奖励或惩罚中得到。问题例子是机器人控制,算法例子包括Q-learning以及Temporal difference learning。

当整合数据模拟商业决策时,大多数会用到监督学习和无监督学习的方法。当下一个热门话题是半监督学习,比如图像分类问题,这中问题中有一个大的数据库,但是只有一小部分图片做了标记。增强学习多半还是用在机器人控制和其他控制系统的开发上。

算法相似性

算法基本上从功能或者形式上来分类。比如,基于树的算法,神经网络算法。这是一个很有用的分类方式,但并不完美。因为有许多算法可以轻易地被分到两类中去,比如说Learning Vector Quantization就同时是神经网络类的算法和基于实例的方法。正如机器学习算法本身没有完美的模型一样,算法的分类方法也没有完美的。

在这一部分我列出了我认为最直观的方法归类的算法。我并没有穷尽算法或者分类方法,但是我想对于让读者有一个大致了解很有帮助。如果有你了解的我没有列出来,欢迎留言分享。现在我们开始!

Regression

Regression(回归分析)关心的是变量之间的关系。它应用的是统计方法,几个算法的例子包括:

  • Ordinary Least Squares

  • Logistic Regression

  • Stepwise Regression

  • Multivariate Adaptive Regression Splines (MARS)

  • Locally Estimated Scatterplot Smoothing (LOESS)

  • Instance-based Methods

Instance based learning(基于实例的学习)模拟了一个决策问题,所使用的实例或者例子是对模型非常重要的。这种方法对现有数据建立一个数据库然后把新数据加进去,再用一个相似性测量方法从而在数据库里找出一个最优匹配,进行一个预测。由于这个原因,这种方法也被称为胜者为王方法和基于内存的方法。现在关注的焦点在存储数据的表现形式和相似性测量方法。

  • k-Nearest Neighbour (kNN)

  • Learning Vector Quantization (LVQ)

  • Self-Organizing Map (SOM)

  • Regularization Methods

这是一个对其他方法的延伸(通常是回归方法),这个延伸对越简单的模型越有利,并且更擅长归纳。我在这里列出它是因为它的流行和强大。

  • Ridge Regression

  • Least Absolute Shrinkage and Selection Operator (LASSO)

  • Elastic Net

  • Decision Tree Learning

Decision tree methods(决策树方法)建立了一个根据数据中实际值决策的模型。决策树用来解决归纳和回归问题。

  • Classification and Regression Tree (CART)

  • Iterative Dichotomiser 3 (ID3)

  • C4.5

  • Chi-squared Automatic Interaction Detection (CHAID)

  • Decision Stump

  • Random Forest

  • Multivariate Adaptive Regression Splines (MARS)

  • Gradient Boosting Machines (GBM)

  • Bayesian

Bayesian method(贝叶斯方法)是在解决归类和回归问题中应用了贝叶斯定理的方法。

  • Naive Bayes

  • Averaged One-Dependence Estimators (AODE)

  • Bayesian Belief Network (BBN)

  • Kernel Methods

Kernel Method(核方法)中最有名的是Support Vector Machines(支持向量机)。这种方法把输入数据映射到更高维度上,是的一些归类和回归问题更容易建模。

  • Support Vector Machines (SVM)

  • Radial Basis Function (RBF)

  • Linear Discriminate Analysis (LDA)

  • Clustering Methods

Clustering(聚类),本身就形容了问题和方法。聚类方法通常是由建模方式分类的。所有的聚类方法都是用统一的数据结构来组织数据,使得每组内有最多的共同点。

  • K-Means

  • Expectation Maximisation (EM)

  • Association Rule Learning

Association rule learning(联合规则学习)是用来对数据间提取规律的方法,通过这些规律可以发现巨量多维空间数据之间的联系,而这些重要的联系可以被组织拿来使用。

  • Apriori algorithm

  • Eclat algorithm

  • Artificial Neural Networks

Artificial Neural Networks(人工神经网络)是从生物神经网络的结构和功能得到启发的。它属于模式匹配一类,经常被用于回归和分类问题,但是它存在上百个算法和变种组成。其中有一些是经典流行的算法(我把深度学习拿出来单独讲):

  • Perceptron

  • Back-Propagation

  • Hopfield Network

  • Self-Organizing Map (SOM)

  • Learning Vector Quantization (LVQ)

  • Deep Learning

Deep Learning(深度学习)方法是人工神经网络的一种现代的更新。相比传统的神经网络,它有更多更复杂的网络构成,许多方法都是关心半监督学习,这种学习的问题中有很大的数据,但是其中很少是被标记的数据。

  • Restricted Boltzmann Machine (RBM)

  • Deep Belief Networks (DBN)

  • Convolutional Network

  • Stacked Auto-encoders

  • Dimensionality Reduction

Dimensionality Reduction(维度缩减),像聚类方法一样,追求和利用数据中的统一的结构,但是它用更少的信息来对数据做归纳和形容。这对于对数据进行可视化或者简化数据很有用。

  • Principal Component Analysis (PCA)

  • Partial Least Squares Regression (PLS)

  • Sammon Mapping

  • Multidimensional Scaling (MDS)

  • Projection Pursuit

  • Ensemble Methods

Ensemble methods(组合方法)由许多小的模型组成,这些模型经过独立训练,做出独立的结论,最后组成一个总的预测。很多研究集中在使用什么模型以及这些模型怎么被组合起来。这是一个非常强大且流行的技术。

  • Boosting

  • Bootstrapped Aggregation (Bagging)

  • AdaBoost

  • Stacked Generalization (blending)

  • Gradient Boosting Machines (GBM)

  • Random Forest


这是一个用组合方法进行拟合的例子(来自维基),每个消防法用灰色表示,最后合成的最终预测是红色的。

这趟机器学习算法之旅意在让你对有什么算法和关联算法的一些工具给你一个总体了解。

下面是一些其他资源, 请不要觉得太多,了解越多算法对你越有好处,但是对某些算法有深层次的了解也会很有用。

List of Machine Learning Algorithms: 这是维基上的资源,虽然很全,但我认为分类不是很好。

Machine Learning Algorithms Category:这也是在维基上的资源,比上面的略好一点,用字母排序。

CRAN Task View: Machine Learning & Statistical Learning: 机器学习算法的R语言拓展包,看看对于你了解别人都在用什么比较好。

Top 10 Algorithms in Data Mining:这是发表的文章(Published article),现在是一本书(book),包括了最流行的数据挖掘算法。另一个基础的算法列表,这里列出的算法少很多,有助于你深入学习。(via:36大数据)


原文地址:http://mp.weixin.qq.com/s?__biz=MzA3MDg0MjgxNQ==&mid=203264628&idx=1&sn=8fca81451778a6e00e865d0a78aad34c&scene=1&key=b2574200810f04e8af79e53f11dbadaa1239c3ff7aa9795cef3b9b7bdfeafdaa50de416fe36bc05e620ac3d8928c8339&ascene=1&uin=MjI5MTc5MzYwMg%3D%3D&devicetype=Windows+7&version=61000721&pass_ticket=fE%2BW%2BU6DRyh93T5wQNfLf8uQAVXcpVTNMjzkniJfHzHJJOWez58zOMQCPmb1NhS6


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在现实实践中会遇到的机器学习算法总结 的相关文章

  • 全局API —— Vue.js的基础学习

    1 Vue extend options 参数 Object options 用法 使用基础Vue构造器 创建一个 子类 参数是一个包含组件选项的对象 data选项是特例 在Vue extend 中特必须是函数 div div 创建构造器
  • COM之QueryInterface函数

    COM之QueryInterface函数 客户同组件的交互都是通过一个接口完成的 在客户查询组件的其他接口时 也是通过接口完成的 这个接口就是IUnknown 它在UNKNWN H头文件定义 如下 Interface IUnknown vi
  • RocketMQ和kafka

    RocketMQ 分为集群消息 一组中只有一个消费者竞争到消息 和广播消息 组内消费者都会消费消息 相关概念有 topic 一个消息的主题 一级分类 tag 消息的二级分类 queque 消息队列 brocker里直接存储消息就是在queq
  • 使用Node.js连接和发布/订阅MQTT消息

    Node js是一种基于事件驱动的异步I O服务器端JavaScript运行环境 因为其非阻塞I O和事件驱动模型 使得它非常适合处理大量并发请求的场景 MQTT是一种轻量级的消息传递协议 它是基于发布 订阅模式的 适用于传输小量数据 且具
  • 请求大佬帮忙看看VScode Tensorflow model.fit 报错

    import numpy as np import tensorflow core as tf from tensorflow keras layers import Dense SimpleRNN import matplotlib py

随机推荐

  • 软件设计中常见的设计模式

    以下是常见的设计模式 并且给出了应用场景 工厂模式 Factory Pattern 用于创建对象 隐藏了具体对象的创建细节 客户端只需要通过工厂接口获取对象即可 应用场景包括 当需要根据不同的参数生成不同类型的对象时 当需要遵循 开闭原则
  • 漫画:ChatGPT的应用场景有哪些?

    第一 文案创作 ChatGPT可以通过用户输入的提示 创作出相应的文本内容 媒体作者可以给ChatGPT提出要求 让ChatGPT根据某一主题生成的媒体文案 广告策划人员可以把要推广的商品信息输入给ChatGPT 让ChatGPT针对此商品
  • CComModule类

    该类是一个COM服务器模块 允许一个客户端访问当前模块的组件 CComModule支持DLL和EXE模块 备注 Windows CE的ATL并不支持下面标准ATL的CComModule类方法 CComModule RegisterClass
  • Linux软件包安装(rpm、yum、apt-get、dpkg)

    Linux软件包安装 rpm yum apt get dpkg rpm yum apt get dpkg 都是基于linux 操作系统的 用于软件包管理的工具 他们适用于不同的linux 发行版本 rpm yum适用于Redhat Cent
  • 描述一个java工程师需要的技能-chatgpt回答

    作为一名Java工程师 你需要掌握广泛的技能和知识 涉及以下方面 一 Java基础知识 在Java领域中 基础知识是必不可少的 Java工程师需要掌握Java核心语言以及基本的编程概念和方法 包括但不限于 1 数据类型 变量 常量 运算符
  • 网站域名跟服务器吗,域名服务器与根服务器区别吗

    域名服务器与根服务器区别吗 内容精选 换一换 安装依赖时 使用pip3 7 5 install xxx命令安装相关软件时提示无法连接网络 且提示 Could not find a version that satisfies the req
  • 认识电阻种类

    什么是电阻 导体对电流的阻碍作用就叫该导体的电阻 电阻 Resistor 通常用 R 表示 是一个物理量 在物理学中表示导体对电流阻碍作用的大小 导体的电阻越大 表示导体对电流的阻碍作用越大 不同的导体 电阻一般不同 电阻是导体本身的一种性
  • 【Android】新版本Activity跳转新Activity返回后获取数据方式

    在Activity跳转到新的Activity后 然后在新的Activity返回原来的Activity时 我们需要获取到从新的Activity获取到的数据 原来的做法是使用 startActivityForResult 但是在新的Androi
  • JackSon Double类型转换为BigDecimal类型

    话不多说直接放代码 SimpleModule module new SimpleModule module addSerializer Double class new StdSerializer BigDecimal class Over
  • Java学习笔记-----包,final,权限修饰符和代码块

    一 包 包就是文件夹 用来管理各种不同功能的Java类 方便后期代码维护 包名的规则 公司域名反写 包的作用 需要全部英文小写 见名知意 使用其他类的规则 使用其他类时 需要使用全类名 包名 类名 使用同一个包中的类时 不需要导包 使用ja
  • No identifier specified for entity: com.aoshen.entity.User

    问题描述 在整合JPA的时候 用代码来生成数据库表和数据 在实体类User的主键ID上加 Id注解 有一个坑 Id 有两个注解方法 当你引入第二个时候就会报错 org springframework beans factory BeanCr
  • 一个人才数据网的爬虫软件

    最近表哥让我帮他写个软件 定时爬取一个人才数据网站的信息 思路和方法很简单 不过过程中遇到的坑真的不少 今天对整个软件的开发过程做个记录 网站是 余姚人才网 链接就不上了 百度第一个就是 还是老样子 python request beaut
  • SpringCloud基础8——多级缓存

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 多级缓存流程 2 JVM进程缓存 2 1 d
  • Linux文件上传与下载

    之前都是用Xftp工具在本地和linux系统之间上传下载文件 最近觉得麻烦 因为平时用Xshell连接 要传输文件的时候还要额外使用别的工具 下面使用 lrzsz 即可完成 Linux 的文件上传与下载 lrzsz 的安装 我在测试的时候
  • 55-基于栈的指令集与基于寄存器的指令集详细比对

    基于栈的指令集与基于寄存器的指令集详细比对 现代JVM在执行Java代码的时候 通常都会将解释执行与编译执行二者结合起来进行 解释执行 就是通过解释器来读取字节码 遇到相应的指令就去执行该指令 编译执行 就是通过即时编译器 Just In
  • 如何删除gitlab上默认受保护的master主分

    这里写自定义目录标题 1 找到对应项目 去到仓库 分支 查看分支情况 如果为 pr 点击 项目设置 2 展开对应 Protected Branches 3 点击 unprotect 就ok了 4 完成后 回到当前 ok 了 这样就可以使用
  • python怎么安装matplotlib.pyplot

    我先解释一下 这是windows系统下的安装方式 我也是刚入门 不知道自己的安装方法是否适合别人 就不多说了 以下是过程 1 https pypi python org pypi matplotlib 有一个下载选项 在这个网站上选择车轮文
  • Python微信小程序,实现自动回复等功能(itchat模块)

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能 必须在自己的微信中添加微信号xiaoice ms 微软的微信机器人 才能实现 直接复制代码运行之后扫一扫二维码即可 经过测试 该程序能够保持几小时的时间 实现
  • [Codeforces] combinatorics (R1600) Part.1

    Codeforces combinatorics R1600 Part 1 题单 https codeforces com problemset tags combinatorics 1201 1600 52B Right Triangle
  • 在现实实践中会遇到的机器学习算法总结

    在理解了我们需要解决的机器学习问题之后 我们要思考需要收集什么数据以及我们可以用什么算法 本文我们会过一遍最流行的机器学习算法 大致了解哪些方法可用 很有帮助 机器学习领域有很多算法 然后每种算法又有很多延伸 所以对于一个特定问题 如何确定