0


基于SVM的多故障分类器|和车神哥一起学系列

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🥇 官方认证:人工智能领域新星创作者
🎉点赞评论收藏 == 养成习惯一键三连)😋

⚡希望大家多多支持🤗~一起加油 😁

  • 专栏
  • 《Neural Network》
  • 《LeetCode天梯》
  • 《Algorithm》
  • 《Python》

已经放假了,蚌埠住了!!!

耶✌️✌️✌️

SVM多故障分类器

车神哥是搞故障诊断、机器学习的,和车神哥一起学起来,来一起学技术!~

前言

针对因缺少大量故障数据样本而制约机械故障智能诊断的问题。改进了支持向量机多故障分类算法。依据此算法建立了多故障分类器,并应用于汽轮发电机组的故障诊断。应用结果表明,不必进行信号预处理以提取特征量‚只需要用少量的时域故障数据样本建立故障分类器。该故障分类器可实现多故障的识别和诊断,并且具有算法简单、可对故障在线分类和故障分类能力强的优点。

目前比较常用的模糊诊断、专家系统和人工神经网络等智能诊断方法,往往需要大量的故障数据样本或先验知识‚而在机械故障诊断领域‚获取大量的典型故障数据样本非常困难。此外,这些方法还需要先通过数字信号处理以提取信号的特征量,而对于不同的故障到底应该提取哪些
特征和如何提取,则没有统一的规定。因而限制了这些智能诊断方法的推广应用。

二分类SVM原理

若给定的两类训练数据样本集为

     (
    
    
     
      x
     
     
      i
     
    
    
     ‚
    
    
     
      y
     
     
      i
     
    
    
     )
    
    
     ,
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     2
    
    
     ,
    
    
     …
    
    
     ,
    
    
     n
    
    
     ,
    
    
     x
    
    
     ∈
    
    
     
      R
     
     
      d
     
    
    
     ,
    
    
     y
    
    
     ∈
    
    
     {
    
    
     +
    
    
     1
    
    
     ,
    
    
     -
    
    
     1
    
    
     }
    
   
   
    ( x_i‚y_i), i =1, 2,…,n, x ∈ R^d,y ∈{+1,-1}
   
  
 (xi​‚yi​),i=1,2,…,n,x∈Rd,y∈{+1,-1}

式中:n 为训练样本的个数;d 为每个训练样本向量的维数;y 为类别标号 (其值等于+1为一类‚等于-1为另一类)。
对于非线性分类‚首先使用一个非线性映射 Φ把数据样本从原空间

     R
    
    
     d
    
   
  
  
   R^d
  
 
Rd 映射到一个高维特征空间 Ω,再在高维特征空间 Ω求最优分类面。高维特征空间 Ω的维数可能是非常高的,但是,支持向量机利用核函数巧妙地解决了这个问题。根据泛函有关理论‚只要一种核函数

 
  
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ‚
   
   
    
     x
    
    
     j
    
   
   
    )
   
  
  
   K( x_i‚x_j)
  
 
K(xi​‚xj​)Mercer 条件,它就对应某一变换空间的内积, 即

 
  
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ‚
   
   
    
     x
    
    
     j
    
   
   
    )
   
   
    =
   
   
    Φ
   
   
    (
   
   
    x
   
   
    i
   
   
    )
   
   
    ⋅
   
   
    Φ
   
   
    (
   
   
    x
   
   
    j
   
   
    )
   
  
  
   K( x_i‚x_j) =Φ( xi)·Φ( xj)
  
 
K(xi​‚xj​)=Φ(xi)⋅Φ(xj),这样在高维空间实际上只需进行内积运算,而这种内积运算是可以用原空间中的函数实现的,无需知道变换 Φ( x) 的具体形式。因此‚在最优分类面中采用适当的内积函数 

 
  
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ‚
   
   
    
     x
    
    
     j
    
   
   
    )
   
  
  
   K( x_i‚x_j)
  
 
K(xi​‚xj​) 就可以实现某一非线性变换后的线性分类‚而计算复杂度却没有增加。这样在原空间分类面的方程为 

 
  
   
    w
   
   
    ⋅
   
   
    Φ
   
   
    (
   
   
    x
   
   
    )
   
   
    +
   
   
    b
   
   
    =
   
   
    0
   
  
  
   w·Φ( x)+ b =0
  
 
w⋅Φ(x)+b=0, 分类面应满足的约束为

 
  
   
    
     
      y
     
     
      i
     
    
    
     (
    
    
     w
    
    
     ⋅
    
    
     Φ
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     )
    
    
     +
    
    
     b
    
    
     )
    
    
     ≥
    
    
     1
    
    
     ,
    
    
     i
    
    
     =
    
    
     1
    
    
     ‚
    
    
     2
    
    
     ,
    
    
     …
    
    
     ,
    
    
     n
    
   
   
    y_i(w·Φ( x_i)+ b) ≥1 ,i =1‚2,…,n
   
  
 yi​(w⋅Φ(xi​)+b)≥1,i=1‚2,…,n

式中:w 是分类面的权系数向量;b 为分类的域值 。
考虑到可能存在一些训练样本不能被分类面正确分类,因此引入一个松弛变量 ξi ≥0‚使分类面约束变为

      y
     
     
      i
     
    
    
     (
    
    
     w
    
    
     ⋅
    
    
     Φ
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     )
    
    
     +
    
    
     b
    
    
     )
    
    
     ≥
    
    
     1
    
    
     -
    
    
     
      ξ
     
     
      i
     
    
    
     ,
    
    
     i
    
    
     =
    
    
     1
    
    
     ‚
    
    
     2
    
    
     ,
    
    
     …
    
    
     ,
    
    
     n
    
   
   
    y_i(w·Φ( x_i)+ b) ≥1-ξ_i, i =1‚2,…,n
   
  
 yi​(w⋅Φ(xi​)+b)≥1-ξi​,i=1‚2,…,n

使式(2)中等号成立的那些样本称为支持向量。使分类间隔

    2
   
   
    ∣
   
   
    y
   
   
    i
   
   
    (
   
   
    w
   
   
    ⋅
   
   
    Φ
   
   
    (
   
   
    x
   
   
    i
   
   
    )
   
   
    +
   
   
    b
   
   
    )
   
   
    ∣
   
   
    /
   
   
    ‖
   
   
    w
   
   
    ‖
   
   
    =
   
   
    2
   
   
    /
   
   
    ‖
   
   
    w
   
   
    ‖
   
  
  
   2|yi(w·Φ( xi)+ b)|/‖w‖ =2/‖w‖
  
 
2∣yi(w⋅Φ(xi)+b)∣/‖w‖=2/‖w‖ 最大化的分类面为最优分类面。因此构造最优分类面的问题被转化为在式(2) 的约束下,求函数

 
  
   
    1
   
   
    /
   
   
    2
   
   
    ‖
   
   
    w
   
   
    
     ‖
    
    
     2
    
   
   
    +
   
   
    C
   
   
    (
   
   
    
     Σ
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    =
   
   
    
     ξ
    
    
     i
    
   
   
    )
   
  
  
   1/2‖w‖^2+ C(\Sigma_{i=1}^n=ξ_i)
  
 
1/2‖w‖2+C(Σi=1n​=ξi​) 的最小值‚即在确定最优分类面时折衷考虑最小错分样本和最大分类间隔‚其中常数 C >0控制着对错分样本的惩罚程度。而这是一个凸二次优化问题‚能够保证找到的极值解就是全局最优解‚可利用 Lagrange 函数使原问题转化为较简单的对偶问题:在约束条件 

 
  
   
    
     Σ
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    =
   
   
    
     y
    
    
     i
    
   
   
    
     α
    
    
     i
    
   
   
    和
   
   
    C
   
   
    ≥
   
   
    
     α
    
    
     i
    
   
   
    ≥
   
   
    0
   
   
    ,
   
   
    i
   
   
    =
   
   
    1
   
   
    ,
   
   
    2
   
   
    ,
   
   
    …
   
   
    ,
   
   
    n
   
  
  
   \Sigma_{i=1}^n=y_iα_i 和 C ≥α_i ≥0,i =1,2,…,n
  
 
Σi=1n​=yi​αi​和C≥αi​≥0,i=1,2,…,n之下求解下列函数的最大值

 
  
   
    
     Q
    
    
     (
    
    
     α
    
    
     )
    
    
     =
    
    
     
      Σ
     
     
      
       i
      
      
       −
      
      
       1
      
     
     
      n
     
    
    
     =
    
    
     α
    
    
     i
    
    
     −
    
    
     1
    
    
     /
    
    
     2
    
    
     
      Σ
     
     
      
       i
      
      
       ,
      
      
       j
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     =
    
    
     
      α
     
     
      i
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      i
     
    
    
     
      y
     
     
      j
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ‚
    
    
     
      x
     
     
      j
     
    
    
     )
    
   
   
    Q(α) = \Sigma_{i-1}^n=αi-1/2 \Sigma_{i,j=1}^n=α_iα_jy_iy_jK( x_i‚x_j)
   
  
 Q(α)=Σi−1n​=αi−1/2Σi,j=1n​=αi​αj​yi​yj​K(xi​‚xj​)

根据 Kühn-Tucker 条件‚通过式(3)求得的优化系数 αi须满足

      α
     
     
      i
     
    
    
     (
    
    
     
      y
     
     
      i
     
    
    
     (
    
    
     w
    
    
     ⋅
    
    
     Φ
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     )
    
    
     +
    
    
     b
    
    
     )
    
    
     -
    
    
     1
    
    
     +
    
    
     
      ξ
     
     
      i
     
    
    
     )
    
    
     =
    
    
     0
    
    
     ,
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     2
    
    
     ,
    
    
     …
    
    
     ,
    
    
     n
    
   
   
    α_i( y_i(w·Φ( x_i)+ b)-1+ξ_i) =0 ,i =1,2,…,n
   
  
 αi​(yi​(w⋅Φ(xi​)+b)-1+ξi​)=0,i=1,2,…,n

因此‚多数 αi 值必为0‚少数值为非0的αi 对应于使式
(2)等号成立的样本为支持向量‚只有为支持向量的样本决定最终的分类结果。
利用式(3)求出优化系数 αi 后‚对于给定的测试样本x‚支持向量机分类器的分类函数一般形式为

    f
   
   
    (
   
   
    x
   
   
    )
   
   
    =
   
   
    s
   
   
    i
   
   
    g
   
   
    n
   
   
    {
   
   
    
     Σ
    
    
     
      支
     
     
      持
     
     
      向
     
     
      量
     
    
   
   
    
     α
    
    
     i
    
   
   
    
     y
    
    
     i
    
   
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ‚
   
   
    x
   
   
    )
   
   
    +
   
   
    b
   
   
    }
   
  
  
   f( x) = sign{\Sigma_{支持向量}α_iy_iK( x_i‚x)+ b}
  
 
f(x)=sign{Σ支持向量​αi​yi​K(xi​‚x)+b} (4)式中:sign{}为符号函数。由分类函数 f( x) 的正负即可判定 x 所属的分类。

选择不同的内积核函数形成不同的算法,目前在分类方面研究较多也较常用的核函数有四种‚即线性核函数、多项式核函数、径向基核函数和 Sigmoid 核函数。

多分类器SVM的原理及算法

基于二分类的多分类支持向量机算法主要有一对一和一对多两种,分别作简单介绍‚并予以分析比较。下面针对给定的 k 类训练数据样本集,

    (
   
   
    
     x
    
    
     i
    
   
   
    ‚
   
   
    
     y
    
    
     i
    
   
   
    )
   
   
    ,
   
   
    i
   
   
    =
   
   
    1
   
   
    ,
   
   
    2
   
   
    ,
   
   
    …
   
   
    ,
   
   
    n
   
   
    ,
   
   
    x
   
   
    ∈
   
   
    
     R
    
    
     d
    
   
   
    ,
   
   
    y
   
   
    i
   
   
    ∈
   
   
    {
   
   
    1
   
   
    ,
   
   
    2
   
   
    ,
   
   
    …
   
   
    ,
   
   
    k
   
   
    }
   
  
  
   ( x_i‚y_i),i =1,2,…,n,x ∈ R^d, yi ∈{1,2,…,k}
  
 
(xi​‚yi​),i=1,2,…,n,x∈Rd,yi∈{1,2,…,k}

式中:
n 为训练样本的个数, d 为每个训练样本向量的维数,

     y
    
    
     i
    
   
  
  
   y_i
  
 
yi​ 为类别标号, 介绍不同的多分类算法。

一对一的多分类算法

根据二分类算法,在 k 类样本中构造所有可能的两类分类器‚每个两类分类器只用 k 类中的2类训练样本进行训练‚这样可以共构造出

    k
   
   
    (
   
   
    k
   
   
    -
   
   
    1
   
   
    )
   
   
    /
   
   
    2
   
  
  
   k( k -1)/2
  
 
k(k-1)/2 个两类分类器。

在对测试数据样本的分类中,采用“投票法”。将测试样本 x 输入给由 k 类中第 m 类样本和第 n 类样本构造的两类分类器‚如果分类函数

      f
     
     
      m
     
    
    
     n
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     s
    
    
     i
    
    
     g
    
    
     n
    
    
     {
    
    
     
      Σ
     
     
      
       支
      
      
       持
      
      
       向
      
      
       量
      
     
    
    
     
      a
     
     
      i
     
     
      
       m
      
      
       n
      
     
    
    
     
      y
     
     
      i
     
     
      
       m
      
      
       n
      
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ‚
    
    
     x
    
    
     )
    
    
     +
    
    
     
      b
     
     
      
       m
      
      
       n
      
     
    
    
     }
    
   
   
     f^mn( x) = sign{\Sigma_{支持向量}a^{mn}_i y^{mn}_i K( x_i‚x)+ b^{mn}} 
   
  
 fmn(x)=sign{Σ支持向量​aimn​yimn​K(xi​‚x)+bmn}

的输出结果判定 x 属于第m 类‚则给第 m 类加一票;如果属于第 n 类‚则给第 n 类加一票。所有 k( k-1)/2个两类分类器对测试样本 x 分类后‚k 类中的哪一类得票最多(MaxWins)‚就判定测试样本 x 属于哪一类。

这种多分类算法的主要缺点是:
(1) 两类分类器的数目 k( k-1)/2随着类别数 k 的增加而急剧增加‚这样需要很大的运算量‚导致在训练和测试分类时速度很慢‚不能实现在线实时分类。
(2) 在测试分类中‚当某两类所得的票数相同时‚无法判定属于哪一类‚可能造成分类错误。
(3) 当测试样本不属于 k 类中的任何一类‚而属于其它类别时‚会出现分类错误。因为按照“投票法” k 类中总有某一类得票最多,这样就会将不属于 k 类中的任何一类的测试样本误分为某一类。

一对多的多分类算法

根据上节介绍的二分类算法‚可以构造 k 个两类分类器。在构造 k 个分类器中的第m 个分类器时(m ∈ yi)‚将第 m 类的训练样本作为一类‚类别标号为 ymi = m 是正数,将除去 m 类之外的其余所有类别的训练样本作为一类,类别标号为 ymi =-1。优化后可建立第 m 个分类器的分类输出函数为

      f
     
     
      m
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      Σ
     
     
      
       支
      
      
       持
      
      
       向
      
      
       量
      
     
    
    
     
      α
     
     
      i
     
     
      m
     
    
    
     
      y
     
     
      i
     
     
      m
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ‚
    
    
     x
    
    
     )
    
    
     +
    
    
     
      b
     
     
      m
     
    
   
   
     f^m( x) =\Sigma_{支持向量}α^m_iy^m_i K( x_i‚x)+ b^m 
   
  
 fm(x)=Σ支持向量​αim​yim​K(xi​‚x)+bm

在对测试数据样本的分类中‚采用“比较法”。将测试样本 x 分别输入给 k 个两类分类器‚从分类输出函数上式可得 k 个输出结果,比较这 k 个数求出最大者‚则输出为最大的分类器的序号即为测试样本 x 所属的类别号。

这种多分类算法的主要缺点是:
(1) 在构造每个两类分类器时‚所有的 k 类 n 个训练样本都要参加运算;在测试分类时‚k 个两类分类器都对测试样本分类后,才能判定测试样本的类别。因此,当训练样本数 n 和类别数 k 较大时‚训练和测试分类的速度较慢。
(2) 当测试样本不属于 k 类中的任何一类,而属于其它类别时,会出现分类错误。因为按照“比较法”,k 个分类器中总有某一个的输出最大‚这样就会将不属于 k 类中的任何一类的测试样本误判为输出最大的分类器所对应的类别。


好了,今天就到这儿啦!

工作是做不完的,学习是自己的事

加油!~

愿所有人在2022能够找到属于自己的未来!!!



❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!打天梯!!!
To Be No.1

⚡⚡哈****哈


创作不易⚡,过路能❤关注收藏点个赞三连就最好不过了

ღ( ´・ᴗ・` )


人经历风浪是会变得更强,可是船不同,日积月累的只有伤痛。


本文转载自: https://blog.csdn.net/weixin_44333889/article/details/122555873
版权归原作者 府学路18号车神 所有, 如有侵权,请联系我们删除。

“基于SVM的多故障分类器|和车神哥一起学系列”的评论:

还没有评论