机器学习的运作原理和算法分类,让机器学习更加通俗易懂

news2024/12/27 10:35:58

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:机器学习

🅰

请添加图片描述


文章目录

    • 🅰
    • 前言
    • 🎶 一、机器学习流程
    • 🎶二、数据源结果
    • 🎶 三、算法分类
    • 🎶 四、过拟合问题
        • 结束语🥇


前言

  在开始机器学习的算法流程介绍之前,因为机器学习是一个多学科交叉的学科,有很多类似于统计学的概念,但是在叫法上与传统的统计学又有一定的区别,我们需要了解些机器学习相关的基木概念,因为如果不阴动这些概念的话,对于一些文献的阅读和理解会构成障碍。下面通过这一节的介绍帮助大家对于基础的机器学习名词和概念进行了解,首先介绍一下机器学习的基本流程,然后针对机器学习涉及的数据、算法和评估这3个方面用到的基础概念进行介绍


🎶 一、机器学习流程


  机器学习的过程就是一个数据流转、分析以及得到结果的过程,在使用的过程中很多人花了很多时间在算法的选择或者调优上,但其实机器学习的每一个步骤都是至关重要的,介绍算法的具体实现的资料已经比较丰富了、笔者希望花更多的篇幅来介绍数据的处理和整个机器学习流程的串联。
机器学习的整个流程大致可以分为6个步骤,整个流程按照数据流自上而下的顺序扪列,分别是场景解析、数据预处理、特征工程、模型训练、模型评估、离线/在线服务(见图一),下面来逐一介绍下这些步骤的基本功能。
在这里插入图片描述
  (1)场景解析。场景解析就是先把整个业务逻辑想清楚,把自己的业务场景进行一个抽象、例如我们做一个广告点击预测,其实是判断一个用户看到广告是点击还是不点击这就可以抽象成二分类问题。然后我们根据是不是监督学习以及二分类场景,就可以进行算法的选择。总的来说,场景抽象就是把业务逻辑和算法进行匹配。
  (2)数据预处理。数据预处理主要进行数据的清洗工作,针对数据矩阵中的空值和乱码进行处理,同时也可以对整体数据进行拆分和采样等操作,也可以对单字段或者多字段进行归一化成者标准化的处理。数据预处理阶段的主要目标就是减少量纲和噪音数据对于
训练数据集的影响。
  (3)特征工程。特征工程是机器学习中最重要的一个步骤,这句话一点都没有错。特别是目前随着开源算法库的普及以及算法的不断成熟,算法质量并不一定是决定结果的最关键因素,特征工程的效果从某种意义上决定了最终模型的优劣。通过一个例子说明一下特征工程的作用,2014年某互联网巨头举办了一场大数据竞赛,参赛队伍在1000个以上,到最后,这里面几乎所有的参赛队伍都用了相同的一套算法,因为算的优劣是比较容易评判的,不同算法的特性是不一样的,而且可供选择的算法种类是有限的。但是特征的选取和衍生却有极大的不定性,100个人眼中可能有 100种不同的特征,所以这种大赛到了后期,往往大家比拼的就是特征选取的好坏。在算法相对固定的情况下,可以说好特征决定了好结果。
  (4)模型训练。如图二 所示的“逻辑回归二分类”组件表示的是算法训练过程,训练数据经过了数据预处理和特征工程之后进入算法训练模块,并且生成模型。在“预测”组件中,读取模型和预测集数据进行计算,生成预测结果。
  (5)模型评估。机器学习算法的计算结果一般是一个模型,模型的质量直接影响接下来的数据业务。对于模型的成熟度的评估,其实就是对于整套机器学习流程的评估。
  (6)离线/在线服务。在实际的业务运用过程中,机器学习通常需要配合调度系统来使用。具体的案例场景如下:每天用户将当日的增量数据流入数据库表里,通过调度系统启动机器学习的离线训练服务,生成最新的离线模型,然后通过在线预测服务(通常通Restf1 API,发送数据到服务器的算法模型进行计算,然后返回结果)进行实时的预测。具体架构如图 三所示。利用这种架构就实现了离线训练和在线预测的结合,串联了从离线到在线的整个业逻辑。
在这里插入图片描述
在这里插入图片描述


🎶二、数据源结果


  前面已经介绍了机器学习的基本流程,下面将针对机器学习的数据结构进行介绍。如果把机器学习算法比作一个数据加工场,那么进入工厂的数据就是被算法用来加工的原材料,机器学习算法需要的数据是什么样结构的呢?如果经常关注大数据相关的文章,基本会听说过“结构化数据”和“非结构化数据”这两个词,当然这里面还能行生出“半结构化数据”,下面分别介绍一下这几种数据的结构。
(1)结构化数据。结构化数据是指我们在日常数据库处理中经常看到的日志类数据乡构,是以矩阵结构存储在数据库中的数据,可以通过二维表结构来显示,如图四。
在这里插入图片描述
  结构化数据主要由两个部分组成,一个部分是每个字段的含义,也就是图五中的 agesex、cp 等字段头,另一个部分是每个字段的具体数值。通常来讲,机器学习算法处理的数据都是结构化的数据,因为机器学习需要把数据带入矩阵去做一些数学运算,结构化数据原生是以矩阵形态存储的,所以机器学习算法通常是只支持结构化数据的。
  结构化数据中还有两个非常重要的概念需要介绍一下,即特征(Featare)和目标列(Label)。这是机器学习算法中最常出现的两个名词,其中特征表示的是数掘所描述对象的属性、如用一组数据来形容人,那么这个人的身高、休重、性别和年龄都是特征。在结构化数据的数据集中,每一列数据通常就对应一个特征。
  目标列表示的是每一份数据的打标结果,因为前面也介绍过,机器学习的原理其实是从历史数据中来学习经验,目标列表示的是这一组数据的结果。例如,我们想通过一份体检数据来预测对象是否有心脏病,需要先通过成千上万份的训练数据来生成模型,这成上万份的训练数据需要打标,也就是说机器要事先知道什么样体检指标的人患病了,什么样的人没有患病,这样才能学习出预测模型。通过一个例子来说明,如图1-9所示为一心脏病预测需要的数据结果,其中框起来的字段表示的是对象是否患病,这一列是目标列其他3个字段 age、sex 和 cp描述的是对象的特征,是特征列。
  (2)半结构化数据。半结构化数据是指按照一定的结构存储,但不是二维的数据库行存储形态的数据。比较典型的半结构化数据就是 XML扩展名的存储数据,如图六所示。

  另一种半结构化数据就是在数据表中,某些字段是文本型的,某些字段是数值型的。见表七。

IDOccupationIncome
小李老师241
小王厨师521
小刘司机421
小方运动员23636

  半结构化数据常用于一些数据的传递,但是在机器学习算法相关的应用方面还有一定距离,需要做数据转换把半结构化数据转为结构化数据来进行操作。
  (3)非结构化数据。非结构化数据的数据挖掘一直以来是机器学习领域的热点话题特别是随着深度学习的发展,目前对于非结构化数据的处理似乎找到了方向。典型的非构化数据就是图像、文本或者是语音文件。该些数据不能以矩阵的结构存储,目前的做法也是通过把非结构化数据转为二进制存储格式,然后通过算法来挖掘其中的信息。第6和第7章将详细介绍如何使用深度学习算法实现非结构化数据的处理。
  以上就是对于真实业务场景下需要处理的3类数据结构的介绍。机器学习算法对于经构化数据的支持是比较好的,对于平结构化数据和非结构化数据,在真实的业务场景下,通常是先把这两类数据做转化,然后才通过算法来进行数据控掘。
  iheait 是目标队列,age、sex和cp为特征队列,这就是一个典型的监督学习的训练数据集。因为监督学习依赖于每个样木的打标,可以得到每个特征序列映射到的确切的目标值是什么,所以常用于回归以及分类场景。

聚类算法K-Means、DBSCAN 等
推荐算法协同过滤等

  相较于监督学习,无监督学习的一大好处就是不依赖于打标数据,在很多特定条件下特别是打标数据需要依靠大量人工来获得的情况下可以尝试使用无监督学习或者半监督
学习来解决问题。
  (3)半监督学习。半监督学习(Semi-supervisedLearning),是最近几年逐渐开始流行的一种机器学习种类。上文中也提到,在一些场景下获得打标数据是很耗费资源的,但是无监督学习对于解决分类和回归这样场景的问题又有一些难度。所以人们开始尝试通过对样本的部分打标来进行机器学习算法的使用,这种部分打标样本的训练数据的算法应用,就是半监督学习。目前很多半监督学习算法都是监督学习算法的变形,本书将介绍一种半监督学习算法–标签传播算法。其实目前半监督算法已经有很多的应用了,推荐大家去深入了解。


🎶 三、算法分类


  上面对于机器学习的流程和数据源结构都进行了介绍,下面对于算法的分类进行一个简单的说明。机器学习算法包含了聚类、回归、分类和文本分析等几十种场景的算法,常用的算法种类为 30种左右,而且还有很多的变形,我们将机器学习分为4种,分别是兴督学习、无监督学习、半监督学习和增强学习。
  (1)监督学习。监督学习(supervised learning),是指每个进入算法的训练数据样本都有对应的期望值也就是目标值,进行机器学习的过程实际上就是特征值和目标队列映身的过程。例如,我们已知一只股票的历史走势以及它的一些公司盈利、公司人数等信息:想要预测这只股票未来的走势。那么在训练算法模型的过程中,就是希望通过计算得到一个公式,可以反映公司盈利、公司人数这些信息对于股票走势的影响。通过过往的一些据的特征以及最终结果来进行训练的方式就是监督学习法。监督学习算法的训练数据源需要由特征值以及目标队列两部分组成。

  (4)强化学习。强化学习(ReinorcementLearning),是一种比较复杂的机器学习和强调的是系经与外界术既部交及。得外品的反债,然后决定自身的行为。强化学习是人工智能领域的一个热惠章法种类,费型的案例包括无人汽车驾驶和阿尔法狗下围木书介绍的分词算法隐马尔科夫就是一种强化学习的思想。
  上面就是关于监督学习、无监督学习、半监督学习和强化学习的一些介绍。监督主要解决的是分类和回归的场最,无监督学习主要解决聚类场景,半监督学习解决的是些打标数据比较难获得的分类场景,强化学习主要是针对流程中不断需要推理的场景。
在这里插入图片描述


🎶 四、过拟合问题


  机器学习模型训练的过程中会遇到非常多的问题,如参数或者梯度的设置不合理、据的清洗不够彻底,但是如果问一个数据挖掘工程师什么问题是数据挖掘领域中最常见的问题,他的答案八成是“过拟合”,这也是为什么我们要单独拿出一小节来讲一下数据挖掘过程中的过拟合问题。
  过拟合(Over-Gtting),从字面的意义上理解的话就是过度拟合的意思,常发生在线性分类器或者线性模型的训练和预测当中。过拟合现象是在数据挖掘过程中经常会遇到的问题,如通过训练集训练了一个模型,这个模型对于训练集的预测准确率很高,可以达到95%,但是我们换一份数据集进行预测,发现准确率只有30%,出现这种情况的原因很有可能是训练的过拟合现象。
  过拟合的原理就是机器学习算法过度学习了训练集数据,听上去有点难以理解,下面通过一个例子进行解释。假设我们有一组二维数据展示在坐标系当中,我们想对这个二维数据进行一个线性的回归训练。如果拟合出的曲线是如图 1-12所示的虚线,其实是一种欠拟合(underftting)的形式,曲线拟合的并不理想,因为并没有通过回归算法很好地拟合出一种符合数据分布的曲线。
在这里插入图片描述
在这里插入图片描述
  如果最终拟合出来的是如图所示情况,就是一种比较理想的状况,我们看到最终的曲线走势已经几乎刻画了数据的分布,这种曲线是比较理想的。那么什么是过拟合呢?
  所示这种情况是典型的过拟合,图中的曲线已经跟数据分布完全一致。那么有的人可能会问,做线性回归的目的不就是为了找到最符合数据走向的曲线么,为什么当我们拿到的结果跟数据走向完全匹配的时候反而不好呢?这是因为训练线性回归曲线或者线性分类器的目的是要对于其他数据集进行分类或者预测。

结束语🥇

以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

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

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

相关文章

Top-down Microarchitecture Analysis Method

1、英文链接: 1. https://www.intel.com/content/www/us/en/docs/vtune-profiler/cookbook/2023-0/top-down-microarchitecture-analysis-method.html 2. http://portal.nacad.ufrj.br/online/intel/vtune2017/help/GUID-02271361-CCD4-410C-8338-4B8158157EB6.ht…

低代码如何加速数字化转型

数字化转型,正日益决定企业成功的关键。这里的一个关键因素是它可以以更快的速度和质量来实施技术计划。在当今瞬息万变的商业环境中,战略性地采用低代码平台对于旨在加快上市时间、增强业务敏捷性和促进跨团队无缝协作的首席技术官来说至关重要。日益增…

Python | Leetcode Python题解之第279题完全平方数

题目: 题解: class Solution { public:// 判断是否为完全平方数bool isPerfectSquare(int x) {int y sqrt(x);return y * y x;}// 判断是否能表示为 4^k*(8m7)bool checkAnswer4(int x) {while (x % 4 0) {x / 4;}return x % 8 7;}int numSquares(i…

Jmeter混合压测(2407)

一 压测需求: 电商作为服务端,至少需要满足并发量,QPS:100/s,TPS:20/s。例如场景: 电商交易中,商品图片请求量最多,电商服务端需要满足并发请求查询图片信息。各家可能会并发请求同一家电商商品、订单等内容。 二 压…

【React】条件渲染:深入探讨高效开发技巧与最佳实践

文章目录 一、什么是条件渲染?二、条件渲染的实现方式三、条件渲染的最佳实践四、复杂条件渲染的实现 在现代前端开发中,React 已成为开发者构建用户界面的首选框架之一。React 的强大之处在于其组件化和状态管理能力,而条件渲染则是 React 开…

WebGIS的地图渲染|SVG|Canvas|Canvas

说到地图,平时我们使用过百度地图、高德地图、腾讯地图等,如果涉及地图开发需求,也有很多选择,如前面提到的几个地图都会提供一套JS API,此外也有一些开源地图框架可以使用,如OpenLayers、Leaflet、Mapbox、…

Drools 决策表的使用与说明(一)

Drools 决策表的使用与说明 Drools决策表的使用官方文档决策表说明决策表使用方式执行drl代码及结果 Drools决策表的使用 官方文档决策表说明 Drools 决策表的使用 16.7. Spreadsheet decision tables 决策表使用方式 在Drools中,决策表通常是以Excel&#xff08…

ctfshow-web入门-php特性(web132-web136)

目录 1、web132 2、web133 3、web134 4、web135 5、web136 1、web132 存在 robots.txt 访问 /admin 需要传三个参数,并且需要满足: if($code mt_rand(1,0x36D) && $password $flag || $username "admin"){if($code admin){ech…

java发送https请求支持tls1.3

说明:java 8_u201及以下版本不支持tls1.3协议发送。最直接的方法是升级到该版本之上。 另外:需要修改一下代码强行使用tls1.3协议。如果只修改代码,不升级java版本会报错找不到该协议。

JavaWeb笔记_JSPEL

一.JSP相关技术 1.1 JSP由来 当我们需要向页面输出大量的HTML代码的时候,我们需要通过response对象写多次来输出HTML代码 response.getWriter().write("<font>文本</font>"); 页面的展示和servlet密不可分,不利于后期代码维护,因此推出一种可以…

docker firewalld 防火墙设置

1、环境 centos 7 firewalld docker-ce docker 默认会更改防护墙配置 导致添加的防火墙策略不生效&#xff0c;可以启用firewalld 重新设置策略 2、启用防火墙 systemctl start firewalld systemctl enable firewalld3、配置文件禁用docker 的iptables /etc/docker/daemon.js…

用在ROS2系统中保持差速轮方向不变的PID程序

在ROS 2中&#xff0c;为了保持差速轮机器人的方向不变&#xff0c;通常需要使用PID&#xff08;Proportional Integral Derivative&#xff09;控制器来控制机器人的角速度。PID控制器可以帮助调整机器人的角速度&#xff0c;以维持其朝向不变。 下面是一个简单的ROS 2节点示…

docker镜像文件加密(Win11)

分享一个可以给docker导出的tar包加密的方法 要使用openssl&#xff0c;地址&#xff1a;openssl安装&#xff0c;安装exe就行&#xff0c;选择不带Light的&#xff0c;下面的是二进制文件 傻瓜式安装&#xff0c;最后的赞助页面&#xff0c;根据自己经济实力选择赞助&#xf…

PWM信号转模拟信号转换器GP8101/GP8101M

前言&#xff1a; 各位大佬&#xff0c;听说过PAC吗&#xff1f;PAC (PWM to Analog Converter)。 今天介绍一个小众的转换芯片&#xff0c;PWM转模拟信号的&#xff0c;有一定的应用场景,单价一元多。这种芯片隔离PWM还是很容易的。 0%-100% PWM to 0-5V/0-10V SOP8封装的GP…

裸机:SDRAM引入

SDRAM引入 SDRAM&#xff1a;Synchronous Dynamic Random Access Memory&#xff0c;同步动态随机存储器 DDR 就是DDR ADRAM DDR SDRAM是Double Data Rate SDRAM的缩写 SDRAM通过地址总线和数据总线接口&#xff08;总线接口&#xff09;与SoC通信。 SDRAM的特性&#xff08…

【Linux】进程IO|重定向|缓冲区|dup2|dup|用户级缓冲区|模拟缓冲区

目录 前言 重定向 实验一 为什么log.txt文件的文件描述符是1 为什么向stdout打印的信息也出现在文件中 实验二 用户级缓冲区 为什么要有用户级缓冲区 系统调用 dup 为什么close(fd1)之后还能向log.txt写入数据&#xff1f; dup2 缓冲区 观察现象 测试1 测试2 测…

IGV.js | 载入自己下载的gtf文件

1.安装 htslib-1.20 https://www.htslib.org/doc/tabix.html J3$ cd ~/Downloads/ $ wget https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2 $ tar jxvf htslib-1.20.tar.bz2编译安装&#xff1a; $ cd htslib-1.20/ $ ./configure --prefix/…

【图文多模态】

GPT4o 架构的核心是<font color"red">**Transformer**</font>&#xff0c;它通过自注意力机制&#xff08;Self-Attention&#xff09;来处理输入的序列数据端到端的方式训练&#xff1a;即从输入到输出的整个过程都在同一个网络中进行多模态大模型&…

不看后悔 养宠家庭的必备好物——最值得买的宠物空气净化器推荐

"猫毛满天飞&#xff0c;打扫永无尽头&#xff01;"这是多少养猫人的日常写照。或许你已经尝试了各种方法&#xff0c;从手动打扫到普通空气净化器&#xff0c;但效果总是不尽人意。普通空气净化器虽然有点用&#xff0c;但实际上它们并非专为宠物家庭设计&#xff0…

应用层自定义协议以及序列化和反序列化

文章目录 应用层自定义协议以及序列化和反序列化1、应用层自定义协议1.1、应用层1.2、协议 2、序列化和反序列化3、TCP 为什么支持全双工4、jsoncpp基础4.1、序列化4.2、反序列化 5、实现网络版计算器6、手写序列化和反序列化 应用层自定义协议以及序列化和反序列化 1、应用层…