二元分类与多元分类(Binary Classification vs. Multi Class Cl

2019-09-29 09:29发布

我有3个可能的类(A类,B类和C)机器学习分类问题。 请让我知道哪一个会是更好的办法? - 拆分成问题2二元分类:首先确定是否它是A类或“不是”。 然后,如果它是1类“不是A”,然后另一个二元分类到分类为B类或C类

Answer 1:

二元分类可在最终使用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'))

希望这会提供分类的小直觉。



Answer 2:

你描述的是用于多元分类的一种方法。
它被称为一个对所有的/ 一个与休息 。

最好的办法是选择了两个选项,一个好的分类框架,并选择使用交叉验证过程中最好的一个。



文章来源: Binary Classification vs. Multi Class Classification