zoukankan      html  css  js  c++  java
  • 【模式识别与机器学习】——3.2广义线性判别函数

    出发点

      线性判别函数简单,容易实现; 非线性判别函数复杂,不容易实现; 若能将非线性判别函数转换为线性判别函数,则有利于模式分类的实现。

    基本思想

      设有一个训练用的模式集{x},在模式空间x中线性不可分,但在模式空间x*中线性可分,其中x*的各个分量是x的单值实函数,x*的维数k高于x的维数n,即若取  x* = (f1(x), f2(x), …., fk(x)), k>n 则分类界面在x*中是线性的,在x中是非线性的,此时只要将模式x进行非线性变换,使之变换后得到维数更高的模式x*,就可以用线性判别函数来进行分类。

    广义线性判别函数的描述

    一个非线性判别函数可如下表示:

     

    其中{fi(x), i = 1,2,…,k}是模式x的单值实函数。若定义成广义形式:

    x* = (f1(x), f2(x), …, fk(x), 1)T

    此时有:

    d(x*) = wTx*,其中w = (w1, w2, …, wk, wk+1)T

    该式表明,非线性判别函数已被变换成广义线性,因此只讨论线性判别函数不会失去一般性意义。

     线性判别函数

    (1)取fi(x)为一次函数

    例如xi,则变换后的模式x*=x,x*的维数k为x的维数n,此时广义线性化后的判别式仍为:d(x) = wTx + wn+1

    (2)fi(x)选用二次多项式函数

    1.x是二维的情况,即x =(x1 x2)T。若原判别函数为:

     

    要线性化为d(x*) = wTx*,须定义:

     

    此时,只要把模式空间x*中的分量定义成x的单值实函数,x*即变成线性可分。此时x*的维数(这里为6)大于x的维数(这里为2)。

    2.x是n维的情况,此时原判别函数设为:

    式中各项的组成应包含x的各个分量的二次项、一次项和常数项,其中平方项n个,二次项n(n-1)/2个,一次项n个,常数项一个

    其总项数为:n + n(n-1)/2 + n + 1 = (n+1)(n+2)/2 > n

    显然,对于d(x*) = wTx*,x*的维数大于x的维数,w分量的数目也与x*的维数相应。x*的各分量的一般化形式为:

     

    (3)fi(x)选用r次多项式函数, x是n维的情况

    1.定义描述

    【例如】

    2.总项数讨论

    【说明】

      d(x)的项数随r和n的增加会迅速增大,即使原来模式x的维数不高,若采用次数r较高的多项式来变换,也会使变换后的模式x*的维数很高,给分类带来很大困难。

       实际情况可只取r=2,或只选多项式的一部分,例如r=2时只取二次项,略去一次项,以减少x*的维数。

    (4) 广义线性判别实例

     

  • 相关阅读:
    Windows10打印mumu模拟器日志
    简析快速排序
    数字转换为W,K,结尾,并可指定长度(仅供参考,个人测试使用。)
    简析选择排序
    简析冒泡排序
    NX二次开发 工程图创建孔表功能
    NX二次开发 建模座标和工程图座标映射
    NXOpen绝对座标值转为WCS座标值
    NX二次开发 结合包容盒快速创建WCS
    NX二次开发 数值转NXString字符
  • 原文地址:https://www.cnblogs.com/chihaoyuIsnotHere/p/9721834.html
Copyright © 2011-2022 走看看