一對一多類別
本文描述如何使用 Azure Machine Learning 設計工具中的一對一多類別元件。 其目標在於使用「一對一」方法,建立可預測多個類別的分類模型。
當結果取決於連續或類別預測量變數時,此模組可用來建立能夠預測三個或更多可能結果的模型。 此方法也可讓您使用二元分類方法解決需要多個輸出級別的問題。
深入了解一對一模型
某些分類演算法允許預設使用兩個以上的類別。 其他分類演算法會將可能的結果限制為兩個值的其中一個 (二元或雙類別模型)。 但即使是二元分類演算法,也可以透過各種策略來調整多類別分類工作。
此元件會實作一對一方法,其中每個類別配對都會建立一個二元模型。 預測時會選取收到最多投票的類別。 由於其需要符合 n_classes * (n_classes - 1) / 2
分類器,因此這個方法的速度通常會比一對全部慢,原因是其 O(n_classes^2) 複雜度所致。 不過,這種方法對於無法利用 n_samples
妥善調整的演算法 (例如核心演算法) 來說可能很有利。 原因是每個個別的學習問題都只牽涉到一小部分的資料,而在使用一對全部時,完整資料集會使用 n_classes
次。
本質上,元件會以個別模型來建立集團,然後再合併結果以建立可預測所有類別的單一模型。 任何二元分類器都可以用作一對一模型的基礎。
例如,假設您設定雙類別支援向量機器模型,並提供該模型作為一對一多類別元件的輸入。 元件會針對輸出類別的所有成員,建立二元支援向量機器模型。 然後,其會套用一對一方法來合併所有類別的結果。
此元件使用 sklearn 的 OneVsOneClassifier,您可以在此處深入了解詳細資料。
如何設定一對一多類別分類器
此元件會建立二元分類模型的集團來分析多個類別。 若要使用此元件,您必須首先設定和定型「二元分類」模型。
您可以將二元模型連線至一對一多類別元件。 然後,您可以使用定型模型搭配已標記的定型資料集來定型模型的集團。
在合併模型時,一對一多類別會建立多個二元分類模型、將每個類別的演算法最佳化,然後再合併模型。 雖然定型資料集可能會有多個類別值,但元件還是會執行這些工作。
在設計工具中,將一對一多類別元件新增至您的管線。 您可以在 [分類] 類別中的 [機器學習 - 初始化] 下找到此元件。
一對一多類別分類器沒有專屬的可設定參數。 任何自訂皆必須在提供做為輸入的二元分類模型中完成。
將定型模型元件新增至您的管線。 連線作為一對一多類別輸出的未定型分類器。
在定型模型的其他輸入上,連線具有多個類別值的已標記定型資料集。
提交管線。
結果
完成定型之後,您可以使用模型來進行多類別預測。
或者,您可將未定型的分類器傳遞至交叉驗證模型,根據已標記的驗證資料集進行交叉驗證。
後續步驟
請參閱 Azure Machine Learning 可用的元件集。