Data omvandling – inlärning med antal

I den här artikeln beskrivs modulerna i Azure Machine Learning Studio (klassisk) som stöder funktionalisering.

Anteckning

Gäller för: Machine Learning Studio (klassisk)

Det här innehållet gäller endast Studio (klassisk). Liknande dra-och släpp moduler har lagts till i Azure Machine Learning designer. Mer information i den här artikeln är att jämföra de två versionerna.

Inlärning med antal är ett effektivt sätt att skapa en kompakt uppsättning funktioner för data uppsättningar som baseras på antalet värden. Du kan använda modulerna i den här kategorin för att skapa en uppsättning med antal och funktioner. Senare kan du uppdatera antalet och funktionerna för att dra nytta av nya data eller slå samman två uppsättningar med räknar data.

Om Count-baserade funktionalisering

Den grundläggande idén med Count-baserade funktionalisering är att genom att beräkna antalet kan du snabbt och enkelt få en översikt över vilka kolumner som innehåller den viktigaste informationen. Modulen räknar antalet gånger som ett värde visas och ger sedan den informationen som en funktion för indata till en modell.

Tänk dig att du validerar en kredit korts transaktion. En viktig del av informationen är var den här transaktionen kom från. En av de vanligaste kodningarna för transaktions ursprunget är post numret. Det kan dock finnas upp till 40 000 post nummer, post nummer och geografiska koder som konto för. Har din modell kapacitet att lära sig 40 000 fler parametrar? Om du ger den kapaciteten har du tillräckligt med tränings data för att förhindra att de översätts?

Om du har bra data, med massor av prover, kan sådan detaljerad lokal kornig het vara kraftfull. Men om du bara har ett exempel på en bedräglig transaktion, innebär det att alla transaktioner från den platsen är skadade, eller att du inte har tillräckligt med data, från en liten plats?

En lösning är att lära sig med antal. I stället för att introducera 40 000 fler funktioner kan du se antalet och proportionerna för bedrägerier för varje post nummer. Genom att använda dessa räknare som funktioner får du information om styrkan i beviset för varje värde. Genom att koda den relevanta statistiken för antalet kan eleven dessutom använda statistiken för att bestämma när du ska ändra deras metod och i stället använda andra funktioner för att hämta informationen.

Count-baserad inlärning är attraktivt av många skäl. Med Count-baserad inlärning har du färre funktioner, vilket kräver färre parametrar. Färre parametrar gör det lättare att lära sig, snabbare förutsägelser, mindre förutsägare och mindre möjligt att overfit.

Så här skapas de räknade funktionerna

Ett grundläggande exempel kan hjälpa dig att visa hur de räknade funktionerna skapas och tillämpas. Anta att du har följande tabell som detta, med etiketter och indata. Varje ärende (eller rad eller exempel) har en uppsättning värden i kolumner. I det här exemplet är värdena A och B.

Etikett kolumn Indatavärde
0 A
0 A
1 A
0 B
1 B
1 B
1 B

Det här är de steg du utför för att skapa räknade funktioner:

  1. För en bestämd uppsättning värden hittar du alla andra fall i den data uppsättningen som har samma värde. I det här fallet finns det tre instanser av A och fyra instanser av B.
  2. Räkna klass medlemskapet för varje värde som en funktion i sig själv. I det här fallet får du en liten matris: det finns två fall där = 0; ett fall där A = 1; ett fall där B = 0; och tre fall där B = 1.
  3. Baserat på den här matrisen får du en mängd olika Count-baserade funktioner. Detta inkluderar en beräkning av log-strider-förhållandet och antalet för varje målklass. Tabellen i nästa avsnitt visar data.

Exempel tabell med Count-baserade funktioner

Etikett 0_0_Class000_Count 0_0_Class001_Count 0_0_Class000_LogOdds 0_0_IsBackoff
0 2 1 0,510826 0
0 2 1 0,510826 0
1 2 1 0,510826 0
0 1 3 – 0,8473 0
1 1 3 – 0,8473 0
1 1 3 – 0,8473 0
1 1 3 – 0,8473 0

Exempel

I använd Azure Machine Learning för att bygga genomklickning förutsägelse modellerger Microsoft Machine Learning-teamet en detaljerad genom gång av hur man använder antal i Machine Learning. Artikeln jämför effektiviteten med den räknade modellen med andra metoder.

Tekniska anteckningar

Det här avsnittet innehåller implementerings information, tips och svar på vanliga frågor.

Så här beräknas värdet för logg förlust

Värdet för logg förlust är inte det enkla logg-strider. I det här fallet används den tidigare distributionen för att jämna ut logg strider beräkningen.

Anta att du har en data uppsättning som används för binär klassificering. I den här data uppsättningen är den tidigare frekvensen för klass 0 p_0 , och den tidigare frekvensen för klass 1 är p_1 = 1 – p_0 . För en speciell övnings exempel funktion är antalet för klass 0 x_0 , och antalet för klass 1 är x_1 .

Under dessa antaganden beräknas logg-strider som LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1) , där c är den tidigare koefficienten som kan ställas in av användaren. Funktionen log använder den naturliga basen.

För varje klass kan du med andra ord i :

Log_odds[i] = Log( (count[i] + prior_coefficient * prior_frequency[i]) / (sum_of_counts - count[i]) + prior_coefficient \* (1 - prior_frequency[i]))

Om den tidigare koefficienten är positiv kan logg-strider skilja sig från Log(count[i] / (sum_of_counts – count[i])) .

Varför logg-strider inte beräknas för vissa objekt

Som standard samlas alla objekt med ett antal som är mindre än 10 in i en enda Bucket som kallas "SOP bin". Du kan ändra det här värdet med hjälp av tröskelvärdet för skräp lager plats i modulen ändra antal tabell parametrar .

Lista över moduler

Kategorin inlärning med antal innehåller följande moduler:

  • Skapa räknings transformering: skapar en beräknings tabell och ett Count-baserat funktioner från en data uppsättning och sparar sedan tabellen och funktionerna som en omvandling.
  • Tabellen export Count: exporterar en Count-tabell från en räknings omvandling. Den här modulen stöder bakåtkompatibilitet med experiment som skapar Count-baserade funktioner med hjälp av tabell för att skapa räknare (inaktuell) och antal upplärda (inaktuell).
  • Import räknings tabell: importerar en befintlig Count-tabell. Den här modulen stöder bakåtkompatibilitet med experiment som skapar Count-baserade funktioner med hjälp av tabell för att skapa räknare (inaktuell) och antal upplärda (inaktuell). Modulen stöder konvertering av Count-tabeller för att räkna transformeringar.
  • Transformering av sammanfognings antal: sammanfogar två uppsättningar med Count-baserade funktioner.
  • Ändra räkna tabell parametrar: ändrar de Count-baserade funktioner som härleds från en befintlig Count-tabell.

Se även