支持向量机SVM介绍以及MATLAB实现

这篇具有很好参考价值的文章主要介绍了支持向量机SVM介绍以及MATLAB实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

  支持向量机是数据挖掘中的一项新技术,是借助最优化方法来解决机器学习问题的新工具,最初由V.Vapnik等人提出,近几年来在其理论研究和算法实现等方面都取得了很大的进展,开始成为克服“维数灾难”和“过学习”等困难的强有力手段,其理论基础和实现途径的基本框架都已形成。
  支持向量机(Support Vector Machine ,以下简称SVM)在模式识别等领域获得了广泛的应用。其主要思想是找到一个超平面,使得它能够尽可能多地将两类数据点正确分开,同时使分开的两类数据点距离分类面最远,如下图(b)所示。(与图(a)做对比)
  在进行线性分类时,将分类面取在离两类样本距离较大的地方;进行非线性分类时通过高维空间变换,将非线性分类变成高维空间的线性分类问题。
支持向量机SVM介绍以及MATLAB实现

二、支持向量机分类基本原理

  根据给定的训练集 T T T = { [ a 1 , y 1 ] , [ a 2 , y 2 ] , ⋅ ⋅ ⋅ , [ a l , y l ] [a_1,y_1],[a_2,y_2],···,[a_l,y_l] [a1,y1],[a2,y2],⋅⋅⋅,[al,yl]} ∈ \in ( Ω × Y ) l \Omega \times Y)^l Ω×Y)l, 式中 a i ∈ Ω = R n a_i \in \Omega = R^n aiΩ=Rn Ω \Omega Ω称为输入空间,输入空间中的每个点 a i a_i ai,由 n n n个属性特征组成; y i ∈ Y = y_i \in Y = yiY={-1,1}, i = 1 , 2 , ⋅ ⋅ ⋅ , l i =1,2,···,l i=1,2,⋅⋅⋅,l。寻找 R n R^n Rn上的一个实值函数 g ( x ) g(x) g(x),以便用分类函数
f ( x ) = s i g n ( g ( x ) ) f(x) = sign(g(x)) f(x)=sign(g(x)),
推断任意一个模式 x x x相对应的 y y y值的问题为分类问题。

2.1 线性可分SVM

  支持向量机最初是研究线性可分问题而提出的,因此,这里先详细介绍线性SVM的基本
思想及原理。
  为不失一般性,假设大小为 l l l的训练样本集{( x i , y i x_i,y_i xi,yi), i = 1 , 2 , ⋅ ⋅ ⋅ , l i= 1,2,···,l i=1,2,⋅⋅⋅,l}由两个类别组成。若 x i x_i xi属于第一类,则记 y i y_i yi=1;若 x i x_i xi属于第二类,则记 y i y_i yi= -1。
  若存在分类超平面
ω ⋅ x + b = 0 (2.1.1) \omega ·x +b =0\tag{2.1.1} ωx+b=0(2.1.1)
能够将样本正确地划分成两类,即相同类别的样本都落在分类超平面的同一侧,则称该样本集是线性可分的,即满足
{ ω ⋅ x + b ≥ 1 , y i = 1 ( i = 1 , 2 , ⋅ ⋅ ⋅ , l ) ω ⋅ x + b ≤ − 1 , y i = − 1 ( i = 1 , 2 , ⋅ ⋅ ⋅ , l ) (2.1.2) \begin{cases} \omega· x +b \geq 1,&y_i = 1(i= 1,2,···,l)\tag{2.1.2} \\ \omega· x +b \leq -1,&y_i = -1(i= 1,2,···,l)\\ \end{cases} {ωx+b1,ωx+b1,yi=1(i=1,2,⋅⋅⋅,l)yi=1(i=1,2,⋅⋅⋅,l)(2.1.2)
  定义样本点 x i x_i xi;到式(2.1.1)所指的分类超平面的间隔为
ϵ i = y i ( ω ⋅ x i + b ) = ∣ ω ⋅ x i + b ∣ (2.1.3) \epsilon_i = y_i(\omega· x_i + b) = | \omega ·x_i + b |\tag{2.1.3} ϵi=yi(ωxi+b)=ωxi+b(2.1.3)
将式(2.1.3)中的 ω 和 b \omega 和 b ωb进行归一化,即用 ω ∣ ∣ ω ∣ ∣ 和 b ∣ ∣ b ∣ ∣ \frac{\omega}{||\omega||}和\frac{b}{||b||} ∣∣ω∣∣ω∣∣b∣∣b分别代替原来的 ω 和 b \omega 和b ωb,并将归一化后的间隔定义为集合间隔
δ i = ω ⋅ x i + b ∣ ∣ ω ∣ ∣ (2.1.4) \delta_i = \frac{\omega ·x_i + b}{|| \omega ||}\tag{2.1.4} δi=∣∣ω∣∣ωxi+b(2.1.4)
  同时定义一个样本集到超平面的距离为此集合与分类超平面最近的样本点的几何间隔,即
δ = min ⁡ δ i , ( i = 1 , 2 , ⋅ ⋅ ⋅ , l ) (2.1.5) \delta = \min \delta_i,(i = 1,2,···,l)\tag{2.1.5} δ=minδi,(i=1,2,⋅⋅⋅,l)(2.1.5)
  样本误分次数 N N N与样本集到分类超平面的距离 δ \delta δ之间的关系为
N ≤ ( 2 R δ ) 2 (2.1.6) N \leq (\frac{2R}{\delta})^2\tag{2.1.6} N(δ2R)2(2.1.6)
其中, R = max ⁡ ∣ ∣ x i ∣ ∣ , i = 1 , 2 , ⋅ ⋅ ⋅ , l R = \max ||x_i||,i = 1,2,···,l R=max∣∣xi∣∣,i=1,2,⋅⋅⋅,l,为样本集中间向量长度最长的值。
  由式(2.1.6)可知,误分次数 N N N的上界由样本集到分类超平面的距离 δ \delta δ决定,即 δ \delta δ越大, N N N越小。因此,需要在满足式(2.1.2)的无数个分类超平面中选择一个最优分类面,使得样本集到分类超平面的距离 δ \delta δ最大。
  若间隔 ϵ i = ∣ ω ⋅ x i + b ∣ = 1 \epsilon_i = | \omega ·x_i + b | =1 ϵi=ωxi+b=1,则两类样本点间的距离为 2 ∣ ω ⋅ x i + b ∣ ∣ ∣ ω ∣ ∣ = 2 ∣ ∣ ω ∣ ∣ 2\frac{|\omega· x_i + b|}{|| \omega ||} = \frac{2}{|| \omega ||} 2∣∣ω∣∣ωxi+b=∣∣ω∣∣2。因此,如下图所示,目标即为在满足式(2.1.2)的约束下寻求最优分类超平面,使得 2 ∣ ∣ ω ∣ ∣ \frac{2}{|| \omega ||} ∣∣ω∣∣2最大,即最小化 ∣ ∣ ω ∣ ∣ 2 2 \frac{|| \omega||^2}{2} 2∣∣ω2

支持向量机SVM介绍以及MATLAB实现 用数学语言描述,即,

{ min ⁡ ∣ ∣ ω ∣ ∣ 2 2 s . t . y i ( ω ⋅ x i + b ) ≥ 1 , i = 1 , 2 , ⋅ ⋅ ⋅ , l (2.1.7) \begin{cases} \min \frac{|| \omega||^2}{2}\tag{2.1.7} \\ s.t. \quad y_i(\omega ·x_i + b)\geq 1,i =1,2,···,l \end{cases} {min2∣∣ω2s.t.yi(ωxi+b)1,i=1,2,⋅⋅⋅,l(2.1.7)
  该问题目标函数 ∣ ∣ ω ∣ ∣ 2 2 \frac{|| \omega||^2}{2} 2∣∣ω2 ω \omega ω的凸函数,并且约束条件都是线性的。引入拉格朗日函数
L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 − ∑ i = 1 l α i [ y i ( ω ⋅ x i + b ) − 1 ] (2.1.8) L(\omega ,b,\alpha) = \frac{1}{2}||\omega||^2 - \sum_{i=1}^l \alpha_i[y_i(\omega ·x_i +b)-1]\tag{2.1.8} L(ω,b,α)=21∣∣ω2i=1lαi[yi(ωxi+b)1](2.1.8)
其中, α = [ α 1 , ⋅ ⋅ ⋅ , α l ] T ∈ R l + \alpha = [\alpha_1,···,\alpha_l]^T \in R^{l+} α=[α1,⋅⋅⋅,αl]TRl+为拉格朗日乘子。
  由于计算的复杂性,一般不直接求解,而是根据对偶理论,将(2.1.8)转化成对偶问题,即
{ max ⁡ Q ( α ) = ∑ i = 1 l α i − 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j ( x i ⋅ x j ) s . t . ∑ i = 1 l α i y i = 0 , α ≥ 0 (2.1.9) \begin{cases} \max Q(\alpha) = \sum\limits_{i=1}^l \alpha_i-\frac{1}{2}\sum\limits_{i=1}^l\sum\limits_{j=1}^l\alpha_i\alpha_jy_iy_j(x_i·x_j)\tag{2.1.9}\\ s.t. \sum\limits_{i=1}^l\alpha_iy_i = 0,&\alpha \geq 0\\ \end{cases} maxQ(α)=i=1lαi21i=1lj=1lαiαjyiyj(xixj)s.t.i=1lαiyi=0,α0(2.1.9)
  这个问题可以用二次规划方程求解。设最优解为 α ∗ = [ α 1 ∗ , ⋅ ⋅ ⋅ , α l ∗ ] T \alpha^* = [\alpha_1^*,···,\alpha_l^*]^T α=[α1,⋅⋅⋅,αl]T,则可以得到最优解 ω ∗ 和 b ∗ \omega^*和b^* ωb
{ ω ∗ = ∑ i = 1 l α i ∗ x i y i b ∗ = − 1 2 ω ∗ ( x r + x s ) (2.1.10) \begin{cases} \omega^* = \sum\limits_{i=1}^l\alpha^*_ix_iy_i\tag{2.1.10}\\ b^* = -\frac{1}{2}\omega^*(x_r+x_s)\\ \end{cases} ω=i=1lαixiyib=21ω(xr+xs)(2.1.10)
其中, x r 和 x s x_r和x_s xrxs为两个类别中的任意一对支持向量。
  最终得到的分类模型为
f ( x ) = s g n [ ∑ i = 1 l α i ∗ y i ( x ⋅ x i ) + b ∗ ] (2.1.11) f(x) = sgn[\sum\limits_{i=1}^l\alpha_i^*y_i(x·x_i) + b^*]\tag{2.1.11} f(x)=sgn[i=1lαiyi(xxi)+b](2.1.11)
  值得一提的是,若数据集中的绝大多数样本是线性可分的,仅有少数几个样本(可能是异常点)导致寻找不到最优分类超平面(入下图所示)
支持向量机SVM介绍以及MATLAB实现

针对此类情况,通用的做法是引入松弛变量,并对式(2.1.7)中的优化目标即约束项进行修正,即
{ min ⁡ ∣ ∣ ω ∣ ∣ 2 2 + C ∑ i = 1 l ξ i s . t . { y i ( ω x i + b ) ≥ 1 − ξ i ξ i > 0 , i = 1 , 2 , ⋅ ⋅ ⋅ , l (2.1.12) \begin{cases} \min \frac{|| \omega||^2}{2} + C\sum\limits_{i=1}^l\xi_i\tag{2.1.12} \\ s.t. \quad {\begin{cases} y_i(\omega x_i + b)\geq 1-\xi_i \\ \xi_i>0&,i =1,2,···,l\\ \end{cases}} \\ \end{cases} min2∣∣ω2+Ci=1lξis.t.{yi(ωxi+b)1ξiξi>0,i=1,2,⋅⋅⋅,l(2.1.12)
其中, C C C为惩罚因子,起着控制错分样本惩罚程度的作用,从而实现在错分样本的比例与算法复杂度间的折中。求解方法与式(2.1.8)相同,即转化为其对偶问题
L ( ω , b , ξ , α , γ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 l ξ i − ∑ i = 1 l α i [ y i ( ω ⋅ x i + b ) − 1 + ξ i ] − ∑ i = 1 l γ i ξ i L(\omega ,b,\xi,\alpha,\gamma) = \frac{1}{2}||\omega||^2 + C\sum\limits_{i=1}^l\xi_i- \sum_{i=1}^l \alpha_i[y_i(\omega ·x_i +b)-1 + \xi_i] - \sum\limits_{i=1}^l\gamma_i\xi_i L(ω,b,ξ,α,γ)=21∣∣ω2+Ci=1lξii=1lαi[yi(ωxi+b)1+ξi]i=1lγiξi
只是约束条件变为
{ ∑ i = 1 l α i y i = 0 , i = 1 , 2 , ⋅ ⋅ ⋅ , l 0 ≤ α i ≤ C (2.1.13) \begin{cases} \sum\limits_{i=1}^l\alpha_iy_i = 0,&i =1,2,···,l\tag{2.1.13}\\ 0\leq \alpha_i \leq C \end{cases} i=1lαiyi=0,0αiCi=1,2,⋅⋅⋅,l(2.1.13)
最终求得到的分类函数形式与(2.1.11)一样。

2.2 线性不可分SVM

  在实际应用中,绝大多数问题都是非线性的,这时对于线性可分SVM是无能为力的。对于此类线性不可分问题,常用的方法是通过非线性映射 Φ : R d → H \Phi:R^d→H Φ:RdH,将原输人空间的样本映射到高维的特征空间 H H H中,再在高维特征空间 H H H中构造最优分类超平面,如下图所示。另外,与线性可分SVM相同,考虑到通过非线性映射到高维特征空间后仍有因少量样本造成的线性不可分情况,亦考虑引入松弛变量。

支持向量机SVM介绍以及MATLAB实现

  在高维特征空间中寻求最优分类超平面的过程及方法与线性可分SVM情况类似,只是
以核函数取代了高维特征空间中的点积,从而大大减少了计算量与复杂度。
  映射到高维特征空间后对应的对偶问题变为
{ max ⁡ Q ( α ) = ∑ i = 1 l α i − 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j K ( x i ⋅ x j ) s . t . { ∑ i = 1 l α i y i = 0 , , i = 1 , 2 , ⋅ ⋅ ⋅ , l 0 ≤ α i ≤ C (2.1.15) \begin{cases} \max Q(\alpha) = \sum\limits_{i=1}^l \alpha_i-\frac{1}{2}\sum\limits_{i=1}^l\sum\limits_{j=1}^l\alpha_i\alpha_jy_iy_jK(x_i·x_j)\tag{2.1.15}\\ s.t. \quad {\begin{cases} \sum\limits_{i=1}^l\alpha_iy_i = 0,&,i =1,2,···,l \\ 0 \leq \alpha_i\leq C \\ \end{cases}} \\ \end{cases} maxQ(α)=i=1lαi21i=1lj=1lαiαjyiyjK(xixj)s.t. i=1lαiyi=0,0αiC,i=1,2,⋅⋅⋅,l(2.1.15)
设最优解为 α ∗ = [ α 1 ∗ , ⋅ ⋅ ⋅ , α l ∗ ] T \alpha^* = [\alpha_1^*,···,\alpha_l^*]^T α=[α1,⋅⋅⋅,αl]T,则
ω ∗ = ∑ i = 1 l α i ∗ Φ ( x i ) y i (2.1.16) \omega^* = \sum\limits_{i=1}^l\alpha^*_i\Phi(x_i)y_i\tag{2.1.16} ω=i=1lαiΦ(xi)yi(2.1.16)
从而得到最优的分类模型为
f ( x ) = s g n ( ω ∗ Φ ( x ) + b ∗ ) = s g n ( ∑ i = 1 l α i ∗ y i Φ ( x ) ⋅ Φ ( x i ) + b ∗ ) = s g n ( ∑ i = 1 l α i ∗ y i K ( x i , x ) + b ∗ ) (2.1.17) f(x) = sgn(\omega^*\Phi(x) + b^*) = sgn(\sum\limits_{i=1}^l\alpha_i^*y_i\Phi(x)·\Phi(x_i) + b^*) \\= sgn(\sum\limits_{i=1}^l\alpha_i^*y_iK(x_i,x) + b^*)\tag{2.1.17} f(x)=sgn(ωΦ(x)+b)=sgn(i=1lαiyiΦ(x)Φ(xi)+b)=sgn(i=1lαiyiK(xi,x)+b)(2.1.17)
  容易证明,解中将只有一部分(通常是少部分)不为零,非零部分对应的样本 x i x_i xi就是支持向量,决策边界仅由支持向量确定。由式(2.1.15)也可以看出,支持向量机的结构与神经网络的结构较为类似,如下图所示。输出是中间节点的线性组合,每个中间节点对应一个支持向量。

支持向量机SVM介绍以及MATLAB实现

  常用的核函数

函数 公式
线性核函数 K ( x , x i ) = x ⋅ x i K(x,x_i) = x·x_i K(x,xi)=xxi
多项式核函数 K ( x , x i ) = ( x ⋅ x i + 1 ) d K(x,x_i) = (x·x_i + 1)^d K(x,xi)=(xxi+1)d
径向基核函数 K ( x , x i ) = e x p ( ∣ ∣ x − x i ∣ ∣ 2 2 σ 2 ) K(x,x_i) = exp(\frac{||x-x_i||^2}{2 \sigma^2}) K(x,xi)=exp(2σ2∣∣xxi2)
Sigmoid核函数 K ( x , x i ) = t a n h ( k ( ( x ⋅ x i ) + θ ) K(x,x_i) = tanh(k((x·x_i) + \theta) K(x,xi)=tanh(k((xxi)+θ)
傅里叶核函数 K ( x , x i ) = ∑ k = 1 n 1 − q 2 2 [ 1 − 2 q c o s ( a i k − a j k ) + q 2 ] K(x,x_i) = \sum\limits_{k=1}^n\frac{1-q^2}{2[1-2qcos(a_{ik}-a_{jk})+q^2]} K(x,xi)=k=1n2[12qcos(aikajk)+q2]1q2

2.3 多分类问题

  由线性可分SVM和线性不可分SVM的原理可知,支持向量机仅限于处理二分类问题,对于多分类问题,须做进一步的改进。目前,构造多分类SVM的方法主要有两个:直接法和间接法。直接法通过修改待求解的优化问题,直接计算出用于多分类的分类函数,该方法计算量较大、求解过程复杂、花费时间较长,实现起来比较困难。间接法主要是通过组合多个二分类SVM来实现多分类SVM的构建,常见的方法有一对一(one-against-one)和一对多(one-against- all)两种。

2.3.1一对一(ovo)

  一对一在 K K K类训练样本中构造所有可能的二分类SVM,即将每类样本与其他类别的样本分别构成二分类问题,共构造 K ( K − 1 ) 2 \frac{K(K-1)}{2} 2K(K1)个二分类SVM。测试样本经过所有的二分类SVM进行分类,然后对所有类别进行投票,得票最多的类别(最占优势的类别)即为测试样本所属的类别。

支持向量机SVM介绍以及MATLAB实现

2.3.2一对多(ovr)

  一对多由 K K K个二分类SVM组成,第 i ( i = 1 , 2 , … , K ) i(i=1,2,…,K) i(i=1,2,,K)个二分类SVM将第 i i i类训练样本的类别标记为+1,而将其余所有训练样本的类别标记为-1。测试样本经过所有二分类SVM进行分类,然后根据预测得到的类别标号判断是否属于第 i ( i = 1 , 2 , … , K ) i(i=1,2,…,K) i(i=1,2,,K)个类别。

支持向量机SVM介绍以及MATLAB实现

2.3.2ovo 和ovr 区别

  区别如下图所示:
支持向量机SVM介绍以及MATLAB实现

三、MATLAB实现

libsvm包实现

  本例将用乳腺癌诊断来对算法进行实现

1.产生训练集/测试集

%% 清空环境变量
clear all
clc
%% 导入数据
load BreastTissue_data.mat
% 随机产生训练集和测试集
n = randperm(size(matrix,1));
% 训练集——80个样本
train_matrix = matrix(n(1:80),:);
train_label = label(n(1:80),:);
% 测试集——26个样本
test_matrix = matrix(n(81:end),:);
test_label = label(n(81:end),:);

2. 数据归一化

%% 数据归一化
[Train_matrix,PS] = mapminmax(train_matrix');
Train_matrix = Train_matrix';
Test_matrix = mapminmax('apply',test_matrix',PS);
Test_matrix = Test_matrix';

3. SVM创建/训练(RBF核函数)

  如前文所述,在创建/训练SVM时应考虑核函数及相关参数对模型性能的影响。这里采用默认的RBF核函数。首先利用交又验证方法寻找最佳的参数 c c c(惩罚因子)和参数 g g g(RBF核函数中的方差),然后利用最佳的参数训练模型。值得一提的是,当模型的性能相同时,为了减少计算时间,优先选择惩罚因子 c c c比较小的参数组合,这是因为惩罚因子 c c c越大,最终得到的支持向量数将越多,计算量越大。具体程序如下:

% 寻找最佳c/g参数——交叉验证方法
[c,g] = meshgrid(-10:0.2:10,-10:0.2:10);
[m,n] = size(c);
cg = zeros(m,n);
eps = 10^(-4);
v = 5;
bestc = 1;
bestg = 0.1;
bestacc = 0;
for i = 1:m
    for j = 1:n
        cmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j))];
        cg(i,j) = svmtrain(train_label,Train_matrix,cmd);     
        if cg(i,j) > bestacc
            bestacc = cg(i,j);
            bestc = 2^c(i,j);
            bestg = 2^g(i,j);
        end        
        if abs( cg(i,j)-bestacc )<=eps && bestc > 2^c(i,j) 
            bestacc = cg(i,j);
            bestc = 2^c(i,j);
            bestg = 2^g(i,j);
        end               
    end
end
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg)];
% 创建/训练SVM模型
model = svmtrain(train_label,Train_matrix,cmd);

4. SVM仿真测试

%% SVM仿真测试
[predict_label_1,accuracy_1] = svmpredict(train_label,Train_matrix,model);
[predict_label_2,accuracy_2] = svmpredict(test_label,Test_matrix,model);
result_1 = [train_label predict_label_1];
result_2 = [test_label predict_label_2];

5. 结果展示

%% 绘图
figure
plot(1:length(test_label),test_label,'r-*')
hold on
plot(1:length(test_label),predict_label_2,'b:o')
grid on
legend('真实类别','预测类别')
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集SVM预测结果对比(RBF核函数)';
          ['accuracy = ' num2str(accuracy_2(1)) '%']};
title(string)

结果如下:

支持向量机SVM介绍以及MATLAB实现

  由于训练集和测试集是随机产生的,所以程序每次运行的结果都会不同。某次运行的测试集预测结果如下表所列。从表中可以清晰地看到,只有样本5和7和13预测错误,测试集的预测正确率达到88.46%(23/26)。且如前文所述,乳腺癌、纤维腺瘤和乳腺病(标签分别为1、2和3)为病变组织,乳腺组织、结缔组织和脂肪组织(标签分别为4、5、6)为正常组织,若仅判断为病变组织或正常组织(即二分类),则样本5和7判断正确(将乳腺癌诊断为纤维腺瘤,同为病变组织),预测正确率将达到96.15%(25/26),这也从另外一个角度体现了SVM用于二分类的优越性。

样本编号 1 2 3 4 5 6 7 8 9 10 11 12 13
真实类别 2 2 2 5 3 1 4 6 1 1 1 6 4
预测类别 2 2 2 5 1 1 6 6 1 1 1 6 1
样本编号 14 15 16 17 18 19 20 21 22 23 24 25 26
真实类别 1 3 3 1 4 6 5 6 3 1 3 6 6
预测类别 1 3 3 1 4 6 5 6 3 1 3 6 6

  
  
  
  

喜欢的小伙伴麻烦点个赞加关注奥,谢谢啦🙏🙏
代码链接:https://pan.baidu.com/s/1OPzcZVisebc3reS3ycR8tA
提取码:6666

参考:
MATLAB智能算法30案例分析(第二版)文章来源地址https://www.toymoban.com/news/detail-408844.html

到了这里,关于支持向量机SVM介绍以及MATLAB实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测

    分类效果 基本描述 1.Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测(完整源码和数据) 2.优化参数为:学习率,批量处理大小,正则化参数。 3.图很多,包括分类效果图,混淆矩阵图。 4.附赠案例数据可直接运行main一键出图~ 注意程序和数据放在一个文件夹,运

    2024年02月07日
    浏览(49)
  • 分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测

    预测效果 基本介绍 MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测,优化参数为:学习率,批量处理大小,正则化参数。图很多,包括分类效果图,迭代优化图,混淆矩阵图。 程序设计 完整程序和数据获取方式1:同等价值程序兑换; 完整程序和数据获取方式

    2024年02月10日
    浏览(42)
  • 分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分类预测

    预测效果 基本介绍 1.分类预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机多输入分类预测 2.代码说明:要求于Matlab 2021版及以上版本。 程序设计 完整程序和数据获取方式1:同等价值程序兑换; 完整程序和数据获取方式2:私信博主回复 MATLAB实现DBN-SVM深度置信网络结合支

    2024年02月12日
    浏览(38)
  • MATLAB 支持向量机(SVM)

    简单来讲就是如何将两个数据用点、直线、平面分开。。。。。 二维空间中,要分开两个线性可分的点集合,我们需要找到一条分类直线即可, 通俗来讲,在这个二维平面中,可以把两类点的分开的直线有很多条,那么这些直线中,哪一条才是最好的呢?也就是如何选择出

    2024年02月03日
    浏览(36)
  • 分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测

    分类效果 基本描述 1.Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测。 2.自带数据,多输入,单输出,多分类。优化参数为:SVM的gamma和c。图很多,包括迭代曲线图、混淆矩阵图、预测效果图等等 3.直接替换数据即可使用,保证程序可正常运行。运行环境MATLAB2018及

    2024年01月17日
    浏览(44)
  • 时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)

    效果一览 基本描述 MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价) DBN是一种多层神经网络,可以通过逐层训练来提取时间序列数据的特征。用DBN模型提取时间序列数据的特征。使用支持向量机工具箱中的函数构建SVM模型。支持向量机是一种监督学习算

    2024年02月11日
    浏览(44)
  • 回归预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入单输出回归预测

    预测效果 基本介绍 1.MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入单输出回归预测; 2.运行环境为Matlab2018b; 3.输入多个特征,输出单个变量,多变量回归预测; 4.data为数据集,excel数据,前7列输入,最后1列输出,主程序运行即可,所有文件放在一个文件夹; 5.命令窗

    2024年02月16日
    浏览(50)
  • 分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测

    分类效果 基本介绍 先利用平均影响值MIV算法对特征进行排序,确定分类特征变量做特征重要性排序,实现特征选择。 最终MIV结合SVM做分类建模,输出有分类对比图和混淆矩阵图。 通过重要性排序图,选择重要的特征变量,以期实现数据降维的目的。程序直接替换数据就可以

    2024年02月11日
    浏览(38)
  • 分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测

    效果一览 基本介绍 MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测(完整程序和数据) SSA麻雀算法同步优化特征选择结合支持向量机分类预测,优化前后对比,基于LIBSVM。 程序设计 完整程序和数据下载方式私信博主回复:MATLAB实现SSA-FS-SVM麻雀算法同步

    2024年02月07日
    浏览(50)
  • 分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测

    效果一览 基本介绍 MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测(完整程序和数据) WOA鲸鱼算法同步优化特征选择结合支持向量机分类预测,优化前后对比,基于LIBSVM。 程序设计 完整程序和数据下载方式私信博主回复:MATLAB实现WOA-FS-SVM鲸鱼算法同步

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包