Multiklasa jeden vs-jeden
W tym artykule opisano sposób używania składnika Wieloklasy jeden i jeden w projektancie usługi Azure Machine Learning. Celem jest utworzenie modelu klasyfikacji, który może przewidywać wiele klas przy użyciu podejścia jeden i jeden .
Ten składnik jest przydatny do tworzenia modeli, które przewidują co najmniej trzy możliwe wyniki, gdy wynik zależy od zmiennych prognostycznych ciągłych lub kategorycznych. Ta metoda umożliwia również używanie metod klasyfikacji binarnej w przypadku problemów, które wymagają wielu klas wyjściowych.
Więcej informacji o modelach jeden i jeden
Niektóre algorytmy klasyfikacji umożliwiają użycie więcej niż dwóch klas zgodnie z projektem. Inne ograniczają możliwe wyniki do jednej z dwóch wartości (modelu binarnego lub dwuklasowego). Jednak nawet algorytmy klasyfikacji binarnej można dostosować do zadań klasyfikacji wieloklasowej za pomocą różnych strategii.
Ten składnik implementuje metodę one-versus-one, w której jest tworzony model binarny dla pary klas. W czasie przewidywania wybierana jest klasa, która otrzymała najwięcej głosów. Ponieważ wymaga dopasowania n_classes * (n_classes - 1) / 2
klasyfikatorów, ta metoda jest zwykle wolniejsza niż jedna w porównaniu do wszystkich ze względu na złożoność O(n_classes^2). Jednak ta metoda może być korzystna dla algorytmów, takich jak algorytmy jądra, które nie są dobrze skalowane za pomocą polecenia n_samples
. Jest to spowodowane tym, że każdy indywidualny problem uczenia obejmuje tylko niewielki podzbiór danych, podczas gdy w przypadku jednego i wszystkich pełny zestaw danych jest używany n_classes
czas.
W istocie składnik tworzy zespół poszczególnych modeli, a następnie scala wyniki, aby utworzyć pojedynczy model, który przewiduje wszystkie klasy. Każdy klasyfikator binarny może służyć jako podstawa dla modelu jeden-a-jeden.
Załóżmy na przykład, że skonfigurujesz model dwuklasowej maszyny wektorowej obsługi dwóch klas i podajmy, że jako dane wejściowe do składnika Multiclass one-vs-One. Składnik utworzy dwuklasowe modele maszyn wektorów nośnych dla wszystkich elementów członkowskich klasy wyjściowej. Następnie zastosuje metodę one-versus-one, aby połączyć wyniki dla wszystkich klas.
Składnik używa klasy OneVsOneClassifier sklearn i możesz dowiedzieć się więcej tutaj.
Jak skonfigurować klasyfikator wieloklasowy jeden vs-jeden
Ten składnik tworzy zespół modeli klasyfikacji binarnej w celu analizowania wielu klas. Aby użyć tego składnika, należy najpierw skonfigurować i wytrenować model klasyfikacji binarnej.
Model binarny łączy się ze składnikiem wieloklasowym jeden-vs-jeden. Następnie przeszkolisz zespół modeli przy użyciu trenowania modelu z oznaczonym zestawem danych trenowania.
Po połączeniu modeli jedna i jedna wieloklasa tworzy wiele modeli klasyfikacji binarnej, optymalizuje algorytm dla każdej klasy, a następnie scala modele. Składnik wykonuje te zadania, mimo że zestaw danych trenowania może mieć wiele wartości klasy.
Dodaj składnik Wieloklasowy jeden vs-jeden do potoku w projektancie. Ten składnik można znaleźć w obszarze Machine Learning — Inicjowanie w kategorii Klasyfikacja .
Klasyfikator multiklasy jeden vs-jeden nie ma własnych konfigurowalnych parametrów. Wszelkie dostosowania należy wykonać w modelu klasyfikacji binarnej, który jest dostarczany jako dane wejściowe.
Dodaj model klasyfikacji binarnej do potoku i skonfiguruj ten model. Możesz na przykład użyć dwuklasowej maszyny wektorowej obsługi lub dwuklasowego wzmocnionego drzewa decyzyjnego.
Dodaj składnik Train Model (Trenowanie modelu) do potoku. Połącz nieuszkodzony klasyfikator, który jest wynikiem wieloklasy one-vs-one.
W innych danych wejściowych train model połącz zestaw danych trenowania z etykietą training, który ma wiele wartości klas.
Prześlij potok.
Wyniki
Po zakończeniu trenowania można użyć modelu do tworzenia przewidywań wieloklasowych.
Alternatywnie można przekazać nietrenowany klasyfikator do modelu Cross-Validate w celu krzyżowego sprawdzania poprawności względem zestawu danych weryfikacji oznaczonego etykietą.
Następne kroki
Zobacz zestaw składników dostępnych dla usługi Azure Machine Learning.