Gruppera data till lagerplatser

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Placerar numeriska data i intervall

Kategori: Skala och minska

Anteckning

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

Liknande dra och släpp-moduler finns i Azure Machine Learning designer.

Modulöversikt

Den här artikeln beskriver hur du använder modulen Gruppdata i bins i Machine Learning Studio (klassisk) för att gruppera nummer eller ändra fördelningen av kontinuerliga data.

Modulen Gruppera data i intervall har stöd för flera alternativ för att binera data. Du kan anpassa hur intervallkanterna anges och hur värden fördelas i intervallen. Du kan till exempel:

  • Skriv manuellt en serie värden som ska fungera som intervallgränser.
  • Beräkna entropinpoäng för att fastställa informationsvärden för varje intervall för att optimera intervallen i förutsägelsemodellen. + Tilldela värden till lagerplatser med hjälp av quantiles eller percentilrankningar.
  • Kontrollera antalet värden i varje lagerplats kan också styras.
  • Framtvinga en jämn fördelning av värden i intervallen.

Mer om bining och gruppering

Binering eller gruppering av data (kallas ibland kvantisering) är ett viktigt verktyg för att förbereda numeriska data för maskininlärning och är användbart i scenarier som dessa:

  • En kolumn med kontinuerliga tal har för många unika värden för att modellera effektivt, så att du automatiskt eller manuellt tilldelar värdena till grupper för att skapa en mindre uppsättning diskreta intervall.

    Du kan till exempel använda entropinpoäng som genereras av gruppdata i intervall för att identifiera optimala grupper av datavärden och använda dessa grupper som funktioner i din modell.

  • Ersätt en kolumn med tal med kategoriska värden som representerar specifika intervall.

    Du kanske till exempel vill gruppera värden i en ålderskolumn genom att ange anpassade intervall, till exempel 1–15, 16–22, 23–30 och så vidare för användardemografi.

  • En datauppsättning har några extrema värden, alla långt utanför det förväntade intervallet, och dessa värden har en outsized påverkan på den tränade modellen. För att minimera biasen i modellen kan du omvandla data till en enhetlig fördelning med hjälp av metoden quantiles (eller lika hög).

    Med den här metoden avgör modulen Gruppera data i lagerplatser de idealiska intervallplatserna och intervallbredderna för att säkerställa att ungefär samma antal exempel hamnar i varje lagerplats. Beroende på vilken normaliseringsmetod du väljer omvandlas värdena i intervallen antingen till percentiler eller mappas till ett lagerplatsnummer.

Exempel på binning

Följande diagram visar fördelningen av numeriska värden före och efter bining med quantiles-metoden . Observera att jämfört med rådata till vänster har data binerats och omvandlats till en enhetsnormal skala.

raw data and data binned and normalized

En annan metod för binning visas i exemplet med bröstcanceridentifiering , där gruppdata i bins används för att tilldela patienter till olika kontroll- och testgrupper, för att garantera att varje grupp har lika många patienter.

Eftersom det finns så många sätt att gruppera data, alla anpassningsbara, rekommenderar vi att du experimenterar med olika metoder och värden. Avsnittet Exempel innehåller länkar till exempelexperiment som visar hur du använder de olika binningsalgoritmerna.

Så här konfigurerar du gruppdata i intervall

  1. Lägg till modulen Gruppera data i intervall i experimentet i Studio (klassisk). Du hittar den här modulen i kategorin Datatransformering under Skala och minska.

  2. Anslut datauppsättningen som har numeriska data att bin. Kvantisering kan endast tillämpas på kolumner som innehåller numeriska data.

    Om datauppsättningen innehåller icke-numeriska kolumner använder du modulen Välj kolumner i datauppsättning för att välja en delmängd av kolumner att arbeta med.

  3. Ange binningsläget. Binningsläget avgör andra parametrar, så se till att först välja alternativet Binning-läge ! Följande typer av binning stöds:

    Entropi MDL: Den här metoden kräver att du väljer den kolumn som du vill förutsäga och den kolumn eller de kolumner som du vill gruppera i lagerplatser. Den skickar sedan data och försöker fastställa antalet lagerplatser som minimerar entropy. Med andra ord väljer den ett antal intervall som gör att datakolumnen bäst kan förutsäga målkolumnen. Den returnerar sedan det lagerplatsnummer som är associerat med varje rad med dina data i en kolumn med namnet <colname>quantized.

    Om metoden Entropy MDL inte kan hitta ett sätt att först placera data i lager för att göra en bra förutsägelse, tilldelar den alla data till en enhetlig lagerplats. Detta innebär inte att kolumnen inte är en bra prediktor. I det här fallet kan du använda andra metoder för att hitta antalet lagerplatser som skulle minimera entropiken och göra data till en bättre förutsägelse.

    Den här metoden returnerar inte de faktiska entropypoängen.

    Quantiles: Kvantilmetoden tilldelar värden till lagerplatser baserat på percentilrankningar. Quantiles kallas även för lika hög binning.

    Lika med bredd: Med det här alternativet måste du ange det totala antalet lagerplatser. Värdena från datakolumnen placeras i intervallen så att varje lagerplats har samma intervall mellan start- och slutvärden. Därför kan vissa lagerplatser ha fler värden om data klumpas ihop runt en viss punkt.

    Anpassade kanter: Du kan ange de värden som börjar varje lagerplats. Gränsvärdet är alltid den nedre gränsen för intervallet. Anta till exempel att du vill gruppera värden i två lagerplatser, ett med värden större än 0 och ett med värden som är mindre än eller lika med 0. I det här fallet skriver du 0 för intervallkanter i kommaavgränsad lista över intervallkanter. Utdata för modulen blir 1 och 2, vilket anger bin-indexet för varje radvärde.

    Lika med bredd med anpassad start och stopp: Den här metoden liknar alternativet Lika med bredd , men du kan ange både nedre och övre intervallgränser.

  4. Antal intervall: Om du använder lagringslägena Entropy MDL, Quantiles och Equal Width använder du det här alternativet för att ange hur många lagerplatser eller kvantantiler som du vill skapa.

  5. Använd kolumnväljaren för att välja de kolumner som har de värden som du vill intervallera för kolumner. Kolumner måste vara en numerisk datatyp.

    Samma binningsregel tillämpas på alla tillämpliga kolumner som du väljer. Om du behöver gruppera vissa kolumner med hjälp av en annan metod använder du därför en separat instans av gruppdata i intervall för varje uppsättning kolumner.

    Varning

    Om du väljer en kolumn som inte är en tillåten typ genereras ett körningsfel. Modulen returnerar ett fel så snart den hittar en kolumn av otillåten typ. Om du får ett fel granskar du alla markerade kolumner. Felet visar inte alla ogiltiga kolumner.

  6. För Utdataläge anger du hur du vill mata ut de kvantiserade värdena.

    • Tillägg: Skapar en ny kolumn med de intervallerade värdena och lägger till den i indatatabellen.

    • Inplace: Ersätter de ursprungliga värdena med de nya värdena i datauppsättningen.

    • ResultOnly: Returnerar bara resultatkolumnerna.

  7. Om du väljer bineringsläget Quantiles använder du alternativet Quantile-normalisering för att fastställa hur värden normaliseras innan du sorterar i quantiles. Observera att normaliseringsvärden transformerar värdena, men påverkar inte det slutliga antalet lagerplatser. Ett exempel finns i Effekter av olika normaliseringsmetoder.

    Följande normaliseringstyper stöds:

    • Procent: Värden normaliseras inom intervallet [0 100]

    • PQuantile: Värden normaliseras inom intervallet [0,1]

    • QuantileIndex: Värden normaliseras inom intervallet [1,antal lagerplatser]

  8. Om du väljer alternativet Anpassade kanter skriver du en kommaavgränsad lista med tal som ska användas som intervallkanter i listan + Kommaavgränsade med textrutan intervallkanter . Värdena markerar den punkt som delar upp lagerplatser. Om du skriver ett bin edge-värde genereras därför två lagerplatser. Om du skriver två bin edge-värden genereras tre intervall och så vidare.

    Värdena måste sorteras så att intervallen skapas, från lägsta till högsta.

  9. Om du använder alternativet Lika med bredd med anpassad start och stopp måste du ange gränserna för intervallen.

    Definiera den nedre gränsen för det första intervallet genom att skriva ett värde i textrutan Första kantposition .

    Definiera den nedre gränsen för den sista lagerplatsen genom att skriva ett värde i textrutan Sista kantposition .

  10. Tagga kolumner som kategoriska: Välj det här alternativet för att automatiskt lägga till en metadataflagga i kolumnen med binerade värden. Metadataflaggan anger att de kvantiserade kolumnerna ska hanteras som kategoriska variabler.

  11. Kör experimentet eller välj den här modulen och klicka på Kör markerat.

Resultat

Modulen Gruppera data i intervall returnerar en datauppsättning där varje element har raderats i enlighet med det angivna läget.

Den returnerar också en Binning-transformering, som är en funktion som kan skickas till modulen Tillämpa transformering för att binärändra nya dataexempel med samma binningsläge och parametrar.

Om du vill se hur bra binningsmetoden fungerar som en förutsägelse kan du klicka på datauppsättningens utdata från gruppdata till lagerplatser och jämföra etikettkolumnen med den grupperade kolumnen. Om gruppering till intervall är förutsägande bör värdena i matrisen mellan flikar koncentreras till några få celler.

Tips

Kom ihåg att om du använder gruppering på dina träningsdata måste du använda samma binningsmetod för data som du använder för testning och förutsägelse. Detta inkluderar metoden för diskretisering, diskretiseringsplatser och intervallbredder.

För att säkerställa att data alltid transformeras med samma metod för diskretisering rekommenderar vi att du sparar användbara datatransformeringar och sedan tillämpar dem på andra datauppsättningar med hjälp av modulen Tillämpa transformering .

Exempel

Exempel på hur kvantisering tillämpas i maskininlärningsscenarier finns i Azure AI-galleriet:

Tekniska anteckningar

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

Effekter av olika normaliseringsmetoder

Om du väljer alternativet Kvantilnormalisering transformeras värden före diskretisering. Därför har den metod som du väljer för normalisering en stark effekt på de numeriska värdena.

Följande tabell illustrerar till exempel hur värdena i en enda kolumn, , fLengthfrån teleskopdatauppsättningen transformeras med var och en av normaliseringsmetoderna. Kolumnen, fLength, valdes slumpmässigt som en illustration av utdatavärdena från varje alternativ och har ingen normal fördelning.

Källa (fLength) pQuantile QuantileIndex Procent
28.7967 0.363636 4 36.363636
31.6036 0.454545 5 45.454545
162.052 0.909091 10 90.909091
23.8172 0.272727 3 27.272727

Intervallresultaten är liknande för varje metod.

Följande bild visar fördelningen av värden i kolumnen före och efter diskretisering, med standardvärdet 10 intervall.

Comparison of Normalization Methods for Binning

Implementeringsdetaljer

  • Under kvantiseringen mappas varje tal till en lagerplats genom att dess värde jämförs med värdena för intervallkanterna.

    Om värdet till exempel är 1,5 och intervallkanterna är 1, 2 och 3 mappas elementet till intervallnummer 2. Värdet 0,5 mappas till lagerplatsnummer 1 (underflödeslager) och värdet 3,5 mappas till intervallnummer 4 (spilllager).

  • Om kolumnen som ska diskretiseras (kvantisera) är gles används förskjutningen av bin-indexet (kvantilförskjutningen) när den resulterande kolumnen fylls i. Förskjutningen väljs så att gles 0 alltid hamnar i intervallet med indexet 0 (med andra ord kvantilen med värdet 0).

  • Glesa nollor sprids från indata till utdatakolumnen.

  • Bearbetning av täta kolumner ger alltid resultat med ett minsta intervallindex som är lika med 1. Det minsta kvantilvärdet är alltså lika med minimivärdet i kolumnen. Samtidigt ger bearbetning av en gles kolumn ett resultat med variabelt minsta intervallindex (minsta kvantilvärde).

  • Alla NaN och saknade värden sprids från indatakolumnen till utdatakolumnen. Det enda undantaget är fallet när modulen returnerar kvantilindex. I det här fallet befordras alla NaN:er till saknade värden.

  • Diskretiseringsindex är 1-baserade. Detta är den naturliga konventionen för kvantantiler (1:a kvantilen, andra kvantilen och så vidare). Det enda undantaget är fallet när kolumnen som ska diskretiseras är gles.

Förväntade indata

Namn Typ Description
Datamängd Datatabell Datauppsättning som ska analyseras

Modulparametrar

Name Intervall Typ Standardvärde Description
Diskretiseringsläge Lista QuantizationMode Kvantiler Välj en binningsmetod
Kolumner som ska diskretas valfri ColumnSelection NumerisktAlla Välj kolumner för kvantisering
Utdataläge valfri OutputTo Ange hur kvantiserade kolumner ska matas ut
Tagga kolumner som kategoriska valfri Boolesk true Ange om utdatakolumner ska taggas som kategoriska
Antal intervall >=1 Integer 10 Ange önskat antal intervall
Kvantilnormalisering valfri BinningNormalization Välj metod för normalisering av kvantantiklar
Första kantpositionen valfri Float 0.0 Ange värdet för den första diskretiseringsgränsen
Bredd på lagerplats valfri Float 0,5 Ange en anpassad bredd på lagerplats
Sista kantpositionen valfri Float 1.0 Ange värdet för den sista intervallgränsen
Kommaavgränsad lista över intervallkanter valfri Sträng Ange en kommaavgränsad lista med tal som ska användas som intervallkanter

Utdata

Namn Typ Description
Kvantiserad datauppsättning Datatabell Datauppsättning med kvantiserade kolumner
Binningstransformering ITransform-gränssnitt Transformering som tillämpar kvantisering på datauppsättningen

Undantag

Undantag Description
Fel 0003 Ett undantag inträffar om en eller flera indata är null eller tomma.
Fel 0004 Ett undantag inträffar om parametern är mindre än eller lika med ett visst värde.
Fel 0011 Ett undantag inträffar om argumentet för den skickade kolumnuppsättningen inte gäller för någon av datauppsättningskolumnerna.
Fel 0021 Ett undantag inträffar om antalet rader i vissa datauppsättningar som skickas till modulen är för litet.
Fel 0024 Ett undantag inträffar om datauppsättningen inte innehåller någon etikettkolumn.
Fel 0020 Ett undantag inträffar om antalet kolumner i vissa datauppsättningar som skickas till modulen är för litet.
Fel 0038 Ett undantag inträffar om antalet förväntade element ska vara ett exakt värde, men inte.
Fel 0005 Ett undantag inträffar om parametern är mindre än ett specifikt värde.
Fel 0002 Ett undantag inträffar om en eller flera parametrar inte kunde parsas eller konverteras från den angivna typen till krävs av målmetodtypen.
Fel 0019 Ett undantag inträffar om kolumnen förväntas innehålla sorterade värden, men det gör den inte.
Fel 0039 Ett undantag inträffar om åtgärden misslyckades.
Fel 0075 Ett undantag inträffar när en ogiltig binningsfunktion används vid kvantisering av en datamängd.

En lista över fel som är specifika för Studio-moduler (klassiska) finns i Machine Learning Felkoder.

En lista över API-undantag finns i Machine Learning REST API-felkoder.

Se även

Skala och minska
Normalisera Data
Beskärningsvärden