机器学习 —— 向量机(matlab)

目录

一、SVM基本介绍

1.1 SVM算法定义

1.2 SVM和逻辑回归的区别

二、实验数学原理

三、实验算法和实验步骤

四、实例分析


一、SVM基本介绍

1.1 SVM算法定义

  SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。

  SVM能够执行线性和非线性分类,回归,甚至是异常值监测任务。特别适用于中小型复杂数据集的分类。

1.2 SVM和逻辑回归的区别

在这里插入图片描述

  1. 逻辑回归和SVM都是寻找一条分类直线,目标是把这两个类别分开
  2. 逻辑回归的最终判断标准是:准确率,而SVM最终的判断结果是:准确率+最大间隔
  3. 逻辑回归的分类直线可能有多条,而SVM的分类直线只有一条。

单纯考虑准确率和考虑最大间隔哪个泛化性能更好一点:
在这里插入图片描述

  1. 准确率只考虑了在训练集上的预测能力
  2. 准确率+最大间隔即考虑了预测能力,又考虑了模型对未知样本的泛化能力。

二、实验数学原理

线性支持向量机

三、实验算法和实验步骤

二分类逻辑回归算法

输入

输出过程:

1.读取数据集

2.数据归一化

3.构造问题的约束二次规划

4.构建拉格朗日函数

5.将问题对偶化

6.利用SMO算法进行求解,得到分类预测模型

7.根据预测模型对预测集样本的类别进行预测

输出:数据集的预测结果

四、实例分析

数据来源:传送门1  传送门2

线性向量机

clear;close all;clc;
%% 第一步:读取数据
load SVMdata1.mat;
%% 第二步:分离训练集和测试集
% [train_X,train_y,test_X,test_y] = split_train_test(X,y,2,0.8);
% randperm随机打算数据集X的顺序
index = randperm(size(X,1)); %获取打算顺序后的数据集的索引
n = length(index); %得到index的个数
% 分离训练集
T = round(n*0.8);
train_X = X(index(1:T),:); %分离出数据集X中的训练集
train_y = y(index(1:T),:); %分离出数据集y中的训练集
% 分离测试集或预测集
test_X = X(index(T+1:end),:); %分离出数据集X中的测试集
test_y = y(index(T+1:end),:); %分离出数据集y中的测试集%% 第三步:标准支持向量机拟合训练
svmline = svmtrain(train_X,train_y,'Showplot',true);%% 第四步:SVM预测
predictline = svmclassify(svmline,test_X,'Showplot',true);
fprintf('预测分类结果为:\n')
disp(predictline')
%继续绘制测试集数据
hold on; %继续在这张图上绘制
plot(test_X(:,1),test_X(:,2),'gs','Markersize',12) %圈出预测数据
xlabel('x') %添加行标签
ylabel('y') %添加列标签
title('标准支持向量机') %添加标题
hold off %接下来绘制重启一张图
%% 第五步:预测的准确率
accu = 1-sum(abs(predictline-test_y))/length(test_y);
fprintf('预测结果准确率为:%d',accu)

高斯向量机

clear;close all;clc;
%% 第一步:读取数据
load SVMdata2.mat;
%% 第二步:分离训练集和测试集
% [train_X,train_y,test_X,test_y] = split_train_test(X,y,2,0.8);
% randperm随机打算数据集X的顺序
index = randperm(size(X,1)); %获取打算顺序后的数据集的索引
n = length(index); %得到index的个数
% 分离训练集
T = round(n*0.8);
train_X = X(index(1:T),:); %分离出数据集X中的训练集
train_y = y(index(1:T),:); %分离出数据集y中的训练集
% 分离测试集或预测集
test_X = X(index(T+1:end),:); %分离出数据集X中的测试集
test_y = y(index(T+1:end),:); %分离出数据集y中的测试集%% 第三步:高斯拟合训练集
svmgs = svmtrain(train_X,train_y,'Showplot',true,'kernel_function','rbf','rbf_sigma',1);%% 第四步:SVM预测
predict = svmclassify(svmgs,test_X,'Showplot',true);
fprintf('预测分类结果为:\n')
disp(predict')
%继续绘制测试集数据
hold on; %继续在这张图上绘制
plot(test_X(:,1),test_X(:,2),'gs','Markersize',12) %圈出预测数据
xlabel('x') %添加行标签
ylabel('y') %添加列标签
title('高斯核支持向量机') %添加标题
hold off %接下来绘制重启一张图
%% 第五步:预测的准确率
% accu = sum(strcmp(predict,test_y))/length(test_y)*100
accu = 1-sum(abs(predict-test_y))/length(test_y);
fprintf('预测结果准确率为:%d',accu)

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

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

相关文章

excel如何去重统计户数_公式解读第三期 单元格中数字如何去重排序?

公式解读 第三期 -单元格中数字的去重排序!本期涉及到函数较多,你可以一次性根据这个案例,学习多少很多常用 函数的用法,同时我也会讲解思路,这个很重要,思路决定了出路。直接先看一下我们的效果图&#xf…

机器学习 —— 神经网络(matlab)

目录 一、介绍 二、实验数学原理 三、实验算法和实验步骤 四、实例分析 一、介绍 神经网络是一种运算模型,由大量的节点(或称“神经元”,或“单元”)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励…

ARIMA加法季节模型

目录 ARIMA加法季节模型 ARIMA加法季节模型函数 例题 ARIMA加法季节模型 季节效应和其它效应之间是加法关系 通过简单的趋势差分、季节差分之后转化为平稳,模型结构通常如下 ARIMA加法季节模型函数 例题 部分数据: timexJan-93977.5Feb-93892.5Mar…

Java在远程方法调用中运用反射机制

我们将介绍反射机制在网络编程中的应用,实现如何在客户端通过远程方法调用服务器端的方法。 假定在服务器端有一个 HelloService 接口,该接口具有 getTime() 和 echo() 方法,具体代码如下: import java.util.Date;public interf…

多元时间序列分析 —— 因果检验

目录 因果检验 因果关系的识别 例 Granger 因果关系定义 两变量之间的4种因果关系 Granger因果检验 1.假设条件 2.检验统计量 例 进行Granger因果检验应该注意的问题 因果检验 因果关系的识别 对于多元时间序列而言,如果能找到对响应变量有显.著影响的输…

华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以免费收到最新内容了。每天都有分享,完全是免费订阅,请放心关注。声明:本文转载自网络,如有侵权,请在后台留言联系…

Java常见异常处理

异常(exception)是在运行程序时产生的一种异常情况,已经成为了衡量一门语言是否成熟的标准之一。 异常简介 Java 中的异常又称为例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流。为了能够及时…

干预分析 + 伪回归

目录 干预分析 干预分析的定义 干预分析的产生背景 干预分析的实质 干预分析步骤 步骤一 步骤二 步骤三 步骤四 步骤五 步骤六 干预机制的选择 伪回归 定义 伪回归随机模拟试验 伪回归产生原因 干预分析 干预分析的定义 时间序列常常受到某些外部事件的影响…

R如何安装MSBVAR包!!!请看这里!!

目录 1.MSBVAR介绍 2.为何R上安装失败 3.解决方案 1.MSBVAR介绍 MSBVAR: 估计贝叶斯向量自回归模型和贝叶斯结构向量自回归模型,也可以用于时间序列的因果检验。 2.为何R上安装失败 MSBVAR现在不属于R中的库,属于第三方安装库,并且它在…

easy excel根据行列excel_Excel函数如何根据地级市匹配所在省份计算快递费用

前些日子一个学员问的关于excel计算快递费的问题,office小超老师觉得很有代表性。在这里和大家分享一下具体处理快递费的处理流程。在她的这个案例中,订单信息地区仅为各个地级市,现在的问题就是要根据不同的地级市和各个地区不同的快递费用&…

智能计算之遗传算法(GA)介绍

目录 1. 简介 2. GA思想来源及建立过程 3. 研究发展 4. GA的基本结构 5. GA的实现流程 (1) 染色体编​辑 (2) 群体的初始化 (3) 适应值评价 (4) 选择算子(父体选择) (5) 交配算子(杂交算子) (6) 变异算子 (7) 算法流程 6. 实例举例 7. 遗传算法的改进 (1) 算子的…

sublimetext3插件安装_sublime text 3 交互python

爱折腾的我最近在用sublime text 3 写python,但是原生态的编译模式不支持交互。在网上找了许多资料,想要可以交互运行python,大都需要sublimeREPL这个插件,我不想用这个插件。在多次摸索过后找到了如下解决方案,在此记…

如何用手机打开dcm格式图片_压缩图片用这个神奇吧(电脑版)

一码不扫,可以扫天下?Light Image Resizer是将数码照片和图像存在电脑中,并希望重新调整图片大小,压缩,转换,创建备份,导入或组织图片的人们设计的完美工具。Light Image Resizer 专业的图像缩放…

智能计算之神经网络(BP)介绍

目录 1. 神经网络流行原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 前馈型网络 6.3 前馈内层互联网络 6.4 反馈型网络 6.5 全互联网络 7. 神经网络的学习算…

python系统关键字_Python基础教程 - global关键字及全局变量的用法

Python中global关键字主要作用是声明变量的作用域。 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a 5; void test(void) { a 1; // 没有先声…

智能计算之神经网络(Hopfield网络-DHNN,CHNN )介绍

目录 1. 神经网络受欢迎的原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 前馈型网络 6.3 前馈内层互联网络 6.4 反馈型网络 6.5 全互联网络 7. 神经网络的学…

智能计算之蚁群算法(ACO)介绍

目录 1. 简介 2. 基本思想 3. 研究进展 4. 基本流程 (1)路径构建 (2)信息素更新 ​5. 应用举例 6. 改进版 6.1 精华蚂蚁系统 6.2 基于排列的蚂蚁系 6.3 最大最小蚂蚁系 6.4 蚁群系统 7. 参数设置​编辑 8. 练习题 …

Java try catch finally语句

在实际开发中,根据 try catch 语句的执行过程,try 语句块和 catch 语句块有可能不被完全执行,而有些处理代码则要求必须执行。例如,程序在 try 块里打开了一些物理资源(如数据库连接、网络连接和磁盘文件等&#xff09…

linux代码_Sonar代码走查的配置(linux)

SonarQube是一个静态代码质量检查工具,可以检查出代码中明显或潜在问题。虽然偶尔它的判断会是错误的,但还是值得我们用。它能以比较基础的级别减少代码出错的可能,可以节省人工Review代码时间。它支持多种语言的检查。我这里的代码是java代码…

智能计算之粒子群算法(PSO)介绍

目录 1. 简介(思想) 2. 研究发展 3. 算法步骤 4. 应用举例 5. 粒子群优化算法的改进研究 5.1 理论改进 5.2 拓扑结构改进 5.3 混合算法改进 5.4 离散版本改进 6. 相关应用 7. 参数设置​ 1. 简介(思想) 粒子群优化算法(Particle Swarm Optimization&…