人工智能开发实战常用分类算法归纳与解析

内容导读

  1. 决策树
  2. 贝叶斯分类器
  3. 最近邻分类器
  4. 支持向量机
  5. 神经网络

一、决策树

决策树(Decision Tree)是用于决策的一棵树,从根节点出发,通过决策节点对样本的不同特征属性进行划分,按照结果进入不同的分支,最终达到某一叶子节点,获得分类结果。

以下是一个简单的垃圾邮件分类决策树。

上边决策树对邮件的标题、内容分词和分词频率分别进行评估,然后进入不同的选择分支,最终完成分类。

可见,决策树的构建过程是按照样本特征的优先级或重要性确定树的层次结构,使其叶子节点尽可能属于同一类别。

决策树常用于基于规则的等级评估、比赛结果预测和风险研判等。

二、贝叶斯分类器

在一些应用中,特征集和类变量之间的关系是不确定的,也就是说,我们很难通过一些先验知识直接预测它的类标号,这种情况产生的原因可能是多方面的,如噪音、主要变量的缺失等。

对于这类求解问题,可以将其视为一个随机过程,使用概率理论来分析。

例如:我们不能直接预测随意一次投币的结果是正面(类1)还是反面(类0),但我们可以计算出它是正面或反面的概率。

贝叶斯(Bayes Classifier)分类器就是对于给定的分类项,利用下式贝叶斯定律,求解该分类项在条件下各类别中出现的概率,哪个概率最大,就将其划分为哪个类别。

上式的解释是:X,Y是一对随机变量,X出现的前提下Y发生的概率P(Y ΙX )等于Y出现的前提下X发生的概率P(Y ΙX )

与Y出现的概率P(Y )的乘积然后再除以X出现的概率P(X )。

仍以垃圾邮件过滤为例,使用贝叶斯方法通过考虑关键词在邮件中出现的概率来辨别垃圾邮件。

假设收到一封由n个关键词组成的邮件E,x=[1,0]分别表示正常邮件和垃圾邮件,那么就可以根据n个关键词出现在以往邮件中的正常邮件概率p(x=1|E)和这n个关键词出现在以往邮件中的垃圾邮件概率p(x=0|E)的大小来判定该邮件是否为垃圾邮件,

如果:p(x=1|E)> p(x=0|E),则为正常邮件,否则为垃圾邮件。

根据贝叶斯定理,

上式中p(x=1)和p(x=0)可以根据邮箱中正常邮件和垃圾邮件的个数计算出来,而p(E)

的计算则是根据贝叶斯分类假设,所有的特征变量(关键词)都是独立作用于决策变量,

因此有:

上式中的p(Ei) 表示所有邮件中关键词Ei的概率,于是就根据贝叶斯分类器解决了此垃圾邮件分类问题。

由于贝叶斯分类器有坚实的数学基础作为支撑,模型参数较少,对缺失数据不敏感,其分类效率稳定,在文本分类、图像识别和网络入侵检测等方面得到广泛应用。

三、最近邻分类器

我们把每个具有n个特征的样本看作n维空间的一个点,对于给定的新样本,先计算该点与其它样本点的距离(相似度),然后将新样本指派为周围k个最近邻的多数类,这种分类器称为最近邻方法(k-Nearest Neighbor,KNN)。

该分类器的合理性可以用人们的常规认知来说明:判别一个人是好人还是坏人,可以从跟他走得最近的k个人来判断,如果k个人多数是好人,那么可以指派他为好人,否则他是坏人。

在下图中,求待分类样本x的类别。

由图可知,如果取k=3个最近邻,则x被指派为正方形类;如果取k=5个最近邻,则x被指派为三角形类。

由此可见,k的取值大小对分类结果是有影响的,另外,当样本数据较大时,计算相似度所消耗的时间和空间较高,导致分类效率低。

还有,从上图可以看出,采用多数表决方法来判别x的类别,是没有考虑与x不同距离的近邻对其影响的程度,显然,一个远离x的近邻对x的影响是要弱于离它近的近邻的。

尽管k近邻分类器有诸如上述缺点,但该分类技术是基于具体的训练实例进行预测,不必为训练集建立模型,还可以生成任何形状的决策边界,从而能提供灵活的模型表示,在数字和像识别等方面得到较好的应用。

四、支持向量机

支持向量机(Support Vector Machine,SVM)的基本思想是通过非线性映射α,把样本空间映射到一个高维的特征空间,将原本空间线性不可分的问题,转化成在高维空间通过一个线性超平面将样本完全划分开。

例如,在下图中,左边二维空间的样本点,无法线性划分,但通过映射到三维空间,却可以用一个平面将这些样本完全分开。

SVM是一种有坚实统计学理论支撑的机器学习方法,其最终的决策函数只由位于超平面附件的几个支持向量决定,该方法不仅算法简单,而且具有较好的鲁棒性,特别适合解决样本数据较少、先验干预少的非线性分类、回归等问题。

五、神经网络

神经网络(Neural Network)分类器由输入层、隐藏层和输出层构成,是通过模仿人脑神经系统的组织结构及其某些活动机理,来呈现人脑的许多特征。其基本结构如下图所示。

上图中每个节点代表一个神经元,节点之间的连线对应权重值w,输入变量x经过神经元时被激活函数φ赋予权重并加上偏置,将运算结果传递到下层网络的神经元,在输出层中,神经元对各个输入进行线性加权求和,并经符号函数sgn处理,最后给出输出值y

若该神经网络用于分类,在检验阶段,如果yi=max(y1,...,yp),则该预测样本为第i类的可能性最大,即判定该样本属于第i类。

更多内容请持续关注本站!

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

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

相关文章

计算机毕业设计 基于Python的校园个人闲置物品换购平台 闲置物品交易平台 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

深耕电通二十年,崔光荣升电通中国首席执行官

电通今日宣布,任命拥有二十年深厚电通工作经验的杰出行业领袖崔光(Guang Cui)为电通中国首席执行官,该任命自2024年9月27日起生效。崔光自2004年加入电通以来,从策略规划岗位逐步成长为公司的核心领导者,这也是他职业生涯中的第9次…

篮球运动场景物体检测系统源码分享

篮球运动场景物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

Linux基础---13三剑客及正则表达式

一.划水阶段 首先我们先来一个三剑客与正则表达式混合使用的简单示例,大致了解是个啥玩意儿。下面我来演示一下如何查询登录失败的ip地址及次数。 1.首先,进入到 /var/log目录下 cd /var/log效果如下 2.最后,输入如下指令即可查看&#xf…

OpenGL渲染管线(Rendering Pipeline)介绍

渲染管线 计算机图形学中,计算机图形管线(渲染管线 或简称 图形管线、流水线)是一个概念模型,它描述了t图像系统将 3D场景渲染到2D屏幕所需执行的一系列步骤。渲染管线大的可以分为三个阶段。 (一)应用阶段…

[UTCTF2020]sstv

用goldwave和010editor打开均未发现线索, 网上搜索sstv,豆包回答如下: 慢扫描电视(Slow Scan Television,简称 SSTV)是一种通过无线电传输和接收静态图像的技术。 一、工作原理 SSTV 通过将图像逐行扫描并…

【GMNER】Grounded Multimodal Named Entity Recognition on Social Media

Grounded Multimodal Named Entity Recognition on Social Media 动机解决方法特征抽取多模态索引设计索引生成框架EncoderDecoder 实体定位、实体-类型-区域三元组重建 出处:ACL2023 论文链接:https://aclanthology.org/2023.acl-long.508.pdf code链接…

[Linux] Linux操作系统 进程的状态

标题:[Linux] Linux操作系统 进程的状态 个人主页:水墨不写bug (图片来源于网络) 目录 一、前置概念的理解 1.并行和并发 2.时间片 3.进程间具有独立性 4.等待的本质 正文开始: 在校的时候,你一定学过《…

10 张手绘图详解Java 优先级队列PriorityQueue

PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 通俗来说,PriorityQueue 就是一个队列,但是它不是先进先出的…

【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式

前言: 前三篇如下: 【速成Redis】01 Redis简介及windows上如何安装redis-CSDN博客 【速成Redis】02 Redis 五大基本数据类型常用命令-CSDN博客 【速成Redis】03 Redis 五大高级数据结构介绍及其常用命令 | 消息队列、地理空间、HyperLogLog、BitMap、…

带你0到1之QT编程:十五、探索QSplitter和QDockWidget的简单应用技巧

此为QT编程的第十五谈!关注我,带你快速学习QT编程的学习路线! 每一篇的技术点都是很很重要!很重要!很重要!但不冗余! 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点! …

系统架构设计师 - 案例特训专题 - 软件工程篇

案例特训专题 - 软件工程篇 软件工程篇需求分析 ★★★★结构化需求分析 SA数据流图答题技巧 面向对象设计 ★★UML 图概况用例图类图与对象图顺序图通信图状态图活动图定时图构件图包图部署图 大家好呀!我是小笙,本章我主要分享系统架构设计师 - 案例特…

【刷题—双指针】复写0、三数之和、四数之和

目录 一、复写0二、三数之和三、四数之和 一、复写0 题目: 注意:题目要求是原数组上复写 思路: 一、确定最后一个复写的位置。定义两个变量cur等于0,dest等于-1,让cur去遍历数组。如果cur指向的元素是0,…

【玉米田】

题目 代码 #include <bits/stdc.h> using namespace std; typedef long long LL;const int mod 1e8; const int M 1 << 12; LL f[13][M]; int g[13]; vector<int> state; vector<int> p[M]; int n, m; bool check(int x) {return !(x & x <&…

【Linux课程学习】make/Makefile:Linux项目自动化构建工具

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f349;一.make/Makefile的理解&#xff1a; …

基于SpringBoot+Vue+MySQL的国产动漫网站

系统展示 用户前台界面 管理员后台界面 系统背景 随着国内动漫产业的蓬勃发展和互联网技术的快速进步&#xff0c;动漫爱好者们对高质量、个性化的国产动漫内容需求日益增长。然而&#xff0c;市场上现有的动漫平台大多以国外动漫为主&#xff0c;对国产动漫的推广和展示存在不…

【Java集合】深入了解ArrayList实现原理

概述 1.数据存储是基于动态数组实现的&#xff0c;默认初始容量为10。 2.添加数据时&#xff0c;首先需要检查元素个数是否超过数组容量&#xff0c;如果超过了则需要对数组进行扩容&#xff08;1.5倍&#xff09;&#xff1b;插入数据时&#xff0c;需要将从插入点 k 开始到数…

BMC 虚拟i2c访问PCA9545(switch芯片)后面的设备,为什么找不到PCA9545?

1.说明 1.1 背景 无意中看到PCA9545(switch芯片)后面有设备&#xff0c;但是PCA9545设备本身是连接到物理设备i2c上的&#xff0c;然而扫描该物理i2c bus&#xff0c;却找不到该设备。此篇文章主要找一下该原因的。 1.2 参考代码 当前使用的是ast2600芯片&#xff0c;可参考…

java使用ByteBuffer进行多文件合并和拆分

1.背景 因为验证证书的需要&#xff0c;需要把证书文件和公钥给到客户&#xff0c;考虑到多个文件交互的不便性&#xff0c;所以决定将2个文件合并成一个文件交互给客户。刚开始采用字符串拼接2个文件内容&#xff0c;但是由于是加密文件&#xff0c;采用字符串形式合并后&…

threejs性能优化之gltf文件压缩threejs性能优化之glb文件压缩

在使用Three.js进行3D图形开发时&#xff0c;GLTF&#xff08;GL Transmission Format&#xff09;文件因其高效性和灵活性而广受欢迎。然而&#xff0c;随着模型复杂度的增加&#xff0c;GLTF文件的大小也会显著增加&#xff0c;这可能会对加载时间和渲染性能产生负面影响。为…