One-vs-One Multiclass

Tento článek popisuje, jak používat komponentu One-vs-One Multiclass v návrháři služby Azure Machine Learning. Cílem je vytvořit klasifikační model, který dokáže predikovat více tříd pomocí přístupu 1:1 .

Tato komponenta je užitečná pro vytváření modelů, které predikují tři nebo více možných výsledků, když výsledek závisí na průběžných nebo kategorických proměnných vysvětlujících proměnných. Tato metoda také umožňuje použít binární metody klasifikace v případě problémů, které vyžadují více výstupních tříd.

Další informace o modelech 1 a 1

Některé klasifikační algoritmy záměrně umožňují použití více než dvou tříd. Jiné omezují možné výsledky na jednu ze dvou hodnot (binární model nebo model se dvěma třídami). Ale i binární klasifikační algoritmy lze přizpůsobit pro úlohy klasifikace s více třídami prostřednictvím různých strategií.

Tato komponenta implementuje metodu 1-versus-1, ve které se vytvoří binární model pro každý pár třídy. V době predikce je vybrána třída, která získala nejvíce hlasů. Vzhledem k tomu, že vyžaduje přizpůsobení n_classes * (n_classes - 1) / 2 klasifikátorů, je tato metoda obvykle pomalejší než jedna proti všem, a to kvůli složitosti O(n_classes^2). Tato metoda však může být výhodná pro algoritmy, jako jsou algoritmy jádra, které se neškupují dobře pomocí n_samples. Je to proto, že každý individuální problém učení zahrnuje pouze malou podmnožinu dat, zatímco u jednotlivých dat se úplná datová sada používá n_classes časy.

V podstatě komponenta vytvoří soubor jednotlivých modelů a potom sloučí výsledky, aby se vytvořil jeden model, který předpovídá všechny třídy. Jakýkoli binární klasifikátor lze použít jako základ pro model 1:1.

Řekněme například, že nakonfigurujete model podpůrných vektorů se dvěma třídami a poskytnete ho jako vstup do komponenty One-vs-One Multiclass. Komponenta vytvoří modely podpůrných vektorů se dvěma třídami pro všechny členy výstupní třídy. Pak by použil metodu 1 proti jedné ke sloučení výsledků pro všechny třídy.

Komponenta používá OneVsOneClassifier sklearn a další podrobnosti najdete tady.

Konfigurace klasifikátoru one-vs-one s více třídami

Tato komponenta vytvoří soubor binárních klasifikačních modelů pro analýzu více tříd. Pokud chcete tuto komponentu použít, musíte nejprve nakonfigurovat a vytrénovat binární klasifikační model.

Binární model připojíte ke komponentě One-vs-One Multiclass. Potom vytrénujete soubor modelů pomocí Trénování modelu s označenou trénovací datovou sadou.

Když zkombinujete modely, multitřída one-vs-one vytvoří několik binárních klasifikačních modelů, optimalizuje algoritmus pro každou třídu a pak modely sloučí. Komponenta tyto úlohy provede, i když trénovací datová sada může mít více hodnot třídy.

  1. Přidejte komponentu One-vs-One Multiclass do kanálu v návrháři. Tuto komponentu najdete v kategorii Klasifikace v části Machine Learning – Initialize (Strojové učení – Inicializace).

    Klasifikátor One-vs-One Multiclass nemá vlastní konfigurovatelné parametry. Jakákoli vlastní nastavení musí být provedena v binárním klasifikačním modelu, který je poskytován jako vstup.

  2. Přidejte do kanálu binární klasifikační model a nakonfigurujte ho. Můžete například použít dvoutřídní podpůrný vektorový stroj nebo dvoutřídní zesílený rozhodovací strom.

  3. Přidejte do svého kanálu komponentu Trénování modelu . Připojte nevytrénovaný klasifikátor, který je výstupem třídy One-vs-One Multiclass.

  4. Na druhém vstupu Trénování modelu připojte označenou trénovací datovou sadu, která má více hodnot třídy.

  5. Odešlete kanál.

Výsledky

Po dokončení trénování můžete model použít k předpovědím s více třídami.

Alternativně můžete předat netrénovaný klasifikátor křížovému ověření modelu pro křížové ověření s označenou ověřovací datovou sadou.

Další kroky

Podívejte se na sadu komponent dostupných pro Azure Machine Learning.