我有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