有哪些多分类学习方法,其拆分集成策略分别是什么?

  •  
    1. OvO

      • 拆分策略:将多个标签拆分两两成对的基评估器。
      • 集成策略:将新数据代入,计算在二分类的基评估器下,模型更倾向对哪个标签进行投票,汇总所有基评估器的结果,投票数量最多的为最终标签。
      • 基评估器数量:需要的基评估器数量为C_N^2=\frac{N(N-1)}{2}

    2. OvR

      • 拆分策略:将多个标签分为01标签,得到标签数量个基评估器。
      • 集成策略:将新数据带入基评估器,最终得到1的基评估器对应的标签为预测结果。如果有多个标签为1的基评估器,则根据基评估器本身的准确率来判断。
      • 基评估器数量:为标签数量N

    3. MvM

      • 拆分策略:将任意数量标签划分为1,其他划分为-1,最多标签数量为C_N^1+C_N^2+C_N^{int((N+1)/2)},得到数据在所有基评估器上的编码。
      • 集成策略:将新数据带入基评估器,得到新的编码,对比与之前标签编码的差异,选择差异最小的编码对应的标签为预测结果。
      • 如何计算编码差异大小:
        • 欧几里德距离:d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}

        • 街道距离:d(x,y)=\sum_{i=1}^n|x_i-y_i|

        • 闵可夫斯基距离:\sqrt[n]{\sum_{i=1}^n(|x_i-y_i|)^n}

          def dist(x,y,cat=2):
              """
              计算闵可夫斯基距离
          	cat:数组中数的数量,默认计算欧氏距离
              """
              d=np.abs(x-y)
              if x.ndim>1 or y.ndim>1:       # 多维数组情况下
                  res=np.power(np.power(d,cat).sum(1),1/cat)
              else:                          # 二维数据情况下
                  res=np.power(np.power(d,cat).sum(),1/cat)
              return res
          
          x=np.array([2,2])
          y=np.array([2,3])
          dist(x,y)
          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值