One-vs-One Multiclass
本文說明如何在 Azure 機器學習 設計工具中使用 One-vs-One Multiclass 元件。 目標是使用一對一方法來建立可預測多個類別的分類模型。
當結果相依於連續或類別預測變數時,此元件可用於建立預測三個或多個可能結果的模型。 這個方法也可讓您針對需要多個輸出類別的問題使用二元分類方法。
更多關於一對一模型
某些分類演算法允許依設計使用兩個以上的類別。 其他方法會將可能的結果限製為兩個值的其中一個(二進位或兩個類別模型)。 但即使是二元分類演算法也可以透過各種策略來適應多類別分類工作。
此元件會實作一對一方法,其中會為每個類別組建立二進位模型。 在預測時間,會選取收到最多選票的類別。 由於此方法需要符合 n_classes * (n_classes - 1) / 2
分類器,因此由於其 O(n_classes^2) 複雜度,此方法通常比一對全都慢。 不過,這個方法對核心演算法等演演算法來說可能有利,這些演算法無法妥善調整 n_samples
。 這是因為每個個別學習問題只牽涉到一小部分的數據,而使用一個與全部,則會使用 n_classes
完整的數據集時間。
基本上,元件會建立個別模型合奏,然後合併結果,以建立可預測所有類別的單一模型。 任何二進位分類器都可以做為一對一模型的基礎。
例如,假設您已設定 雙類別支援向量機器 模型,並提供該模型做為 One-vs-One 多類別元件的輸入。 元件會為輸出類別的所有成員建立兩個類別的支援向量機器模型。 然後,它會套用一對一方法,以合併所有類別的結果。
此元件使用 sklearn 的 OneVsOneClassifier,您可以在這裡深入瞭解詳細數據。
如何設定 One-vs-One Multiclass 分類器
此元件會建立二元分類模型的合奏,以分析多個類別。 若要使用此元件,您必須先設定和定 型二元分類 模型。
您可以將二進位模型連接到 One-vs-One Multiclass 元件。 接著,您可以使用定型模型搭配加上標籤的定型數據集,來定型模型的合奏。
當您合併模型時,One-vs-One Multiclass 會建立多個二元分類模型、優化每個類別的演算法,然後合併模型。 元件會執行這些工作,即使定型數據集可能有多個類別值。
將 One-vs-One Multiclass 元件新增至設計工具中的管線。 您可以在 [分類] 類別的 [機器學習 - 初始化] 下找到此元件。
One-vs-One Multiclass 分類器本身沒有可設定的參數。 任何自定義都必須在提供做為輸入的二元分類模型中完成。
將 定型模型 元件新增至管線。 連接未定型分類器,這是 One-vs-One Multiclass 的輸出。
在訓練模型的另一個輸入上,連接具有多個類別值的已標記定型數據集。
提交管線。
結果
定型完成後,您可以使用模型進行多類別預測。
或者,您可以將未定型分類器傳遞至 交叉驗證模型 ,以針對標示的驗證數據集進行交叉驗證。