【问题标题】:Binary Classification vs. Multi Class Classification二元分类与多类分类
【发布时间】:2018-09-29 16:11:47
【问题描述】:

我有一个机器学习分类问题,有 3 个可能的类别(A 类、b 类和 C 类)。请让我知道哪种方法更好? - 将问题分为 2 个二元分类:首先确定它是 A 类还是“非 A”类。那么如果是Class 'Not A',再进行二分类,分类为Class B或Class C

【问题讨论】:

    标签: machine-learning classification


    【解决方案1】:

    您描述的是一种用于多类分类的方法。
    它被称为 One vs. All / One vs. Rest

    最好的方法是选择一个具有这两个选项的好的分类器框架,并使用交叉验证过程选择更好的一个。

    【讨论】:

      【解决方案2】:

      二元分类最终可以使用sigmoid函数(从0到1平滑)。这样我们就知道如何对两个值进行分类了。

      from keras.layers import Dense
      model.add(Dense(1, input_dim=8, kernel_initializer='uniform', activation='relu'))
      model.add(Dense(1, kernel_initializer='uniform', activation='relu'))
      model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid'))
      

      对于多类分类,您通常会在最后一层使用softmax,下一个示例中的神经元数量将是 10,表示有 10 个选择。

      from keras.layers import Dropout
      model.add(Dense(512,activation='relu',input_shape=(784,)))
      model.add(Dropout(0.2))
      model.add(Dense(10, activation='softmax'))
      

      但是,您也可以在最后一层使用softmax 和 2 个神经元进行二元分类

      model.add(Dense(2, activation='softmax'))
      

      希望这对分类器提供一点直觉。

      【讨论】:

        猜你喜欢
        • 2020-09-09
        • 2021-12-28
        • 2019-09-12
        • 2021-12-24
        • 1970-01-01
        • 2022-06-15
        • 2016-06-14
        • 2019-11-30
        • 1970-01-01
        相关资源
        最近更新 更多