Delen via


Gegevens normaliseren

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Schaalt numerieke gegevens opnieuw om gegevenssetwaarden te beperken tot een standaardbereik

Categorie: Gegevenstransformatie/schaal en reductie

Notitie

Van toepassing op: alleen Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Normalize Data in Machine Learning Studio (klassiek) gebruikt om een gegevensset te transformeren via normalisatie.

Normalisatie is een techniek die vaak wordt toegepast als onderdeel van gegevensvoorbereiding voor machine learning. Het doel van normalisatie is het wijzigen van de waarden van numerieke kolommen in de gegevensset om een gemeenschappelijke schaal te gebruiken, zonder dat de verschillen in de bereiken van waarden worden vervormd of gegevens verloren gaan. Normalisatie is ook vereist voor sommige algoritmen om de gegevens correct te modelleren.

Stel dat uw invoergegevensset één kolom bevat met waarden tussen 0 en 1 en een andere kolom met waarden tussen 10.000 en 100.000. Het grote verschil in de schaal van de getallen kan problemen veroorzaken bij het combineren van de waarden als functies tijdens het modelleren.

Normalisatie voorkomt deze problemen door nieuwe waarden te maken die de algemene verdeling en verhoudingen in de brongegevens behouden, terwijl waarden binnen een schaal worden toegepast op alle numerieke kolommen die in het model worden gebruikt.

Deze module biedt verschillende opties voor het transformeren van numerieke gegevens:

  • U kunt alle waarden wijzigen in een schaal van 0-1 of de waarden transformeren door ze weer te geven als percentielrangschikkingen in plaats van absolute waarden.
  • U kunt normalisatie toepassen op één kolom of op meerdere kolommen in dezelfde gegevensset.
  • Als u het experiment wilt herhalen of dezelfde normalisatiestappen op andere gegevens wilt toepassen, kunt u de stappen opslaan als een normalisatietransformatie en deze toepassen op andere gegevenssets met hetzelfde schema.

Waarschuwing

Voor sommige algoritmen moeten gegevens worden genormaliseerd voordat een model wordt getraind. Andere algoritmen voeren hun eigen gegevensschaling of normalisatie uit. Wanneer u daarom een machine learning-algoritme kiest voor het bouwen van een voorspellend model, moet u de gegevensvereisten van het algoritme controleren voordat u normalisatie toepast op de trainingsgegevens.

Gegevens normaliseren configureren

U kunt slechts één normalisatiemethode tegelijk toepassen met behulp van deze module. Daarom wordt dezelfde normalisatiemethode toegepast op alle kolommen die u selecteert. Als u verschillende normalisatiemethoden wilt gebruiken, gebruikt u een tweede instantie van Normalize Data.

  1. Voeg de module Normalize Data toe aan uw experiment. U vindt de module in Machine Learning Studio (klassiek), onder Gegevenstransformatie, in de categorie Schaal en Reductie.

  2. Verbinding maken een gegevensset met ten minste één kolom met alle getallen.

  3. Gebruik de kolomkiezer om de numerieke kolommen te kiezen die u wilt normaliseren. Als u geen afzonderlijke kolommen kiest, worden standaard alle numerieke typekolommen in de invoer opgenomen en wordt hetzelfde normalisatieproces toegepast op alle geselecteerde kolommen.

    Dit kan leiden tot vreemde resultaten als u numerieke kolommen opneemt die niet moeten worden genormaliseerd. Controleer de kolommen altijd zorgvuldig.

    Als er geen numerieke kolommen worden gedetecteerd, controleert u de metagegevens van de kolom om te controleren of het gegevenstype van de kolom een ondersteund numeriek type is.

    Tip

    Als u ervoor wilt zorgen dat kolommen van een specifiek type als invoer worden opgegeven, gebruikt u de module Kolommen in gegevensset selecteren voordat u gegevens normaliseert.

  4. Gebruik 0 voor constante kolommen wanneer ingeschakeld: selecteer deze optie wanneer een numerieke kolom één onveranderlijke waarde bevat. Dit zorgt ervoor dat dergelijke kolommen niet worden gebruikt in normalisatiebewerkingen.

  5. Kies in de vervolgkeuzelijst Transformatiemethode één wiskundige functies die moeten worden toegepast op alle geselecteerde kolommen.

    • Zscore: converteert alle waarden naar een z-score.

      De waarden in de kolom worden getransformeerd met behulp van de volgende formule:

      normalization using z-scores

      Gemiddelde en standaarddeviatie worden afzonderlijk berekend voor elke kolom. De standaarddeviatie van de populatie wordt gebruikt.

    • MinMax: Met de min-max normalizer wordt elke functie lineair opnieuw geschaald naar het interval [0,1]..

      Het aanpassen van het formaat van het interval [0,1] wordt uitgevoerd door de waarden van elke functie te verschuiven, zodat de minimale waarde 0 is en vervolgens wordt gedeeld door de nieuwe maximale waarde (dit is het verschil tussen de oorspronkelijke maximum- en minimale waarden).

      De waarden in de kolom worden getransformeerd met behulp van de volgende formule:

      normalization using the min-max function

    • Logistiek: De waarden in de kolom worden getransformeerd met behulp van de volgende formule:

      formula for normalization by logistic function

    • LogNormal: Met deze optie worden alle waarden geconverteerd naar een logaritmische schaal.

      De waarden in de kolom worden getransformeerd met behulp van de volgende formule:

      formula log-normal distribution

      Hier μ en σ de parameters van de distributie zijn, die empirisch worden berekend op basis van de gegevens als schattingen van maximale waarschijnlijkheid, voor elke kolom afzonderlijk.

    • TanH: Alle waarden worden geconverteerd naar een tangens hyperbolicus.

      De waarden in de kolom worden getransformeerd met behulp van de volgende formule:

      normalization using the tanh function

  6. Voer het experiment uit of dubbelklik op de module Gegevens normaliseren en selecteer Geselecteerd uitvoeren.

Resultaten

De module Normalize Data genereert twee uitvoer:

  • Als u de getransformeerde waarden wilt weergeven, klikt u met de rechtermuisknop op de module, selecteert u Getransformeerde gegevensset en klikt u op Visualiseren.

    Standaard worden waarden op hun plaats getransformeerd. Als u de getransformeerde waarden wilt vergelijken met de oorspronkelijke waarden, gebruikt u de module Kolommen toevoegen om de gegevenssets opnieuw te koppelen en de kolommen naast elkaar weer te geven.

  • Als u de transformatie wilt opslaan zodat u dezelfde normalisatiemethode kunt toepassen op een andere vergelijkbare gegevensset, klikt u met de rechtermuisknop op de module, selecteert u de functie Transformatie en klikt u op Opslaan als transformatie.

    Vervolgens kunt u de opgeslagen transformaties uit de groep Transformaties van het linkernavigatiedeelvenster laden en toepassen op een gegevensset met hetzelfde schema met behulp van Transformatie toepassen.

Voorbeelden

Zie de Azure AI Gallery voor voorbeelden van hoe normalisatie wordt gebruikt in machine learning:

  • Voorspelling van kredietrisico: In dit voorbeeld wordt normalisatie toegepast op alle numerieke gegevens, met uitzondering van de klassekolom, de kredietrisicoscore. In dit voorbeeld wordt de tanh-transformatie gebruikt, waarmee alle numerieke functies worden geconverteerd naar waarden binnen een bereik van 0-1.

Technische opmerkingen

Deze module ondersteunt alleen de standaardnormalisatiemethoden die worden vermeld in de sectie Instructies en biedt geen ondersteuning voor matrixnormalisatie of andere complexe transformaties.

Als u een aangepaste normalisatiemethode moet maken, kunt u het Execute R Script gebruiken of Python Script-modules uitvoeren om de transformatie te berekenen en toe te passen.

Algoritmen die normalisatie toepassen

Het normaliseren van functies zodat ze een gemeenschappelijke schaal gebruiken, is een algemene vereiste voor veel machine learning-algoritmen.

  • In lineaire classificatiealgoritmen worden exemplaren weergegeven als vectoren in multidimensionale ruimte. Aangezien het bereik van waarden van onbewerkte gegevens sterk varieert, werken sommige objectieve functies niet goed zonder normalisatie. Als een van de functies bijvoorbeeld een breed scala aan waarden heeft, worden de afstanden tussen punten bepaald door deze specifieke functie.

    Daarom moeten numerieke functies worden genormaliseerd, zodat elke functie ongeveer evenredig bijdraagt aan de uiteindelijke afstand. Dit kan aanzienlijke voordelen voor versnelling en nauwkeurigheid bieden.

  • Bij het gebruik van de Logistieke Regressie - en Averaged Perceptron-algoritmen worden functies standaard genormaliseerd vóór de training.

Meer lezen en bronnen

Als u niet zeker weet welk type normalisatie bij uw gegevens past, raadpleegt u deze bronnen:

  • Modules voor Mijn gegevens aanbevelen: Deze aangepaste module door een lid van het Azure ML-team evalueert uw gegevensset en raadt stappen aan voor het opschonen en schalen van gegevens.

  • Functieschalen: In dit artikel in Wikipedia worden de basismethoden uitgelegd die worden gebruikt voor het normaliseren van numerieke gegevens.

  • Gegevensvoorbereiding voor gegevensanalyse omvat veel uitgebreide stappen voor gegevensvoorbereiding. Zie hoofdstuk 7 voor een bespreking van gegevensnormalisatie.

Verwachte invoer

Naam Type Beschrijving
Gegevensset Gegevenstabel Invoergegevensset

Moduleparameters

Name Bereik Type Standaard Beschrijving
Transformatiemethode alle TransformationMethods ZScore Kies de wiskundige methode die wordt gebruikt voor schalen
Kolommen die moeten worden getransformeerd alle ColumnSelection Numeriekeall Alle kolommen selecteren waarop de geselecteerde transformatie moet worden toegepast

Uitvoerwaarden

Naam Type Beschrijving
Getransformeerde gegevensset Gegevenstabel Getransformeerde gegevensset
Transformatiefunctie ITransform-interface Definitie van de transformatiefunctie, die kan worden toegepast op andere gegevenssets

Uitzonderingen

Uitzondering Beschrijving
Fout 0001 Er treedt een uitzondering op als een of meer opgegeven kolommen met gegevensset niet kunnen worden gevonden.
Fout 0003 Er treedt een uitzondering op als een of meer invoerwaarden null of leeg zijn.
Fout 0017 Uitzondering treedt op als een of meer opgegeven kolommen een type hebben dat niet wordt ondersteund door de huidige module.
Fout 0020 Uitzondering treedt op als het aantal kolommen in sommige gegevenssets dat aan de module is doorgegeven, te klein is.
Fout 0021 Uitzondering treedt op als het aantal rijen in sommige gegevenssets dat aan de module is doorgegeven, te klein is.

Zie Machine Learning Foutcodes voor een lijst met fouten die specifiek zijn voor Studio-modules (klassiek).

Zie Machine Learning REST API-foutcodes voor een lijst met API-uitzonderingen.

Zie ook

Schalen en verminderen