机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Learning)。
按照学习策略分类,可以分为机械学习、示教学习、类比学习、基于解释的学习、归纳学习。
按照学习任务分类,可以分为分类、回归、聚类。
按照应用领域分类,可以分为自然语言处理、计算机视觉、机器人、自动程序设计、智能搜索、数据挖掘和专家系统。

有监督学习

监督学习的定义

监督学习是指在给定的训练集中“学习”出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入和输出,即特征值和目标值(标签),训练集中数据的目标值(标签)是由人工事先进行标注的。
监督学习流程图如下图所示,其中包括准备数据、数据预处理、特征提取和特征选择、训练模型和评价模型。
在这里插入图片描述

图1:监督学习流程图

Step1:准备数据。
监督学习首先要准备数据,没有现成的数据就需要采集数据或者爬取数据,或者从网站上下载数据。可以将准备好的数据集分为训练集、验证集和测试集。训练集是用来训练模型的数据集,验证集是确保模型没有过拟合的数据集,测试集是用来评估模型效果的数据集。

Step2:数据预处理。
数据预处理主要包括重复数据检测、数据标准化、数据编码、缺失值处理、异常值处理等。

Step3:特征提取和特征选择。
特征提取是结合任务自身特点,通过结合和转换原始特征集,构造出新的特征。特征选择是从大规模的特征空间中提取与任务相关的特征。特征提取和特征选择都是对原始数据进行降维的方法,从而去除数据的无关特征和冗余特征。

Step4:训练模型。
模型就是函数,训练模型就是利用已有的数据,通过一些方法确定函数的参数。

Step5:评价模型。
对于同一问题会有不同的数学模型,通过模型指标的比较来选取最优模型;对同一数学模型,通过模型指标的比较来调整模型参数。模型评价的基本思路是采用交叉验证方法。

监督学习的任务

监督学习有两个主要任务:回归和分类。回归用于预测连续的、具体的数值;分类是对各种事物进行分类,用于离散预测。

监督学习具体算法

监督学习算法发展史如图2所示。
在这里插入图片描述

图2:监督学习算法发展史

其中典型的监督学习算法有朴素贝叶斯、决策树、支持向量机、逻辑回归、线性回归、k近邻等,常见的8种监督学习算法的特点如表1所示。

表1:监督学习常见算法
算法名称类型特点应用
朴素贝叶斯分类通过一个给定的元组属于一个特定的概率来进行分类文本分类、垃圾邮件分类、信用评估
决策树分类通过训练数据构建决策树,对未知数据进行分类科学决策、风险评估、金融分析
支持向量机分类通过最大化分类边界点与分类平面的距离来实现分类模式识别、文本分类
逻辑回归分类处理因变量为分类变量的回归问题,常见的有二分类或项分布问题,也有多分类问题数据挖掘、疾病自动诊断、经济预测
线性回归回归通过一个超平面拟合数据集流行病研究、金融分析、股市预测
k近邻分类+回归根据距离相近的邻居类别来判定自己所属类别图像分类、模式识别
AdaBoost分类+回归通过将一系列弱学习器组合起来,集成弱学习器的学习能力,得到一个强学习器人脸检测、森林火灾预测
神经网络分类+回归通过对人脑神经元网络进行抽象,建立模型,按照不同的连接方式组成不同的网络模式识别、语音识别、文本分类

无监督学习

无监督学习的定义

无监督学习是指在机器学习过程中,用来训练机器的数据是没有标签的,机器只能依靠自己不断探索,对知识进行归纳和总结,尝试发现数据中的内在规律和特征,从而对训练数据打标签。

无监督学习的任务

无监督学习的训练数据是无标签的,非监督学习的目标是对观察值进行分类或者区分。
常见的无监督学习算法主要有三种:聚类、降维和关联。聚类算法是无监督学习中最常用的算法,它将观察值聚成一个一个的组,每个组都含有一个或几个特征。聚类的目的是将相似的东西聚在一起,而并不关心这类东西具体是什么。降维指减少一个数据集的变量数量,同时保证传达信息的准确性。关联指的是发现事物共现的概率。

无监督学习具体算法

无监督学习算法主要用于识别无标签数据的结构,常见算法如表2所示。

表2:无监督学习常见算法
算法名称类型特点应用
K-means基于划分方法的聚类将数据分为K组,随机选取K个对象作为初始的聚类中心,计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心客户分析与分类、图形分割
Birch基于层次的聚类通过扫描数据库,建立一个聚类特征树,对聚类特征树的叶节点进行聚类图片检索、网页聚类
Dbscan基于密度的聚类将密度大的区域划分为族,在具有噪声的空间数据库中发现任意形状的簇,并将簇定义为密度相连的点的最大集合社交网络聚类、电商用户聚类
Sting基于网格的聚类将空间区域划分为矩形单元,对于不同级别的分辨率,存在多个矩形单元,高层单元被划分为多个低层单元,计算和存储每个网格单元属性的统计信息语音识别、字符识别
主成分分析(PCA)线性降维通过正交变换将一组可能存在相关性的变量数据转换为组线性不相关的变量,转换后的变量被称为主成分数据挖掘、图像处理
线性判别分析(LDA)线性降维将高维空间中的数据投影到低维空间中,投影后各个类别的类内方差小,而类间均值差别大人脸识别、舰艇识别
局部线性嵌入(LLE)非线性降维在保持原始数据性质不变的情况下,将高维空间的信号映射到低维空间,从而进行特征值的二次提取图像识别、高维数据可视化
拉普拉斯映射(LE)非线性降维从局部近似的角度构建数据之间的关系,对要降维的数据构建图,图中的每个节点和距离它最近的K个节点建立边关系故障检测

半监督学习

半监督学习的定义

机器学习中的监督学习通过对大量有标签的样本进行学习,建立模型预测未知样本。然而,现实世界中有大量的无标签样本和少量的有标签样本。如果只用少量的有标签样本训练机器,学习系统往往很难具备强泛化能力,同时大量的无标签样本得不到利用,也会对数据资源造成极大的浪费。
如何在少量的有标签样本下,利用大量的无标签样本改善机器学习性能,成为机器学习研究者关注的问题之一。
目前,利用无标签样本的主流技术有(纯)半监督学习、直推学习和主动学习,这三种学习方式的共同点是利用大量无标签样本来辅助少量有标签样本的学习,如图3所示。

图3所示三种机器学习方式的相同点是训练数据集中都包含少量的有标签数据和大量的无标签数据,利用这些数据对模型进行训练。不同点在于主动学习将抽取部分无标签数据,交由专家进行人工标注,将标注后的数据放入有标签数据集中,一起对模型进行训练。而(纯)半监督学习和直推学习没有专家对训练数据集中的无标签数据进行标注的过程。

(纯)半监督学习和直推学习的不同之处在于训练完的模型预测的对象不同,(纯)半监督学习是预测待测数据,而直推学习是预测训练数据集中的无标签数据。

在这里插入图片描述
在这里插入图片描述

图3:(纯)半监督学习、直推学习和主动学习

半监督学习的基本假设

半监督学习的成立依赖于模型的假设,当模型假设正确时,无标签样本能够帮助改进学习性能。
半监督学习中两个常用的假设是聚类假设和流形假设:
聚类假设是指处在相同聚类中的样本有较大可能具有相同的标签。在这一假设下,大量无标签样本的作用就是帮助探明样本空间中数据分布的稠密和稀疏区域,从而指导算法对利用有标签样本学习到的决策边界进行调整,使其尽量通过数据分布的稀疏区域。
流形假设是指在一个很小的局部区域内的样本具有相似的性质,其标签也相似。在这一假设下,大量无标签样本的作用就是让数据分布变得更加稠密,从而更准确地刻画局部区域的特性,使决策函数更好地进行数据拟合。

半监督学习具体算法

从不同的学习场景看,半监督学习算法可分为 4 大类:半监督分类、半监督回归、半监督聚类和半监督降维,如图4所示。

半监督分类算法的基本思想是在无标签样本的帮助下训练有标签样本,获得比单独使用有标签样本更好的分类器,弥补有标签样本不足的缺陷。

半监督回归算法的基本思想是在无输出的输入的帮助下训练有输出的输入,获得比只使用有输出的输入训练得到的回归器性能更好的回归器。

半监督聚类算法的基本思想是在有标签的样本信息的帮助下,获得比只使用无标签的样本更好的簇,提高聚类的精度。

半监督降维算法的基本思想是在有标签的样本信息的帮助下,找到高维输入数据的低维结构,同时保持原始高维数据和成对约束的结构不变。
在这里插入图片描述

图4:半监督学习算法分类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++面向对象基础-构造函数

1、构造函数 1.1 基本使用 构造函数是一种特殊的成员函数,用于创建对象,写法上有以下要求: 函数名必须与类名完全相同构造函数不写返回值如果程序员不手动编写构造函数,编译器就会自动添加一个无参的构造函数 手动添加构造函数&am…

小白学 PyTorch 系列:54个超强 pytorch 操作

最近观察到一个有趣的趋势,越来越多的人在学术界热衷于学习和应用PyTorch。在工业界,虽然仍有一些项目在延续使用之前的深度学习框架,但 PyTorch 的影响力也在逐渐渗透。 对于昨天为什么没发文,原因很心酸。把 PyTorch 的这篇文章…

亚马逊鲲鹏系统一款自动化全能软件

亚马逊鲲鹏系统是一款专为亚马逊买家提供全方位功能的自动化软件。它不仅可以轻松实现自动注册、养号、测评、QA等一系列操作,更在用户关心的账号关联问题上做出了创新性的解决方案。有的朋友可能对全自动化操作心存疑虑,担心可能引起关联从而导致封号&a…

24届春招实习必备技能(一)之MyBatis Plus入门实践详解

MyBatis Plus入门实践详解 一、什么是MyBatis Plus? MyBatis Plus简称MP,是mybatis的增强工具,旨在增强,不做改变。MyBatis Plus内置了内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作&#xff0…

FileZilla的使用,主动模式和被动模式思维导图

注:图片 (与上面的思维导图文字配图看)

PAT乙级1045 快速排序

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元…

node版本管理器nvm的下载和使用

介绍 nvm 全名 node.js version management,顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。 下载和安装 在下载和安装nvm前,需要确保当前电脑没有安装node,否则则需要先把原来的node卸载了。 下载地址&#…

Oracle-深入了解cache buffer chain

文章目录 1.Cache buffer chain介绍2.Buffer cache的工作原理3 Buffer chains4.Multi-versioning of Buffers5.Latches6.诊断CBC latch等待7.解决 CBC Latch等待 1.Cache buffer chain介绍 经常看到会话等待事件“latch:cache buffers chain”。 如果想知道意味着什…

007、控制流

先看下本篇学习内容: 通过条件来执行 或 重复执行某些代码 是大部分编程语言的基础组成部分。在Rust中用来控制程序执行流的结构主要就是 if表达式 与 循环表达式。 1. if表达式 if表达式允许我们根据条件执行不同的代码分支。我们提供一个条件,并且做出…

Reac03:react脚手架配置(代理配置)

react脚手架配置 reactAjax下载Axios配置代理第二种配置代理的方式 github搜索案例 reactAjax React本身只关注于界面,并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax(或自己封装) 常用的ajax请求库 j…

ctfshow——文件上传

文章目录 文件上传思路web 151web 152web 153知识点解题 web 154web 155web 156web 157web 158web 159web160web 161 文件上传思路 web 151 打开页面显示:前台校验不可靠。说明这题是前端验证。 右键查看源代码,找到与上传点有关的前端代码&#xff1a…

[SSD 测试 1.3] 消费级SSD全生命周期测试

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解SSD》 <<<< 返回总目录 <<<< 构建消费级SSD全生命周期测试,开展性能测试、兼容性测试、功能测试、环境应力测试、可靠性测试、电器检测。 以忆联消费级存储实验室为例,消费级存储实验室面积…

docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器&#xff0c;设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性 The Flipped Classroom19 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#x…

中科亿海微UART协议

引言 在现代数字系统设计中&#xff0c;通信是一个至关重要的方面。而UART&#xff08;通用异步接收器/发送器&#xff09;协议作为一种常见的串行通信协议&#xff0c;被广泛应用于各种数字系统中。FPGA&#xff08;现场可编程门阵列&#xff09;作为一种灵活可编程的硬件平台…

2023结婚成家,2024借势起飞

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

《深入理解JAVA虚拟机笔记》Java 运行时内存区域

程序计数器&#xff08;线程私有&#xff09; 程序计数器&#xff08;Program Counter Register&#xff09;是一块较小的内存空间&#xff0c;它可以看做是当前线程所执行的字节码的行号指示器。在 Java 虚拟机的概念模型里&#xff0c; 字节码解释器工作时就是通过改变这个计…

解决npm,pnpm,yarn等安装electron超时等问题

我在安装electron的时候&#xff0c;出现了超时等等各种问题&#xff1a; &#xff08;RequestError: connect ETIMEDOUT 20.205.243.166:443&#xff09; npm yarn&#xff1a;Request Error: connect ETIMEDOUT 20.205.243.166:443 RequestError: socket hang up npm ER…

2022年山东省职业院校技能大赛高职组云计算赛项试卷第二场-容器云

2022年山东省职业院校技能大赛高职组云计算赛项试卷 目录 【赛程名称】云计算赛项第二场-容器云 需要竞赛软件包以及资料可以私信博主&#xff01; 【赛程名称】云计算赛项第二场-容器云 【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00 说明&#xff1a;完成本任务…

【揭秘】如何使用LinkedHashMap来实现一个LUR缓存?

LRU&#xff08;Least Recently Used&#xff09;缓存是一种常用的缓存淘汰策略&#xff0c;用于在有限的缓存空间中存储数据。其基本思想是&#xff1a;如果数据最近被访问过&#xff0c;那么在未来它被访问的概率也更高。因此&#xff0c;LRU缓存会保留最近访问过的数据&…