Dela via


Maskininlärningsuppgifter i ML.NET

En maskininlärningsuppgift är den typ av förutsägelse eller slutsatsdragning som görs, baserat på det problem eller den fråga som ställs och tillgängliga data. Klassificeringsaktiviteten tilldelar till exempel data till kategorier och klustringsaktiviteten grupperar data efter likhet.

Maskininlärningsuppgifter förlitar sig på mönster i data i stället för att uttryckligen programmeras.

Den här artikeln beskriver de olika maskininlärningsuppgifter som du kan välja mellan i ML.NET och några vanliga användningsfall.

När du har bestämt vilken uppgift som fungerar för ditt scenario måste du välja den bästa algoritmen för att träna din modell. De tillgängliga algoritmerna visas i avsnittet för varje uppgift.

Binär klassificering

En övervakad maskininlärningsuppgift som används för att förutsäga vilken av två klasser (kategorier) en instans av data tillhör. Indata för en klassificeringsalgoritm är en uppsättning märkta exempel, där varje etikett är ett heltal med antingen 0 eller 1. Utdata från en binär klassificeringsalgoritm är en klassificerare som du kan använda för att förutsäga klassen för nya omärkta instanser. Exempel på scenarier för binär klassificering är:

  • Förstå sentiment för Twitter-kommentarer som antingen "positiva" eller "negativa".
  • Diagnostisera om en patient har en viss sjukdom eller inte.
  • Fatta ett beslut om att markera ett e-postmeddelande som "skräppost" eller inte.
  • Avgöra om ett foto innehåller ett visst objekt eller inte, till exempel en hund eller frukt.

Mer information finns i artikeln Om binär klassificering på Wikipedia.

Utbildare för binär klassificering

Du kan träna en binär klassificeringsmodell med hjälp av följande algoritmer:

Indata och utdata för binär klassificering

För bästa resultat med binär klassificering ska träningsdata balanseras (det vill: lika många positiva och negativa träningsdata). Saknade värden ska hanteras före träning.

Kolumndata för indataetiketten måste vara Boolean. Kolumndata för indatafunktioner måste vara en vektor med fast storlek på Single.

Dessa utbildare matar ut följande kolumner:

Namn på utdatakolumn Kolumntyp beskrivning
Score Single Den råpoäng som beräknades av modellen
PredictedLabel Boolean Den förutsagda etiketten, baserat på tecknet på poängen. En negativ poäng mappar till false och en positiv poäng mappar till true.

Klassificering med flera klasser

En övervakad maskininlärningsuppgift som används för att förutsäga klassen (kategorin) för en datainstans. Indata för en klassificeringsalgoritm är en uppsättning märkta exempel. Varje etikett börjar normalt som text. Den körs sedan via TermTransform, som konverterar den till nyckeltypen (numerisk). Utdata från en klassificeringsalgoritm är en klassificerare som du kan använda för att förutsäga klassen för nya omärkta instanser. Exempel på klassificeringsscenarier med flera klasser är:

  • Kategoriserar flygningar som "tidig", "i tid" eller "sent".
  • Förstå filmrecensioner som "positiva", "neutrala" eller "negativa".
  • Kategorisera hotellrecensioner som "location", "price", "cleanliness" osv.

Mer information finns i artikeln om multiklassklassificering på Wikipedia.

Kommentar

En jämfört med alla uppgraderar en binär klassificeringsinlärare för att agera på datauppsättningar med flera klasser. Mer information om Wikipedia.

Klassificeringstränare för flera klasser

Du kan träna en klassificeringsmodell med flera klasser med hjälp av följande träningsalgoritmer:

Indata och utdata för multiklassklassificering

Kolumndata för indataetiketten måste vara nyckeltyp . Funktionskolumnen måste vara en vektor med fast storlek på Single.

Den här utbildaren matar ut följande:

Utdatanamn Typ Beskrivning
Score Vektor av Single Poängen för alla klasser. Högre värde innebär högre sannolikhet att falla i den associerade klassen. Om i-th-elementet har det största värdet skulle det förutsagda etikettindexet vara i. Observera att jag är nollbaserat index.
PredictedLabel nyckeltyp Den förutsagda etikettens index. Om dess värde är i är den faktiska etiketten den i:e kategorin i nyckelvärdesetiketttypen för indata.

Regression

En övervakad maskininlärningsuppgift som används för att förutsäga värdet för etiketten från en uppsättning relaterade funktioner. Etiketten kan vara av valfritt verkligt värde och kommer inte från en begränsad uppsättning värden som i klassificeringsuppgifter. Regressionsalgoritmer modellerar etikettens beroende av dess relaterade funktioner för att avgöra hur etiketten ändras när värdena för funktionerna varierar. Indata för en regressionsalgoritm är en uppsättning exempel med etiketter med kända värden. Utdata från en regressionsalgoritm är en funktion som du kan använda för att förutsäga etikettvärdet för alla nya indatafunktioner. Exempel på regressionsscenarier är:

  • Förutsäga huspriser baserat på husattribut, till exempel antal sovrum, plats eller storlek.
  • Förutsäga framtida aktiekurser baserat på historiska data och aktuella marknadstrender.
  • Förutsäga försäljning av en produkt baserat på reklambudgetar.

Regressionstränare

Du kan träna en regressionsmodell med hjälp av följande algoritmer:

Regressionsindata och utdata

Kolumndata för indataetiketten måste vara Single.

Tränarna för den här uppgiften matar ut följande:

Utdatanamn Typ Beskrivning
Score Single Den råpoäng som förutspåddes av modellen

Klustring

En oövervakad maskininlärningsuppgift som används för att gruppera instanser av data i kluster som innehåller liknande egenskaper. Klustring kan också användas för att identifiera relationer i en datauppsättning som du kanske inte logiskt härleder genom att bläddra eller enkelt observera. Indata och utdata för en klustringsalgoritm beror på vilken metod som valts. Du kan använda en distributions-, centroid-, anslutnings- eller densitetsbaserad metod. ML.NET stöder för närvarande en centroidbaserad metod med K-Means-klustring. Exempel på klustringsscenarier är:

  • Förstå segment av hotellgäster baserat på vanor och egenskaper hos hotellval.
  • Identifiera kundsegment och demografi för att skapa riktade reklamkampanjer.
  • Kategorisera inventering baserat på tillverkningsmått.

Klustringstränare

Du kan träna en klustermodell med hjälp av följande algoritm:

Klustring av indata och utdata

Indatafunktionerna måste vara Single. Inga etiketter behövs.

Den här utbildaren matar ut följande:

Utdatanamn Typ Beskrivning
Score vektor av Single Avståndet mellan den angivna datapunkten och alla klusters centroider
PredictedLabel nyckeltyp Det närmaste klustrets index som förutsägs av modellen.

Avvikelseidentifiering

Den här uppgiften skapar en modell för avvikelseidentifiering med hjälp av Principal Component Analysis (PCA). PCA-baserad avvikelseidentifiering hjälper dig att skapa en modell i scenarier där det är enkelt att hämta träningsdata från en klass, till exempel giltiga transaktioner, men svårt att få tillräckliga exempel på de riktade avvikelserna.

PcA är en etablerad teknik inom maskininlärning och används ofta i undersökande dataanalys eftersom det avslöjar datans inre struktur och förklarar variansen i data. PCA fungerar genom att analysera data som innehåller flera variabler. Den söker efter korrelationer mellan variablerna och avgör vilken kombination av värden som bäst samlar in skillnader i utfall. Dessa kombinerade funktionsvärden används för att skapa ett mer kompakt funktionsutrymme som kallas huvudkomponenter.

Avvikelseidentifiering omfattar många viktiga uppgifter inom maskininlärning:

  • Identifiera transaktioner som kan vara bedrägliga.
  • Inlärningsmönster som indikerar att ett nätverksintrång har inträffat.
  • Hitta onormala kluster av patienter.
  • Kontrollera värden som angetts i ett system.

Eftersom avvikelser är sällsynta händelser per definition kan det vara svårt att samla in ett representativt urval av data som ska användas för modellering. De algoritmer som ingår i den här kategorin har särskilt utformats för att hantera de viktigaste utmaningarna med att skapa och träna modeller med hjälp av obalanserade datamängder.

Avvikelseidentifieringstränare

Du kan träna en modell för avvikelseidentifiering med hjälp av följande algoritm:

Indata och utdata för avvikelseidentifiering

Indatafunktionerna måste vara en vektor med fast storlek på Single.

Den här utbildaren matar ut följande:

Utdatanamn Typ Beskrivning
Score Single Den icke-negativa, obundna poäng som beräknades av modellen för avvikelseidentifiering
PredictedLabel Boolean Ett sant/falskt värde som representerar om indata är en avvikelse (PredictedLabel=true) eller inte (PredictedLabel=false)

Rangordning

En rangordningsaktivitet konstruerar en rangordning från en uppsättning märkta exempel. Den här exempeluppsättningen består av instansgrupper som kan poängsätts med ett visst villkor. Rangordningsetiketterna är { 0, 1, 2, 3, 4 } för varje instans. Rankaren tränas att rangordna nya instansgrupper med okända poäng för varje instans. ML.NET rankningsinlärare är maskininlärningsrankningsbaserade .

Rankningsträningsalgoritmer

Du kan träna en rangordningsmodell med följande algoritmer:

Rangordna indata och utdata

Datatypen för indataetiketten måste vara nyckeltyp eller Single. Etikettens värde avgör relevansen, där högre värden indikerar högre relevans. Om etiketten är en nyckeltyp är nyckelindexet relevansvärdet, där det minsta indexet är minst relevant. Om etiketten är en Singleanger större värden högre relevans.

Funktionsdata måste vara en fast storleksvektor för Single och indataradsgruppens kolumn måste vara nyckeltyp .

Den här utbildaren matar ut följande:

Utdatanamn Typ Beskrivning
Score Single Den obundna poäng som beräknades av modellen för att fastställa förutsägelsen

Rekommendation

En rekommendationsuppgift gör det möjligt att skapa en lista över rekommenderade produkter eller tjänster. ML.NET använder Matrisfaktorisering (MF), en samarbetsfiltreringsalgoritm för rekommendationer när du har historiska produktklassificeringsdata i katalogen. Du har till exempel historiska filmklassificeringsdata för dina användare och vill rekommendera andra filmer som de sannolikt kommer att titta på härnäst.

Rekommendationsträningsalgoritmer

Du kan träna en rekommendationsmodell med följande algoritm:

Prognostisering

Prognostiseringsaktiviteten använder tidigare tidsseriedata för att göra förutsägelser om framtida beteende. Scenarier som gäller prognostisering är väderprognoser, förutsägelser om säsongsförsäljning och förutsägande underhåll.

Prognostiseringstränare

Du kan träna en prognosmodell med följande algoritm:

ForecastBySsa

Bildklassificering

En övervakad maskininlärningsuppgift som används för att förutsäga klassen (kategorin) för en bild. Indata är en uppsättning märkta exempel. Varje etikett börjar normalt som text. Den körs sedan via TermTransform, som konverterar den till nyckeltypen (numerisk). Utdata från bildklassificeringsalgoritmen är en klassificerare som du kan använda för att förutsäga klassen för nya bilder. Bildklassificeringsuppgiften är en typ av klassificering i flera klasser. Exempel på scenarier för bildklassificering är:

  • Fastställa rasen av en hund som en "Siberian Husky", "Golden Retriever", "Poodle", etc.
  • Avgöra om en tillverkningsprodukt är defekt eller inte.
  • Fastställa vilka typer av blommor som "Rose", "Solros" osv.

Bildklassificeringstränare

Du kan träna en bildklassificeringsmodell med hjälp av följande träningsalgoritmer:

Indata och utdata för bildklassificering

Kolumndata för indataetiketten måste vara nyckeltyp . Funktionskolumnen måste vara en vektor med variabel storlek på Byte.

Den här utbildaren matar ut följande kolumner:

Utdatanamn Typ Beskrivning
Score Single Poängen för alla klasser. Högre värde innebär högre sannolikhet att falla i den associerade klassen. Om elementet i-th har det största värdet skulle det förutsagda etikettindexet vara i.Observera att jag är nollbaserat index.
PredictedLabel Nyckeltyp Den förutsagda etikettens index. Om dess värde är i är den faktiska etiketten den i:e kategorin i nyckelvärdesetiketttypen för indata.

Objektidentifiering

En övervakad maskininlärningsuppgift som används för att förutsäga klassen (kategorin) för en bild, men som också ger en avgränsningsruta där kategorin finns i bilden. I stället för att klassificera ett enskilt objekt i en bild kan objektidentifiering identifiera flera objekt i en bild. Exempel på objektidentifiering är:

  • Identifiera bilar, skyltar eller personer på bilder av en väg.
  • Identifiera defekter på bilder av produkter.
  • Identifiera problemområden på röntgenbilder.

Objektidentifieringsmodellträning är för närvarande endast tillgänglig i Model Builder med hjälp av Azure Machine Learning.