Zadania uczenia maszynowego w ML.NET
Zadanie uczenia maszynowego to rodzaj przewidywania lub wnioskowania, które jest oparte na:
- Problem lub pytanie
- Dostępne dane
Na przykład zadanie klasyfikacji przypisuje dane do kategorii, a zadanie klastrowania grupuje dane 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 są dostępne 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.
Zadania klasyfikacji
Klasyfikacja binarna
Klasyfikacja binarna to zadanie
- Zrozumienie sentymentu komentarzy na Twitterze jako pozytywne lub negatywne.
- Diagnozowanie, czy pacjent ma pewną chorobę.
- Podejmowanie decyzji o oznaczeniu wiadomości e-mail jako spamu.
- Określenie, czy zdjęcie zawiera określony element, taki jak pies lub owoce.
Aby uzyskać więcej informacji, zobacz artykuł Klasyfikacja binarna 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ć przetworzone przed trenowaniem.
Dane kolumny etykiety wejściowej muszą być Boolean. Dane kolumn danych wejściowych muszą być wektorem o stałym rozmiarze Single.
Ci trenerzy generują 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 odpowiada false , a wynik dodatni odpowiada true . |
Klasyfikacja wieloklasowa
Klasyfikacja wieloklasowa to nadzorowane zadanie uczenia maszynowego używane do klasyfikowania wystąpienia danych w jednej z co najmniej trzech klas (kategorii). Dane wejściowe algorytmu klasyfikacji to zestaw przykładów oznaczonych etykietami. Każda etykieta zwykle zaczyna się jako tekst. Następnie przechodzi przez proces TermTransform, który konwertuje go na Klucz (typ 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" lub "czystość", na przykład.
Aby uzyskać więcej informacji, zobacz artykuł klasyfikacji wieloklasowej na Wikipedii.
Notatka
One-vs.-rest uaktualnia każdy klasyfikator binarny, by działać na zbiorach danych wieloklasowych.
Trenerzy klasyfikacji wieloklasowej
Model klasyfikacji wieloklasowej można wytrenować przy użyciu następujących algorytmów trenowania:
- TextClassificationTrainer
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Dane wejściowe i wyjściowe klasyfikacji wieloklasowej
Dane kolumny etykiety wejściowej muszą być kluczem typem. Kolumna funkcji musi być stałym wektorem rozmiaru Single.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Typ | Opis |
---|---|---|
Score |
Wektor 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 zerowym. |
PredictedLabel |
klucz | Indeks przewidywanej etykiety. Jeśli jej wartość wynosi i , rzeczywista etykieta to i . kategoria w etykietach wejściowych z typem wartości klucza. |
Klasyfikacja tekstu
Klasyfikacja tekstu jest podkategorią klasyfikacji wieloklasowej, która zajmuje się specjalnie nieprzetworzonym tekstem. Tekst stanowi interesujące wyzwania, ponieważ musisz uwzględnić kontekst i semantyka, w której występuje tekst. W związku z tym kodowanie znaczenia i kontekstu może być trudne.
modele uczenia głębokiego pojawiły się jako obiecująca technika rozwiązywania problemów z językiem naturalnym. W szczególności typ sieci neuronowej znany jako transformator stał się dominującym sposobem rozwiązywania problemów z językiem naturalnym, takich jak klasyfikacja tekstu, tłumaczenie, podsumowanie i odpowiadanie na pytania. Niektóre popularne architektury transformerów dla zadań języka naturalnego to:
- Reprezentacje kodera dwukierunkowego z transformatorów (BERT)
- Silnie zoptymalizowane podejście do przetrenowania BERT (RoBERTa)
- Generatywny wstępnie wytrenowany transformator (GPT)
Interfejs API klasyfikacji tekstu ML.NET jest obsługiwany przez TorchSharp. TorchSharp to biblioteka platformy .NET, która zapewnia dostęp do biblioteki obsługującej bibliotekę PyTorch. TorchSharp zawiera bloki konstrukcyjne trenowania sieci neuronowych od podstaw na platformie .NET. ML.NET upraszcza niektóre aspekty złożoności TorchSharp do poziomu scenariusza. Używa wstępnie wytrenowanej wersji modelu NAS-BERT i dostraja go przy użyciu Twoich danych.
Aby zapoznać się z przykładem klasyfikacji tekstu, zobacz Wprowadzenie do interfejsu API klasyfikacji tekstu.
Klasyfikacja obrazów
Klasyfikacja obrazów to nadzorowane uczenie maszynowe zadanie używane do przewidywania klasy (kategorii) obrazu. Dane wejściowe to zestaw przykładów z etykietami. Każda etykieta zwykle zaczyna się jako tekst. Następnie przechodzi przez proces TermTransform, który konwertuje go na Klucz (typ 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ć kluczem typem. Kolumna funkcji musi być wektorem o zmiennym rozmiarze Byte.
Ten trener zwraca następujące kolumny:
Nazwa danych wyjściowych | Typ | 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 . (i jest indeksem opartym na zera). |
PredictedLabel |
typ klucza | Indeks przewidywanej etykiety. Jeśli jej wartość wynosi i , rzeczywista etykieta to i . kategoria w etykietach wejściowych z typem wartości klucza. |
Regresja
Regresja to nadzorowane uczenie maszynowe zadanie 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.
- Znajdowanie powiązanych artykułów w publikacji (podobieństwo zdań).
Trenerzy regresji
Model regresji można wytrenować przy użyciu następujących algorytmów:
- SentenceSimilarityTrainer
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Dane wejściowe i wyjściowe regresji
Dane kolumny etykiety wejściowej muszą być Single.
Systemy szkoleniowe dla tego zadania wygenerują następujące dane:
Nazwa danych wyjściowych | Typ | Opis |
---|---|---|
Score |
Single | Nieprzetworzony wynik przewidywany przez model |
Klastrowanie
Klastrowanie to nienadzorowane zadanie uczenia maszynowego używane do grupowania wystąpień danych w klastry zawierające 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 centroidu, stosując klastrowanie 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ą być Single. Nie są potrzebne żadne etykiety.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Typ | Opis |
---|---|---|
Score |
Wektor Single | Odległość danego punktu danych do centroid wszystkich klastrów. |
PredictedLabel |
klucz typ | Indeks najbliższego klastra przewidywany przez model. |
Wykrywanie anomalii
Zadanie wykrywania anomalii tworzy model wykrywania anomalii przy użyciu analizy głównych składników (PCA). Wykrywanie anomalii oparte na PCA pomaga zbudować model w scenariuszach, w których łatwo jest uzyskać dane treningowe z jednej klasy, na przykład prawidłowe transakcje, ale trudno jest uzyskać wystarczającą liczbę próbek anomalii, na które się skupiamy.
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. PCA polega na analizie 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.
- Wzorce uczenia wskazujące, ż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 | Typ | Opis |
---|---|---|
Score |
Single | Nieujemny, niezwiązany wynik obliczony przez model wykrywania anomalii. |
PredictedLabel |
Boolean |
true , jeśli dane wejściowe są anomalią lub false , jeśli tak nie jest. |
Ranking
Zadanie rankingowe konstruuje ranker z zestawu oznaczonych przykładów. 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. Ranker jest trenowany do szeregowania nowych grup instancji z nieznanymi wynikami dla każdej instancji. ML.NET algorytmy uczące się do rankingów to oparte na rankingu uczeniu maszynowym.
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ć klucz typ lub Single. Wartość etykiety określa istotność, gdzie wyższe wartości wskazują na większe znaczenie. Jeśli etykieta jest kluczem typu, to indeks klucza jest wartością istotności, gdzie najmniejszy indeks jest najmniej istotny. Jeśli etykieta jest Single, większe wartości wskazują na większe znaczenie.
Dane funkcji muszą być stałym wektorem rozmiaru Single, a kolumna grupy wierszy wejściowych musi być typu klucza.
Ten trener zwraca następujące dane:
Nazwa danych wyjściowych | Typ | 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
Algorytmy szkoleniowe systemów rekomendacji
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:
Wykrywanie obiektów
Wykrywanie obiektów to zadanie nadzorowanego uczenia maszynowego, które jest używane do przewidywania klasy (kategorii) obrazu, ale także określa ramkę ograniczającą, gdzie ta kategoria znajduje się 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 programie Model Builder przy użyciu usługi Azure Machine Learning.