Zadania uczenia maszynowego w ML.NET
Zadanie uczenia maszynowego to typ przewidywania lub wnioskowania na podstawie problemu lub pytania, które jest zadawane, oraz dostępnych danych. Na przykład zadanie klasyfikacji przypisuje dane do kategorii, a dane grup zadań klastrowania według podobieństwa.
Zadania uczenia maszynowego polegają na wzorcach w danych, a nie na jawnym programowanym programie.
W tym artykule opisano różne zadania uczenia maszynowego, które można wybrać w ML.NET i niektóre typowe przypadki użycia.
Po podjęciu decyzji, które zadanie działa w danym scenariuszu, musisz wybrać najlepszy algorytm do wytrenowania modelu. Dostępne algorytmy są wymienione w sekcji dla każdego zadania.
Klasyfikacja binarna
Nadzorowane zadanie uczenia maszynowego używane do przewidywania, do której z dwóch klas (kategorii) należy wystąpienie danych. Dane wejściowe algorytmu klasyfikacji to zestaw z etykietami przykładów, w których każda etykieta jest liczbą całkowitą 0 lub 1. Dane wyjściowe algorytmu klasyfikacji binarnej to klasyfikator, którego można użyć do przewidywania klasy nowych nieoznakowanych wystąpień. Przykłady scenariuszy klasyfikacji binarnej obejmują:
- Zrozumienie tonacji komentarzy w serwisie Twitter jako "pozytywnych" lub "negatywnych".
- Diagnozowanie, czy pacjent ma pewną chorobę, czy nie.
- Podjęcie decyzji o oznaczeniu wiadomości e-mail jako "spamu" lub nie.
- Określenie, czy zdjęcie zawiera konkretny element, taki jak pies lub owoce.
Aby uzyskać więcej informacji, zobacz artykuł klasyfikacji binarnej w Wikipedii.
Trenerzy klasyfikacji binarnej
Model klasyfikacji binarnej można wytrenować przy użyciu następujących algorytmów:
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
Dane wejściowe i wyjściowe klasyfikacji binarnej
Aby uzyskać najlepsze wyniki z klasyfikacją binarną, dane treningowe powinny być zrównoważone (czyli równe liczby dodatnich i negatywnych danych treningowych). Brakujące wartości powinny być obsługiwane przed trenowaniem.
Dane kolumny etykiety wejściowej muszą mieć wartość Boolean. Dane kolumn funkcji wejściowych muszą być wektorem o stałym rozmiarze Single.
Te trenerzy wyjdą następujące kolumny:
Nazwa kolumny wyjściowej | Typ kolumny | opis |
---|---|---|
Score |
Single | Nieprzetworzona ocena obliczona przez model |
PredictedLabel |
Boolean | Przewidywana etykieta na podstawie znaku wyniku. Wynik ujemny jest mapowy na false wartość , a wynik dodatni jest mapowy na true . |
Klasyfikacja wieloklasowa
Nadzorowane zadanie uczenia maszynowego używane do przewidywania klasy (kategorii) wystąpienia danych. Dane wejściowe algorytmu klasyfikacji to zestaw przykładów oznaczonych etykietami. Każda etykieta zwykle zaczyna się jako tekst. Następnie jest uruchamiany za pomocą elementu TermTransform, który konwertuje go na typ Klucz (liczbowy). Dane wyjściowe algorytmu klasyfikacji to klasyfikator, którego można użyć do przewidywania klasy nowych nieoznakowanych wystąpień. Przykłady scenariuszy klasyfikacji wieloklasowej obejmują:
- Kategoryzowanie lotów jako "wcześnie", "na czas" lub "późno".
- Zrozumienie recenzji filmów jako "pozytywne", "neutralne" lub "negatywne".
- Kategoryzowanie recenzji hotelowych jako "lokalizacja", "cena", "czystość" itp.
Aby uzyskać więcej informacji, zobacz artykuł klasyfikacji wieloklasowej w Wikipedii.
Uwaga
Jeden z wszystkich uaktualnień wszystkich osób uczących się klasyfikacji binarnej do działania na wieloklasowych zestawach danych. Więcej informacji na temat Wikipedii.
Trenerzy klasyfikacji wieloklasowej
Model klasyfikacji wieloklasowej można wytrenować przy użyciu następujących algorytmów trenowania:
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Dane wejściowe i wyjściowe klasyfikacji wieloklasowej
Dane kolumny etykiety wejściowej muszą być typem klucza . Kolumna funkcji musi być stałym wektorem rozmiaru Single.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
Wektor of Single | Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, aby należeć do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i. Należy pamiętać, że i jest indeksem opartym na zera. |
PredictedLabel |
typ klucza | Indeks przewidywanej etykiety. Jeśli jej wartość to i, rzeczywista etykieta będzie kategorią i-th w typie etykiety wejściowej z wartością klucza. |
Regresja
Nadzorowane zadanie uczenia maszynowego używane do przewidywania wartości etykiety z zestawu powiązanych funkcji. Etykieta może być dowolną rzeczywistą wartością i nie pochodzi z skończonego zestawu wartości, jak w zadaniach klasyfikacji. Algorytmy regresji modelują zależność etykiety od powiązanych funkcji, aby określić, w jaki sposób etykieta zmieni się, gdy wartości cech są zróżnicowane. Dane wejściowe algorytmu regresji to zestaw przykładów z etykietami znanych wartości. Dane wyjściowe algorytmu regresji to funkcja, której można użyć do przewidywania wartości etykiety dla dowolnego nowego zestawu funkcji wejściowych. Przykłady scenariuszy regresji obejmują:
- Przewidywanie cen domów na podstawie atrybutów domu, takich jak liczba sypialni, lokalizacja lub rozmiar.
- Przewidywanie przyszłych cen akcji na podstawie danych historycznych i bieżących trendów rynkowych.
- Przewidywanie sprzedaży produktu na podstawie budżetów reklamowych.
Trenerzy regresji
Model regresji można wytrenować przy użyciu następujących algorytmów:
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Dane wejściowe i wyjściowe regresji
Dane kolumny etykiety wejściowej muszą mieć wartość Single.
Trenerzy tego zadania wyjdą następujące dane:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
Single | Nieprzetworzony wynik przewidywany przez model |
Klastrowanie
Nienadzorowane zadanie uczenia maszynowego używane do grupowania wystąpień danych w klastry, które zawierają podobne cechy. Klastrowanie może również służyć do identyfikowania relacji w zestawie danych, które mogą nie być logicznie uzyskiwane przez przeglądanie lub prostą obserwację. Dane wejściowe i wyjściowe algorytmu klastrowania zależą od wybranej metodologii. Można stosować podejście oparte na dystrybucji, centroidie, łączności lub gęstości. ML.NET obecnie obsługuje podejście oparte na centroid przy użyciu klastrowania metodą K-Średnich. Przykłady scenariuszy klastrowania obejmują:
- Zrozumienie segmentów gości hotelowych w oparciu o nawyki i cechy wyborów hotelowych.
- Identyfikowanie segmentów klientów i danych demograficznych w celu ułatwienia tworzenia ukierunkowanych kampanii reklamowych.
- Kategoryzowanie spisu na podstawie metryk produkcyjnych.
Trener klastrowania
Model klastrowania można wytrenować przy użyciu następującego algorytmu:
Klastrowanie danych wejściowych i wyjściowych
Dane funkcji wejściowych muszą mieć wartość Single. Nie są potrzebne żadne etykiety.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
wektor Single | Odległości danego punktu danych do centroid wszystkich klastrów |
PredictedLabel |
typ klucza | Indeks najbliższego klastra przewidywany przez model. |
Wykrywanie anomalii
To zadanie tworzy model wykrywania anomalii przy użyciu analizy głównych składników (PCA). Wykrywanie anomalii opartej na pcA ułatwia tworzenie modelu w scenariuszach, w których łatwe jest uzyskanie danych szkoleniowych z jednej klasy, takich jak prawidłowe transakcje, ale trudne do uzyskania wystarczających próbek docelowych anomalii.
Ustanowiona technika uczenia maszynowego pcA jest często używana w eksploracyjnej analizie danych, ponieważ ujawnia wewnętrzną strukturę danych i wyjaśnia wariancję danych. Analiza pcA działa przez analizowanie danych, które zawierają wiele zmiennych. Szuka korelacji między zmiennymi i określa kombinację wartości, które najlepiej przechwytują różnice w wynikach. Te połączone wartości funkcji służą do tworzenia bardziej kompaktowej przestrzeni funkcji nazywanej głównymi składnikami.
Wykrywanie anomalii obejmuje wiele ważnych zadań w uczeniu maszynowym:
- Identyfikowanie transakcji, które są potencjalnie fałszywe.
- Edukacja wzorców wskazujących, że doszło do włamania do sieci.
- Znajdowanie nietypowych klastrów pacjentów.
- Sprawdzanie wartości wprowadzonych w systemie.
Ponieważ anomalie są rzadkimi zdarzeniami według definicji, zbieranie reprezentatywnej próbki danych do użycia do modelowania może być trudne. Algorytmy uwzględnione w tej kategorii zostały specjalnie zaprojektowane, aby sprostać podstawowym wyzwaniom związanym z tworzeniem i trenowaniem modeli przy użyciu niezrównoważonych zestawów danych.
Trener wykrywania anomalii
Model wykrywania anomalii można wytrenować przy użyciu następującego algorytmu:
Dane wejściowe i wyjściowe wykrywania anomalii
Funkcje wejściowe muszą być wektorem o stałym rozmiarze Single.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
Single | Wynik nieujemny, niezwiązany, który został obliczony przez model wykrywania anomalii |
PredictedLabel |
Boolean | Wartość true/false reprezentująca, czy dane wejściowe są anomalią (PredictedLabel=true), czy też nie (PredictedLabel=false) |
Rankingi
Zadanie klasyfikacji konstruuje klasyfikator z zestawu oznaczonych przykładami. Ten przykładowy zestaw składa się z grup wystąpień, które można ocenić przy użyciu określonych kryteriów. Etykiety klasyfikacji to { 0, 1, 2, 3, 4 } dla każdego wystąpienia. Klasyfikator jest trenowany w celu klasyfikacji nowych grup wystąpień z nieznanymi wynikami dla każdego wystąpienia. ML.NET klasyfikacji uczniów są oparte na klasyfikacji maszynowej.
Klasyfikowanie algorytmów trenowania
Model klasyfikacji można wytrenować przy użyciu następujących algorytmów:
Klasyfikowanie danych wejściowych i wyjściowych
Typ danych etykiety wejściowej musi być typem klucza lub Single. Wartość etykiety określa istotność, gdzie wyższe wartości wskazują na większe znaczenie. Jeśli etykieta jest typem klucza, indeks klucza jest wartością istotności, gdzie najmniejszy indeks jest najmniej odpowiedni. Jeśli etykieta Singleto , większe wartości wskazują na większe znaczenie.
Dane funkcji muszą być wektorem o stałym rozmiarze, a kolumna grupy wierszy wejściowych Single musi być typem klucza .
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
Single | Niezwiązany wynik obliczony przez model w celu określenia przewidywania |
Zalecenie
Zadanie rekomendacji umożliwia utworzenie listy zalecanych produktów lub usług. ML.NET używa współczynnikyzacji macierzy (MF), algorytm filtrowania współpracy dla zaleceń, gdy masz historyczne dane klasyfikacji produktów w katalogu. Na przykład masz historyczne dane klasyfikacji filmów dla użytkowników i chcesz zalecić inne filmy, które prawdopodobnie będą oglądać dalej.
Algorytmy trenowania zaleceń
Model rekomendacji można wytrenować przy użyciu następującego algorytmu:
Prognozowanie
Zadanie prognozowania używa poprzednich danych szeregów czasowych, aby przewidywać przyszłe zachowanie. Scenariusze mające zastosowanie do prognozowania obejmują prognozowanie pogody, prognozy sprzedaży sezonowej i konserwację predykcyjną.
Trenerzy prognozowania
Model prognozowania można wytrenować przy użyciu następującego algorytmu:
Klasyfikacja obrazów
Nadzorowane zadanie uczenia maszynowego używane do przewidywania klasy (kategorii) obrazu. Dane wejściowe to zestaw z etykietami przykładów. Każda etykieta zwykle zaczyna się jako tekst. Następnie jest uruchamiany za pomocą elementu TermTransform, który konwertuje go na typ Klucz (liczbowy). Dane wyjściowe algorytmu klasyfikacji obrazów to klasyfikator, którego można użyć do przewidywania klasy nowych obrazów. Zadanie klasyfikacji obrazów jest typem klasyfikacji wieloklasowej. Przykłady scenariuszy klasyfikacji obrazów obejmują:
- Określanie rasy psa jako "Syberyjski Husky", "Golden Retriever", "Poodle", itp.
- Określenie, czy produkt produkcyjny jest wadliwy, czy nie.
- Określanie typów kwiatów jako "Róża", "Słonecznik" itp.
Trenerzy klasyfikacji obrazów
Model klasyfikacji obrazów można wytrenować przy użyciu następujących algorytmów trenowania:
Dane wejściowe i wyjściowe klasyfikacji obrazów
Dane kolumny etykiety wejściowej muszą być typem klucza . Kolumna funkcji musi być wektorem o zmiennym rozmiarze Byte.
Ten trener zwraca następujące kolumny:
Nazwa danych wyjściowych | Type | Opis |
---|---|---|
Score |
Single | Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, aby należeć do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i.Zwróć uwagę, że i jest indeksem zerowym. |
PredictedLabel |
Typ klucza | Indeks przewidywanej etykiety. Jeśli jej wartość to i, rzeczywista etykieta będzie kategorią i-th w typie etykiety wejściowej z wartością klucza. |
Wykrywanie obiektów
Nadzorowane zadanie uczenia maszynowego, które służy do przewidywania klasy (kategorii) obrazu, ale także udostępnia pole ograniczenia, w którym znajduje się ta kategoria na obrazie. Zamiast klasyfikować pojedynczy obiekt na obrazie, wykrywanie obiektów może wykrywać wiele obiektów na obrazie. Przykłady wykrywania obiektów to:
- Wykrywanie samochodów, znaków lub osób na zdjęciach drogi.
- Wykrywanie wad na obrazach produktów.
- Wykrywanie obszarów obaw na zdjęciach X-Ray.
Trenowanie modelu wykrywania obiektów jest obecnie dostępne tylko w narzędziu Model Builder przy użyciu usługi Azure Machine Edukacja.