我正在尝试实现一个多层感知器分类器,我有一个包含1000个样本的数据集。这个数据集有6个特征和5个可能的不同标签。
根据我对OneVsAll的理解,我们为每个标签创建一个二元分类器,并用训练数据来训练这些分类器。然而,我不明白如何将5个二元分类器的结果结合起来。如果数据中有噪声,并且有两个二元分类器预测测试样本为正样本,该怎么办?如果所有标签的二元分类器都预测某个样本为负样本,我们又该如何标记它呢?
回答:
你的输出层,每个单元应该返回一个值h
,其中0 < h < 1
。通常,在二元分类器中,你会选择一个阈值,比如0.5
,来决定你的输出是正结果还是负结果。在1vsAll的情况下,你选择输出单元中h
值最高的标签作为你的预测标签。