zoukankan      html  css  js  c++  java
  • 多分类问题与多类感知机算法

      本节延续线上节感知机算法,继续探讨多分类的线性感知机算法。

      多分类问题首先可以看成是二元分类的一个拓展,具体的有两种方法:1.one vs rest;2.one vs one。

      1.one vs rest

      对于K(k>=3),我们可以用K-1个分类器,组合实现多分类:

                        

    这种方法被一些知名的开源工具支持实现(如Libsvm),绿色部分属于决策结果重叠部分,C1与C2均将其纳入决策区域。

      2.one vs one

      这种方法在每一类之间训练一个分类器,对于K分类问题需要训练(k-1)*k/2个二元分类器:

                         

      

      

    这种方法,可能会产生决策模糊区域,如上图绿色标记的区域无法判断属于哪一类。

      另外一种方法是,直接训练K的分类器:

                    

    其决策区域如下:

          

      

      这种方法可以避免二元分类组合多元分类可能引入的决策重合与决策模糊问题,其缺点是,很多模型并不直接多分类模型(如SVM模型)。

      对于多类感知机算法,我们训练K个二元分类器方法,其损失函数变成:

                    

     对损失函数求导,得到梯度:

             

    得到梯度后,采用梯度下降算法求导感知机的参数即可,下一节将介绍C++版本的分类器的实现。

        

  • 相关阅读:
    JS字符串之字符方法
    JS数组之归并方法
    JS数组之迭代方法
    JS数组之位置方法
    JS数组之操作方法
    【Vue-入门笔记-3】
    【Vue-入门笔记-2】
    阿里靠什么武功秘籍渡过“双十一“的天量冲击
    CC++ --- 线性表-学生成绩管理系统
    TortoiseSVN 使用教程
  • 原文地址:https://www.cnblogs.com/wangbogong/p/3062470.html
Copyright © 2011-2022 走看看