【本科生机器学习】【北京航空航天大学】课题报告:支持向量机(Support Vector Machine, SVM)初步研究【上、原理部分】

news2024/10/6 10:42:09

说明:
(1)、仅供个人学习使用;
(2)、本科生学术水平有限,故不能保证全无科学性错误,本文仅作为该领域的学习参考。

一、课程总结

1、机器学习(Machine Learning, ML)的定义

机器学习人工智能的一个分支。人工智能的研究历史有着一条从以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。
机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。
机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。

统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习
统计学习的主要特点是:
(1)、统计学习以计算机及网络为平台,是建立在计算机及网络上的;
(2)、统计学习以数据为研究对象,是数据驱动的学科;
(3)、统计学习的目的是对数据进行预测与分析;
(4)、统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析;
(5)、统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并且在发展中逐步形成独自的理论体系与方法论。

2、本课程主要内容

略。(参见下文中的算法描述部分。)

二、问题介绍

1、问题描述:

(1)、 使用逻辑回归分类器和支持向量机,根据鸢尾花的特征,在鸢尾花数据集上进行分类任务;
(2)、 使用多项式特征的SVM分类器,对卫星形(Moon-shaped)数据集进行分类。
(3)、 使用SVM回归模型,对随机线性数据拟合最优直线。

2、原始数据:

(1)、 鸢尾植物数据集。这个数据集中共有150朵鸢尾花的图片,分别来自三个不同品种(鸢尾(Iris Setosa)、变色鸢尾(Iris Versicolor)和维吉尼亚鸢尾(Iris Virginica)),数据条目里包含花的萼片以及花瓣的长度和宽度(见图1)。

在这里插入图片描述

图1.三种不同品种的鸢尾花

鸢尾植物数据集的键(keys)分别为:

['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename']

在这里插入图片描述

其中 ‘target’ 字段指示鸢尾花的品种,取值为0,1,2. 若target = 0, 说明为山鸢尾(Iris Setosa);若target = 1, 说明为变色鸢尾(Iris Versicolor);若target = 2, 说明为维吉尼亚鸢尾(Iris Virginica)。

(2)、 卫星数据集。卫星数据集(Moon-shaped Dataset)是一种用于二元分类的小型数据集,其中数据点所组成的形状为两个相互交织的半圆型。Python中的 make_moons() 函数用来生成该数据集,便于在数据集上进行分类测试。make_moons() 函数生成的数据集如下图所示:

在这里插入图片描述
图2. make_moons()函数生成的数据集举例

(3)、 为了训练线性SVM回归模型,使用随机生成的线性数据集作为训练集。该数据集由100个样本点所构成,具有单一特征x1,并且添加了高斯白噪声。拟合成的直线方程为y=3x+4. 此数据集的形状如下图所示:

在这里插入图片描述
图3. 线性数据集

3、算法描述:

(1)、 逻辑斯谛回归(Logistic Regression):
逻辑斯谛回归是统计学习中的一种经典分类方法。
二项逻辑斯谛回归模型是一种分类模型,由条件概率分布 P(Y|X) 表示,形式为参数化的逻辑斯谛分布。这里,随机变量X的取值范围为全体实数,随机变量Y取值范围为1或0.通过监督学习(Supervised Learning)的方法来估计模型参数。对于给定的输入实例x,按照公式:

在这里插入图片描述

可以求得P(Y=1│x)和P(Y=0│x)。逻辑斯谛回归比较两个条件概率值的大小,将实例x分到概率值较大的那一类。
一个事件的对数几率表示为

在这里插入图片描述
代入上式,得

在这里插入图片描述

即,在逻辑斯谛回归模型中,输出Y=1的对数几率是输入x线性函数。或者说,输出Y=1的对数几率是由输入x线性函数表示的模型,即为逻辑斯谛回归模型。

(2)、 支持向量机(support vector machines, SVM):
支持向量机是一种二类分类模型,如图4所示。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数(hinge函数)的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化方法。

在这里插入图片描述

图4.支持向量机(SVM)原理图示

线性可分支持向量机的定义如下:
给定一个线性可分的训练数据集,通过间隔最大化或者等价地求解相应的凸二次规划问题学习得到的分离超平面方程为
w * ∙x+ b * =0
以及相应的分类决策函数
f(x)=sign(w^ * ∙x+ b^ * )(其中sign()函数为符号函数
称为线性可分支持向量机。
在如下图所示的二类分类问题中,训练数据集线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线,如下图所示。

在这里插入图片描述

图5.二类分类问题

4、选择该算法的原因:

(1)、 一些回归算法也可以用于分类(反之亦然)。逻辑斯谛回归(Logistic回归,也称为Logit回归)算法被广泛使用于估算一个实例属于某个特定类别的概率。即,如果预估概率超过50%,则模型预测该实例属于该类别(称为正类,标记为“1”);反之,则预测不属于(称为负类,标记为“0”)。这样,逻辑斯谛回归算法实际上构成了一个二元分类器。

(2)、 支持向量机(Support Vector Machine,SVM)是一个功能强大并且全面的机器学习模型,它能够执行线性或非线性分类回归,甚至是异常值检测等任务。它是机器学习领域中最受欢迎的模型之一。此外,SVM特别适用于中小型复杂数据集的分类,本课题中的数据集满足此要求。

原理部分到此结束)

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

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

相关文章

【Docker】安装 Nacos容器并根据Nginx实现负载均衡

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

Go使用记忆化搜索的套路【以20240121力扣每日一题为例】

题目 分析 这道题很明显记忆化搜索,用py很容易写出来 Python class Solution:def splitArray(self, nums: List[int], k: int) -> int:n len(nums)# 寻找分割子数组中和的最小的最大值s [0]for num in nums:s.append(s[-1] num)#print(s)cachedef dfs(cur,…

跟着pink老师前端入门教程-day07

去掉li前面的项目符号(小圆点) 语法:list-style: none; 十五、圆角边框 在CSS3中,新增了圆角边框样式,这样盒子就可以变成圆角 border-radius属性用于设置元素的外边框圆角 语法:border-radius:length…

1.11马原

同一性是事物存在和发展的前提,一方的发展以另一方的发展为条件 同一性使矛盾双方相互吸收有利于自身的因素,在相互作用中各自得到发展 是事物发展根本规律,唯物辩证法的实质和核心 揭示了事物普遍联系的根本内容和变化发展的内在动力 是贯…

Vue3 在 history 模式下通过 vite 打包部署白屏

Vue3 在 history 模式下通过 vite 打包部署后白屏; 起因 hash 模式 url 后面跟个 # 强迫症犯了改成了 history,就此一波拉锯战开始了 ... 期间 nigix 和 router 各种反复排查尝试最终一波三折后可算是成功了 ... Vue官方文档 具体配置可供参考如下: 先简要介绍下,当前项目打包…

SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例

文章目录 SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例Dubbo定义其核心部分包含: 工作原理为什么要用dubbo各个节点角色说明:调用关系说明: dubbo为什么需要和zookeeper结合使用,zookeeper在dubbo体系中起到什么作用&…

0基础开发EtherNet/IP:协议格式,JAVA、C#、C++处理

经过一阵倒腾,把CIP、Ethernet/ip协议搞到手 协议的概念和理论就不提及了,上网随便一搜索EtherNet/IP遍地都是。 直接将协议关键点列举出来吧。 更多协议资料 www.jngbus.com 通讯软件群 30806722 这里讲解的是TCP和UDP协议的格式,EtherN…

【标准IO】fseek函数、ftell函数、fflush函数、getline函数

目录 fseekftellrewindfflushgetline 橙色 当你在文件中写入了10个字符后,又想把这10个字符读出来,该怎么做呢?因为有文件操作符指针的存在,此时该指针已经指在了这10个字符末尾,所以需要把该指针重定向,这…

RT-Thread Studio学习(十七)虚拟串口

RT-Thread Studio学习(十七)虚拟串口 一、简介二、新建RT-Thread项目并使用外部时钟三、启用USB设备功能四、测试 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下实现USB虚拟串口。 硬件及开发环境如下: OS WI…

油管公式(全)

原文:The Youtube Formula 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 每个人都应该有一个 YouTube 频道。真的每个人,尤其是品牌。当我看到没有在 YouTube 上存在的品牌时,我觉得他们疯了。任何人都不利用这个机会是难以想…

python-基础篇-变量

文章目录 变量的基本使用目标01. 变量定义1) 变量演练1 —— iPython2) 变量演练 2 —— PyCharm3) 变量演练 3 —— 超市买苹果思考题 02. 变量的类型2.1 变量类型的演练 —— 个人信息2.2 变量的类型2.3 不同类型变量之间的计算1) **数字型变量** 之间可以直接计算2) **字符串…

从零开始:直播电商APP开发全流程解析

本篇文章,小编将从零开始,全面解析直播电商APP的开发流程,涵盖了关键的技术要点和开发阶段的关键步骤。 第一阶段:需求分析与规划 此阶段的关键任务包括: 1.用户需求调研 2.功能规划 3.技术选型 第二阶段&#xf…

安卓平板局域网内远程控制工控机方法

安卓平板局域网内远程控制工控机方法 将所需要远程控制的工控机通过网线连接到具有WiFi功能的路由器上,将安卓平板连接上WiFi,如下图所示 下载NoMachine远程软件安装包,官网地址:https://www.nomachine.com/ 点击Download now按钮…

图论:最短路(dijkstra算法、bellman算法、spfa算法、floyd算法)详细版

终于是学完了,这个最短路我学了好几天,当然也学了别的算法啦,也是非常的累啊。 话不多说下面看看最短路问题吧。 最短路问题是有向图,要求的是图中一个点到起点的距离,其中我们要输入点和点之间的距离,来求…

【Docker】安装Nginx容器并部署前后端分离项目

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

代码随想录算法训练营第十一天|● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值

文章目录 20.有效的括号思路:代码: 1047. 删除字符串中的所有相邻重复项思路代码1:栈储存代码2:双指针 150. 逆波兰表达式求值思路:题外话代码 20.有效的括号 思路: 由于栈结构的特殊性,非常适合做对称匹配…

单体架构、微服务和无服务器架构

前言 在这篇文章中,我将演示在决定使用单体架构、微服务架构和无服务器架构时的权衡的简化心智模型。目标是突显每种风格的固有优势和缺陷,并提供关于何时选择哪种架构风格的指导。 单体架构 对于小团队或项目来说是理想的入门架构。它简单易上手&…

Python sleep函数用法:线程睡眠

如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用 time 模块的 sleep(secs) 函数来实现。该函数可指定一个 secs 参数,用于指定线程阻塞多少秒。 当前线程调用 sleep() 函数进入阻塞状态后,在其睡眠时间…

131. 分割回文串 - 力扣(LeetCode)

问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 输入示例 s "aab"输出示例 [["a","a","b"],["…

面试2024.1.20

简单介绍下你做的项目。 这个神领物流项目是一个前后端分离的项目,前段他有3个客户端(用户端为微信小程序、司机端和快递员端为app)一个管理端(pc),后端用的技术栈用的是SpringAlibabaCloud、数据库用的是M…