Share via


Normalisera Data

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.

Skala om numeriska data för att begränsa datauppsättningsvärden till ett standardintervall

Kategori: Datatransformering/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 Normalisera data i Machine Learning Studio (klassisk) för att transformera en datauppsättning genom normalisering.

Normalisering är en teknik som ofta används som en del av förberedelsen av data för maskininlärning. Målet med normaliseringen är att ändra värdena för numeriska kolumner i datauppsättningen så att de använder en gemensam skala, utan att förvränga skillnaderna i värdenas intervall eller förlora information. Normalisering krävs också för att vissa algoritmer ska kunna modellera data korrekt.

Anta till exempel att din indatauppsättning innehåller en kolumn med värden mellan 0 och 1 och en annan kolumn med värden mellan 10 000 och 100 000. Den stora skillnaden i siffrornas skala kan orsaka problem när du försöker kombinera värdena som funktioner under modellering.

Normalisering undviker dessa problem genom att skapa nya värden som upprätthåller den allmänna fördelningen och förhållandet i källdata, samtidigt som värden i en skala som tillämpas på alla numeriska kolumner som används i modellen bevaras.

Den här modulen erbjuder flera alternativ för att transformera numeriska data:

  • Du kan ändra alla värden till en skala mellan 0 och 1 eller transformera värdena genom att representera dem som percentilrankning snarare än absoluta värden.
  • Du kan tillämpa normalisering på en enda kolumn eller på flera kolumner i samma datauppsättning.
  • Om du behöver upprepa experimentet eller tillämpa samma normaliseringssteg på andra data kan du spara stegen som en normaliseringstransformering och tillämpa dem på andra datauppsättningar som har samma schema.

Varning

Vissa algoritmer kräver att data normaliseras innan en modell tränas. Andra algoritmer utför sin egen dataskalning eller normalisering. När du väljer en maskininlärningsalgoritm som ska användas för att skapa en förutsägelsemodell bör du därför granska datakraven för algoritmen innan du tillämpar normalisering på träningsdata.

Så här konfigurerar du normalisera data

Du kan bara använda en normaliseringsmetod i taget med hjälp av den här modulen. Därför tillämpas samma normaliseringsmetod på alla kolumner som du väljer. Om du vill använda olika normaliseringsmetoder använder du en andra instans av Normalisera data.

  1. Lägg till modulen Normalisera data i experimentet. Du hittar modulen i Machine Learning Studio (klassisk), under Datatransformering, i kategorin Skala och minska.

  2. Anslut en datauppsättning som innehåller minst en kolumn med alla tal.

  3. Använd kolumnväljaren för att välja de numeriska kolumner som ska normaliseras. Om du inte väljer enskilda kolumner inkluderas som standard alla kolumner av numerisk typ i indata och samma normaliseringsprocess tillämpas på alla markerade kolumner.

    Detta kan leda till konstiga resultat om du inkluderar numeriska kolumner som inte bör normaliseras! Kontrollera alltid kolumnerna noggrant.

    Om inga numeriska kolumner identifieras kontrollerar du kolumnmetadata för att kontrollera att datatypen för kolumnen är en numerisk typ som stöds.

    Tips

    Om du vill se till att kolumner av en viss typ tillhandahålls som indata kan du prova att använda modulen Välj kolumner i datauppsättning innan du normaliserar data.

  4. Använd 0 för konstanta kolumner när det är markerat: Välj det här alternativet när en numerisk kolumn innehåller ett enda oförändrat värde. Detta säkerställer att sådana kolumner inte används i normaliseringsåtgärder.

  5. I listrutan Transformeringsmetod väljer du en enda matematisk funktion som ska tillämpas på alla valda kolumner.

    • Zscore: Konverterar alla värden till en z-score.

      Värdena i kolumnen transformeras med hjälp av följande formel:

      normalization using z-scores

      Medelvärde och standardavvikelse beräknas för varje kolumn separat. Populationens standardavvikelse används.

    • MinMax: Normaliseraren min-max linjärt omskalar varje funktion till intervallet [0,1].

      Omskalning till intervallet [0,1] görs genom att flytta värdena för varje funktion så att det minimala värdet är 0 och sedan dividera med det nya maximala värdet (vilket är skillnaden mellan de ursprungliga maximala och minimala värdena).

      Värdena i kolumnen transformeras med hjälp av följande formel:

      normalization using the min-max function

    • Logistik: Värdena i kolumnen transformeras med hjälp av följande formel:

      formula for normalization by logistic function

    • LogNormal: Det här alternativet konverterar alla värden till en lognormal skala.

      Värdena i kolumnen transformeras med hjälp av följande formel:

      formula log-normal distribution

      Här μ och σ är parametrarna för fördelningen, beräknade empiriskt från data som maximal sannolikhetsuppskattningar, för varje kolumn separat.

    • TanH: Alla värden konverteras till en hyperbolisk tangens.

      Värdena i kolumnen transformeras med hjälp av följande formel:

      normalization using the tanh function

  6. Kör experimentet eller dubbelklicka på modulen Normalisera data och välj Kör valt.

Resultat

Modulen Normalize Data genererar två utdata:

  • Om du vill visa transformerade värden högerklickar du på modulen, väljer Transformerad datauppsättning och klickar på Visualisera.

    Som standard transformeras värden på plats. Om du vill jämföra transformerade värden med de ursprungliga värdena använder du modulen Lägg till kolumner för att rekombinera datauppsättningarna och visa kolumnerna sida vid sida.

  • Om du vill spara omvandlingen så att du kan använda samma normaliseringsmetod på en annan liknande datauppsättning högerklickar du på modulen, väljer Transformeringsfunktion och klickar på Spara som transformering.

    Du kan sedan läsa in de sparade omvandlingarna från gruppen Transformeringar i det vänstra navigeringsfönstret och tillämpa dem på en datauppsättning med samma schema med hjälp av Tillämpa transformering.

Exempel

Exempel på hur normalisering används i maskininlärning finns i Azure AI-galleriet:

  • Förutsägelse av kreditrisk: I det här exemplet tillämpas normalisering på alla numeriska data förutom klasskolumnen, kreditriskpoängen. I det här exemplet används tanh-omvandlingen , som konverterar alla numeriska funktioner till värden inom intervallet 0–1.

Tekniska anteckningar

Den här modulen stöder endast standardnormaliseringsmetoderna som anges i avsnittet Instruktioner och stöder inte matrisnormalisering eller andra komplexa transformeringar.

Om du behöver skapa en anpassad normaliseringsmetod kan du använda modulerna Execute R Script (Kör R-skript) eller Execute Python Script (Kör Python Skript) för att beräkna och tillämpa omvandlingen.

Algoritmer som tillämpar normalisering

Normalisering av funktioner så att de använder en gemensam skala är ett allmänt krav för många maskininlärningsalgoritmer.

  • I linjära klassificeringsalgoritmer visas instanser som vektorer i flerdimensionellt utrymme. Eftersom värdena för rådata varierar kraftigt fungerar vissa objektiva funktioner inte korrekt utan normalisering. Om en av funktionerna till exempel har ett brett intervall med värden styrs avstånden mellan punkter av den här funktionen.

    Därför bör numeriska funktioner normaliseras så att varje funktion bidrar ungefär proportionellt till det slutliga avståndet. Detta kan ge betydande fördelar med snabbhet och noggrannhet.

  • När du använder algoritmerna Logistic Regression och Averaged Perceptron normaliseras som standard funktionerna före träning.

Ytterligare läsning och resurser

Om du är osäker på vilken typ av normalisering som passar dina data kan du läsa följande resurser:

  • Rekommendera moduler för mina data: Den här anpassade modulen av en medlem i Azure ML-teamet utvärderar din datauppsättning och rekommenderar steg för att rensa och skala data.

  • Funktionsskalning: Den här artikeln på Wikipedia förklarar de grundläggande metoder som används för normalisering av numeriska data.

  • Dataförberedelse för datautvinning omfattar många djupförberedelsesteg för dataförberedelse. Se kapitel 7 för en diskussion om datanormalisering.

Förväntade indata

Namn Typ Description
Datamängd Datatabell Indatauppsättning

Modulparametrar

Name Intervall Typ Standardvärde Description
Transformeringsmetod valfri TransformationMethods ZScore Välj den matematiska metod som används för skalning
Kolumner som ska transformeras valfri ColumnSelection NumerisktAlla Markera alla kolumner som den valda omvandlingen ska tillämpas på

Utdata

Namn Typ Description
Transformerad datauppsättning Datatabell Transformerad datauppsättning
Transformeringsfunktion ITransform-gränssnitt Definition av transformeringsfunktionen, som kan tillämpas på andra datauppsättningar

Undantag

Undantag Description
Fel 0001 Ett undantagsfel uppstår om en eller flera angivna kolumner i datauppsättningen inte kunde hittas.
Fel 0003 Ett undantag inträffar om en eller flera indata är null eller tomma.
Fel 0017 Ett undantag inträffar om en eller flera angivna kolumner har en typ som inte stöds av den aktuella modulen.
Fel 0020 Ett undantag uppstår om antalet kolumner i vissa datauppsättningar som skickas till modulen är för litet.
Fel 0021 Ett undantag inträffar om antalet rader i vissa datauppsättningar som skickas till modulen är för litet.

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