Compartir a través de

“一对多”多类分类

本文介绍如何在 Azure 机器学习设计器中使用“一对多多类”组件。 目的是创建一个分类模型,该模型可以使用“一对多”方法对多类分类进行预测 。

此组件可用于创建能够预测三个或多个可能结果的模型,具体结果取决于连续或分类预测器变量。 使用此方法还能对需要多个输出类的问题使用二元分类方法。

有关一对多模型的详细信息

某些分类算法允许在设计中使用两个以上的类。 其他分类算法会将可能的结果限制为两个值中的一个(二进制或双类模型)。 但即使是二元分类算法也可以通过各种策略应用于多类分类任务。

此组件实现一对多方法,在此方法中,将为多个输出类中的每一个类创建二元模型。 此组件会根据单个类的每个这样的二元模型的补数(模型中的所有其他类)来评估每个模型,就像它是二元分类问题一样。 除了它的计算效率(只需要 n_classes 分类器)外,这种方法的一个优点是它的可解释性。 由于每个类仅由一个分类器表示,因此可以通过检查其对应的分类器来获取该类的知识。 这是多类分类最常用的策略,也是一个合理的默认选择。 然后,组件通过运行这些二元分类器并选择置信度分数最高的预测来执行预测。

从本质上讲,此组件将创建单个模型的系综,然后合并结果,以创建用于预测所有类的单个模型。 任何二元分类器均可用作一对多模型的基础。

例如,假设你配置一个双类支持向量机模型,并将其作为输入提供给“一对多多类”组件。 组件会为输出类的所有成员创建双类支持向量机模型。 然后它将应用一对多方法来合并所有类的结果。

组件使用 sklearn 的 OneVsRestClassifier,你可以在此处了解更多详细信息。

如何配置“一对多”多类分类分类器

此组件创建二元分类模型的系综来分析多个类。 若要使用此组件,需要先配置并训练二元分类模型。

将二进制模型连接到“一对多多类”组件。 然后通过使用带标记的训练数据集的训练模型来训练这组模型。

组合模型时,“一对多”多类分类会创建多个二元分类模型,为每个类优化算法,然后合并这些模型。 即使训练数据集可能有多个类值,组件也执行这些任务。

  1. 将“一对多多类”组件添加到设计器中的管道。 可以在“机器学习 - 初始化”下的“分类”类别中找到此组件。

    “一对多”多类分类分类器没有自己的可配置参数。 任何自定义操作都必须在作为输入提供的二元分类模型中完成。

  2. 将二元分类模型添加到管道,并配置该模型。 例如,可以使用双类支持向量机双类提升决策树

  3. 训练模型组件添加到管道。 连接作为“一对多”多类分类的输出的未训练分类器。

  4. 训练模型的其他输入上,连接包含多个类值的带标记的训练数据集。

  5. 提交管道。

结果

训练完成后,可以使用模型进行多类分类预测。

另外,还可以将未训练的分类器传递给交叉验证模型,以针对带标记的验证数据集进行交叉验证。

后续步骤

请参阅 Azure 机器学习可用的组件集