【数学建模常用模型】分类专题

这次介绍一下数模国赛常用的分类方法,以下这方法也是现在应用比较广泛的分类方法:K-近邻算法(k-Nearest Neighbors,KNN)和支持向量机(Support Vector Machine, SVM)。

 

K-近邻算法

K-近邻算法的基本思想是:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。以空间中k个点为中心进行聚类,对最靠近他们的对象归类。

KNN方法思路简单,易于理解,易于实现,无需计算参数;不足之处是计算量较大,需要计算每一个分类的样本点它到全体已知样本的距离,才能求得它的K个最邻近点。目前也要改进策略,如采用其它距离比如更接近于实际的距离函数而不是欧氏距离来度量长度,建立更高效的索引机制,等等。

 

值得一提的是,需要把KNN与另外一个名字相似的算法——K-均值聚类(K-means,全称为k-means clustering algorithm)区分开来,均值聚类是一种无监督学习的算法,通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。聚类结束条件可以为:1)没有(或最小数目)对象被重新分配给不同的聚类。2)没有(或最小数目)聚类中心再发生变化。3)误差平方和局部最小。

下面给出两种算法的示意图,方便理解并区分,KNN在上,K-means在下。

v2-9285a6d36a51a73483639393e8c68f52.png

KNN

 

v2-b4105ccb87d12e517797334d4c2ac0d1.jpeg

K-means

 

支持向量机

支持向量机是一种二分类所给样本点分成算法,基本目的是寻找一个可以把样本点分成两类的直线(对于二维平面而言)。维基百科上的定义是这样的:

支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

支持向量机是一种比较经典的算法,不过目前应用还是神经网络决策树比较多。下面我们由简至繁来了解一下模型以及算法。首先是对样本情况的分类讨论。

a.样本完全线性可分

线性可分通俗来讲即为存在一条可以把样本完全分开的直线:

 

v2-226164cec7a4446074886b4248fc2f54.jpeg

鉴于严谨起见,样本可能为n>3维的向量,我们把这条“直线”延伸开来,将其称为“超平面”。而我们要在所有符合条件的超平面中寻找到这两类点距离最大的那个超平面:

 

v2-b63638880305dbc1ea97b7e2d702844f.jpeg

 

显然,符合条件的超平面到两类样本点的距离是相同的。样本中距离超平面最近的一些点,我们给它一个定义叫做支持向量,如上图中标记为红色的点。上图中2/|w|这一段距离我们把它叫做间隔。

当训练集线性可分时,通过硬间隔学习得到一个线性分类器,即硬间隔SVM。

 

b.样本不完全线性可分

不是所有的情况都存在一个超平面将两类样本点完全分开来的,比如下面这种情况:

e6e4d8d89d7a4e6e92bbce39b0c19fa5.jpg


这个时候我们许个别允点落在超平面内部,或落入决策边界的错误一侧。这个时候的间隔我们称做软间隔。

当训练数据不能线性可分但是可以近似线性可分时,通过软间隔最大化也可以学习到一个线性分类器,即软间隔SVM。

c.样本线性不可分

更有些时候,不是依靠一给超平面就能把两类样本点分开来的,比如下面这种情况:

47214a27f6ad4fdeb9cb6a2cc93d6afa.jpg


这种时候就需要把样本点投射到高维空间,方可区分:

 

c364a38e55ab4ed3bdb48f49fee487b4.jpg


当训练数据线性不可分时,通过使用核技巧和软间隔最大化,可以学习到一个非线性SVM。

以上就是本次介绍的常用模型了,KNN和SVM,有问题的小伙伴可以随时提问喔~

不是所有的情况都存在一个超平面将两类样本点完全分开来的,比如下面这种情况:

v2-07ed2d9940d740a7ab0aae3aec822322.jpeg

这个时候我们许个别允点落在超平面内部,或落入决策边界的错误一侧。这个时候的间隔我们称做软间隔。

当训练数据不能线性可分但是可以近似线性可分时,通过软间隔最大化也可以学习到一个线性分类器,即软间隔SVM。

 

c.样本线性不可分

更有些时候,不是依靠一给超平面就能把两类样本点分开来的,比如下面这种情况:

 

v2-8104d59d1a4d36c86a064ecbd8715870.jpeg

 

这种时候就需要把样本点投射到高维空间,方可区分:

v2-06a4933c47eb93b9b25544a9b1abcc06.jpeg

 

当训练数据线性不可分时,通过使用核技巧和软间隔最大化,可以学习到一个非线性SVM。

以上就是本次介绍的常用模型了,KNN和SVM,有问题的小伙伴可以随时提问喔~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340