Úlohy strojového učení v ML.NET
úlohy strojového učení jsou typem predikce nebo odvození, které jsou založené na obou:
- Problém nebo otázka
- Dostupná data
Například úloha klasifikace přiřazuje data kategoriím a data skupin úloh clusteringu podle podobnosti.
Úlohy strojového učení spoléhají na vzory v datech, nikoli explicitně naprogramované.
Tento článek popisuje různé úlohy strojového učení, které jsou k dispozici v ML.NET a některé běžné případy použití.
Jakmile se rozhodnete, který úkol ve vašem scénáři funguje, musíte zvolit nejlepší algoritmus pro trénování modelu. Dostupné algoritmy jsou uvedeny v části pro každý úkol.
Úkoly klasifikace
Binární klasifikace
Binární klasifikace je úloha strojového učení s učitelem, která se používá k předpovědi, do které z přesně dvou tříd (kategorií) instance dat patří. Vstup klasifikačního algoritmu je sada označených příkladů, kde každý popisek je celé číslo 0 nebo 1. Výstupem binárního klasifikačního algoritmu je klasifikátor, který můžete použít k predikci třídy nových neoznačené instance. Mezi příklady scénářů binární klasifikace patří:
- Pochopení sentimentu komentářů na Twitteru jako pozitivní nebo negativní.
- Diagnostika, zda pacient má určité onemocnění.
- Rozhodnutí o označení e-mailu jako spamu
- Určení, zda fotka obsahuje konkrétní položku, jako je pes nebo ovoce.
Další informace najdete v článku Binární klasifikace na Wikipedii.
Binární klasifikační trenéři
Binární klasifikační model můžete trénovat pomocí následujících algoritmů:
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
Binární klasifikační vstupy a výstupy
Pro zajištění nejlepších výsledků s binární klasifikací by měla být trénovací data vyvážená (to znamená rovná se číslům kladných a negativních trénovacích dat). Před trénováním by se měly zpracovat chybějící hodnoty.
Vstupní data sloupce štítku musí být Boolean. Data ve sloupci vstupních prvků musí být vektor o pevné velikosti Single.
Tyto modely generují následující sloupce:
Název výstupního sloupce | Typ sloupce | Popis |
---|---|---|
Score |
Single | Nezpracované skóre, které model vypočítal. |
PredictedLabel |
Boolean | Předpovězený popisek, který je založen na znaménku skóre. Záporné skóre se mapuje na false a pozitivní skóre se mapuje na true . |
Klasifikace s více třídami
Vícetřídová klasifikace je úlohou strojového učení pod dohledem, která slouží ke klasifikaci instance dat do jedné ze tří nebo více tříd (kategorií). Vstup klasifikačního algoritmu je sada označených příkladů. Každý popisek obvykle začíná jako text. Poté je spuštěn prostřednictvím TermTransform, který jej převede na typ Klíč (číselný). Výstup klasifikačního algoritmu je klasifikátor, který můžete použít k predikci třídy nových neoznačených instancí. Mezi příklady scénářů klasifikace s více třídami patří:
- Kategorizace letů jako "předčasné", "včasné" nebo "opožděné".
- Vysvětlení recenzí filmů jako "pozitivních", "neutrálních" nebo "negativních".
- Kategorizace hodnocení hotelů jako "poloha", "cena" nebo "čistota", například.
Další informace najdete v článku Multitřídní klasifikace na Wikipedii.
Poznámka
One-vs.-rest převádí každý binární klasifikační algoritmus tak, aby fungoval s datovými sadami s více třídami.
Vícetřídní klasifikační trenéři
Klasifikační model s více třídami můžete trénovat pomocí následujících trénovacích algoritmů:
- TextClassificationTrainer
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Vstupy a výstupy klasifikace s více třídami
Vstupní data sloupce popisku musí být klíčového typu. Sloupec funkce musí být vektorem pevné velikosti Single.
Tento trenér vypíše následující:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Vektor Single | Skóre všech tříd. Vyšší hodnota znamená, že větší pravděpodobnost spadá do přidružené třídy. Pokud má prvek i největší hodnotu, pak by index předpovězeného popisku byl i . Všimněte si, že i je index založený na nule. |
PredictedLabel |
klíč | Index predikovaného popisku. Pokud je její hodnota i , skutečný popisek by byl i . kategorií v typu vstupního popisku s klíčovou hodnotou. |
Klasifikace textu
Klasifikace textu je podkategorie vícetřídové klasifikace, která se zabývá konkrétně nezpracovaným textem. Text představuje zajímavé výzvy, protože musíte zohlednit kontext a sémantiku, ve kterých se text vyskytuje. Proto může být obtížné kódovat význam a kontext.
modely hlubokého učení se objevily jako slibná technika k řešení problémů přirozeného jazyka. Konkrétně se typ neurální sítě známé jako transformátor stal převládajícím způsobem řešení problémů přirozeného jazyka, jako je klasifikace textu, překlad, shrnutí a odpovědi na otázky. Mezi oblíbené architektury transformátorů pro úlohy přirozeného jazyka patří:
- Obousměrné reprezentace kodéru z transformátorů (BERT)
- Robustně optimalizovaný přístup k předtrénování BERT (RoBERTa)
- Generativní předtrénovaný transformátor (GPT)
Rozhraní API pro klasifikaci textu ML.NET využívá TorchSharp. TorchSharp je knihovna .NET, která poskytuje přístup ke knihovně, která využívá PyTorch. TorchSharp obsahuje stavební bloky pro trénování neurálních sítí úplně od začátku v .NET. ML.NET abstrahuje některé složitosti TorchSharp na úroveň scénáře. Používá předem natrénovanou verzi MODELU NAS-BERT a doladí je s vašimi daty.
Příklad klasifikace textu najdete v tématu Začínáme s rozhraním API pro klasifikaci textu.
Klasifikace obrázků
Klasifikace obrázků je úlohou strojového učení pod dohledem, která se používá k predikci třídy (kategorie) obrázku. Vstup je sada označených příkladů. Každý popisek obvykle začíná jako text. Poté je spuštěn prostřednictvím TermTransform, který jej převede na typ Klíč (číselný). Výstupem algoritmu klasifikace obrázků je klasifikátor, který můžete použít k predikci třídy nových obrázků. Úloha klasifikace obrázků je typ klasifikace s více třídami. Mezi příklady scénářů klasifikace obrázků patří:
- Určení plemena psa jako "Sibiřský husky", "Zlatý retrívr", "Pudl" atd.
- Určení, zda je výrobní výrobek vadný nebo ne.
- Určení typů květin jako "Růže", "Slunečnice" atd.
Trenéři klasifikace obrázků
Model klasifikace obrázků můžete trénovat pomocí následujících trénovacích algoritmů:
Vstupy a výstupy klasifikace obrázků
Vstupní data sloupce popisku musí být klíčového typu. Sloupec s funkcemi musí být vektorem s proměnlivou velikostí Byte.
Tento trenér vypíše následující sloupce:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Single | Skóre všech tříd. Vyšší hodnota znamená, že větší pravděpodobnost spadá do přidružené třídy. Pokud má prvek i největší hodnotu, pak by index předpovězeného popisku byl i . (i je index založený na nule.) |
PredictedLabel |
Klíč typ | Index predikovaného popisku. Pokud je její hodnota i , skutečný popisek by byl i . kategorií v typu vstupního popisku s klíčovou hodnotou. |
Regrese
Regrese je úlohou strojového učení pod dohledem, která slouží k predikci hodnoty popisku ze sady souvisejících funkcí. Popisek může mít libovolnou reálnou hodnotu a nepochází z konečné množiny hodnot jako v klasifikačních úlohách. Regresní algoritmy modelují závislost popisku na souvisejících funkcích, aby určily, jak se popisek změní, protože se liší hodnoty vlastností. Vstup regresního algoritmu je sada příkladů s popisky známých hodnot. Výstupem regresního algoritmu je funkce, kterou můžete použít k predikci hodnoty popisku pro libovolnou novou sadu vstupních funkcí. Mezi příklady regresních scénářů patří:
- Predikce cen domu na základě atributů domu, jako je počet ložnic, umístění nebo velikost.
- Předpověď budoucích cen akcií na základě historických dat a aktuálních trendů trhu
- Predikce prodeje produktu na základě reklamních rozpočtů
- Hledání souvisejících článků v publikaci (podobnost věty)
Regresní trenéři
Regresní model můžete trénovat pomocí následujících algoritmů:
- SentenceSimilarityTrainer
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Regresní vstupy a výstupy
Vstupní data sloupce štítku musí být Single.
Trenéři tohoto úkolu produkují následující:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Single | Nezpracované skóre, které model predikoval |
Shlukování
Clustering je bez dohledu úlohy, která se používá k seskupení instancí dat do clusterů, které obsahují podobné charakteristiky. Clustering lze použít také k identifikaci relací v datové sadě, které nemusí být logicky odvozeny procházením nebo jednoduchým pozorováním. Vstupy a výstupy algoritmu clusteringu závisí na zvolené metodologii. Můžete použít přístup založený na distribuci, centroidu, připojení nebo hustotě. ML.NET aktuálně podporuje přístup založený na centroidu pomocí clusteringu K-Means. Mezi příklady scénářů clusteringu patří:
- Vysvětlení segmentů hotelových hostů na základě zvyků a charakteristik hotelových možností
- Identifikace zákaznických segmentů a demografických údajů, které pomáhají vytvářet cílené reklamní kampaně.
- Kategorizace inventáře na základě výrobních metrik
Trenér pro shlukování
Model clusteringu můžete vytrénovat pomocí následujícího algoritmu:
Vstupy a výstupy clusteringu
Vstupní data funkcí musí být Single. Nejsou potřeba žádné popisky.
Tento trenér vypíše následující:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Vektor Single | Vzdálenosti daného datového bodu ke všem centroidům shluků. |
PredictedLabel |
klíč typ | Nejbližší index clusteru predikovaný modelem. |
Detekce anomálií
Úloha detekce anomálií vytvoří model detekce anomálií pomocí analýzy hlavních komponent (PCA). Detekce anomálií založená na PCA vám pomůže vytvořit model ve scénářích, kde je snadné získat trénovací data z jedné třídy, jako jsou platné transakce, ale obtížné získat dostatečné vzorky cílových anomálií.
Zavedená technika strojového učení se často používá při průzkumné analýze dat, protože odhalí vnitřní strukturu dat a vysvětluje rozptyl dat. PcA funguje analýzou dat, která obsahují více proměnných. Hledá korelace mezi proměnnými a určuje kombinaci hodnot, které nejlépe zachycují rozdíly ve výsledcích. Tyto kombinované hodnoty funkcí slouží k vytvoření kompaktnějšího prostoru funkcí označovaného jako hlavní komponenty.
Detekce anomálií zahrnuje mnoho důležitých úloh ve strojovém učení:
- Identifikace transakcí, které jsou potenciálně podvodné.
- Vzory učení, které značí, že došlo k narušení sítě.
- Nalezení abnormálních shluků pacientů.
- Kontrola hodnot zadaných do systému
Vzhledem k tomu, že anomálie jsou vzácné události podle definice, může být obtížné shromáždit reprezentativní vzorek dat pro modelování. Algoritmy zahrnuté v této kategorii byly speciálně navrženy tak, aby řešily hlavní výzvy při vytváření a trénování modelů pomocí nevyrovnaných datových sad.
Trenér detekce anomálií
Model detekce anomálií můžete trénovat pomocí následujícího algoritmu:
Vstupy a výstupy detekce anomálií
Vstupními funkcemi musí být vektor s pevnou velikostí Single.
Tento trenér vypíše následující:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Single | Nezáporné nevázané skóre vypočítané modelem detekce anomálií. |
PredictedLabel |
Boolean | Pokud je vstup anomálií, pak true , nebo pokud není, pak false . |
Hodnocení
Úkol řazení vytvoří seřazovací algoritmus ze sady označených příkladů. Tato ukázková sada se skládá ze skupin instancí, které lze hodnotit pomocí daných kritérií. Popisky hodnocení jsou { 0, 1, 2, 3, 4 } pro každý případ. Ranker se vytrénuje tak, aby seřadil nové skupiny instancí s neznámými skóre pro každou instanci. ML.NET rankovací učící se jsou založení na strojově naučeném hodnocení .
Hodnocení trénovacích algoritmů
Model řazení můžete trénovat pomocí následujících algoritmů:
Řazení vstupů a výstupů
Datový typ vstupního popisku musí být klíč typu nebo Single. Hodnota popisku určuje relevanci, kde vyšší hodnoty označují vyšší význam. Pokud je popiskem klíč typ, pak je index klíče hodnotou relevance, kde nejmenší index je nejméně relevantní. Pokud je popisek Single, větší hodnoty označují větší význam.
Data funkce musí být vektorem pevné velikosti Single a vstupní sloupec skupiny řádků musí být typu klíče.
Tento trenér vypíše následující:
Název výstupu | Typ | Popis |
---|---|---|
Score |
Single | Nevázané skóre vypočítané modelem k určení předpovědi. |
Doporučení
Úloha doporučení umožňuje vytvořit seznam doporučených produktů nebo služeb. ML.NET používá
Trénovací algoritmy pro doporučování
Model doporučení můžete vytrénovat pomocí následujícího algoritmu:
Prognostika
Úloha prognózování používá data minulých časových řad k předpovědím o budoucím chování. Mezi scénáře použitelné pro prognózování patří předpověď počasí, předpovědi sezónních prodejů a prediktivní údržba.
Trénink prognózování
Model prognózování můžete vytrénovat pomocí následujícího algoritmu:
Rozpoznávání objektů
Rozpoznávání objektů je úlohou strojového učení pod dohledem, která se používá k predikci třídy (kategorie) obrázku, ale také poskytuje ohraničující rámeček, do kterého se tato kategorie nachází v obrázku. Místo klasifikace jednoho objektu na obrázku dokáže detekce objektů v obrázku rozpoznat více objektů. Mezi příklady detekce objektů patří:
- Detekce aut, známek nebo lidí na obrázcích silnice
- Detekce vad na obrázcích výrobků.
- Detekce oblastí zájmu na rentgenových obrázcích
Trénování modelu rozpoznávání objektů je v současné době k dispozici pouze v Model Builderu pomocí služby Azure Machine Learning.