Delen via


Gegevenstransformatie : Learning met tellingen

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.

In dit artikel worden de modules in Machine Learning Studio (klassiek) beschreven die ondersteuning bieden voor featurization op basis van tellingen.

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

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

Learning aantal is een efficiënte manier om een compacte set gegevenssetfuncties te maken die zijn gebaseerd op het aantal waarden. U kunt de modules in deze categorie gebruiken om een set tellingen en functies te bouwen. Later kunt u de tellingen en de functies bijwerken om te profiteren van nieuwe gegevens, of twee sets met telgegevens samenvoegen.

Over op count gebaseerde featurization

Het basisprincipe van op count gebaseerde featurization is dat u door het berekenen van tellingen snel en eenvoudig een samenvatting kunt krijgen van welke kolommen de belangrijkste informatie bevatten. De module telt het aantal keren dat een waarde wordt weergegeven en levert die informatie vervolgens als een functie voor invoer voor een model.

Imagine dat u een creditcardtransactie valideert. Een cruciaal stukje informatie is waar deze transactie vandaan komt. Een van de meest voorkomende coderingen van de oorsprong van de transactie is de postcode. Er kunnen echter wel 40.000 postcodes, postcodes en geografische codes zijn waar rekening mee moet worden gehouden. Heeft uw model de capaciteit om nog 40.000 parameters te leren? Als u deze capaciteit geeft, hebt u dan voldoende trainingsgegevens om overfitting te voorkomen?

Als u goede gegevens hebt, met veel voorbeelden, kan een dergelijke gedetailleerde lokale granulariteit krachtig zijn. Als u echter slechts één steekproef van een frauduleuze transactie hebt, van een kleine plaats, betekent dit dan dat alle transacties van die plaats slecht zijn of dat u niet voldoende gegevens hebt?

Eén oplossing is om te leren met tellingen. In plaats van 40.000 extra functies te introduceren, kunt u de tellingen en verhoudingen van fraude voor elke postcode observeren. Door deze tellingen als functies te gebruiken, krijgt u informatie over de sterkte van het bewijs voor elke waarde. Door de relevante statistieken van de tellingen te coderen, kan de leerder bovendien de statistieken gebruiken om te bepalen wanneer de benadering moet worden gewijzigd en in plaats daarvan andere functies gebruiken om de informatie op te halen.

Leren op basis van een aantal is om verschillende redenen aantrekkelijk. Met op count gebaseerd leren hebt u minder functies, waarvoor minder parameters nodig zijn. Minder parameters maken sneller leren, snellere voorspelling, kleinere voorspellingen en minder kans op overfitten mogelijk.

Hoe functies op basis van tellingen worden gemaakt

Een eenvoudig voorbeeld kan helpen om te laten zien hoe functies op basis van tellingen worden gemaakt en toegepast. Stel dat u de volgende tabel als deze hebt, met labels en invoer. Elk geval (of rij of voorbeeld) heeft een set waarden in kolommen. In dit voorbeeld zijn de waarden A en B.

Kolom labelen Invoerwaarde
0 A
0 A
1 A
0 B
1 B
1 B
1 B

Dit zijn de stappen die u moet volgen om functies op basis van tellingen te maken:

  1. Zoek voor een specifieke set waarden alle andere cases in die gegevensset die dezelfde waarde hebben. In dit geval zijn er drie exemplaren van A en vier exemplaren van B.
  2. Tel het klasselidmaatschap van elke waarde als een functie op zichzelf. In dit geval krijgt u een kleine matrix: er zijn twee gevallen waarbij A = 0; één geval waarbij A = 1; één geval waarbij B = 0; en drie gevallen waarbij B = 1.
  3. Op basis van deze matrix krijgt u verschillende functies op basis van tellingen. Deze omvatten een berekening van de verhouding tussen logboeken en de tellingen voor elke doelklasse. In de tabel in de volgende sectie worden de gegevens weergegeven.

Voorbeeldtabel met functies op basis van tellingen

Label 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

Voorbeelden

In Use Machine Learning to build clickthrough prediction models (Gebruik Machine Learning om clickthrough-voorspellingsmodellen te bouwen) biedt het Microsoft Machine Learning-team een gedetailleerd overzicht van het gebruik van tellingen in machine learning. In dit artikel wordt de kwaliteit van modellering op basis van tellingen vergeleken met andere methoden.

Technische opmerkingen

Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.

Hoe de waarde voor logboekverlies wordt berekend

De waarde voor logboekverlies is niet de gewone kans op logboekverlies. In dit geval wordt de voorafgaande distributie gebruikt om de berekening van logboekberekeningen te soepeler te laten verlopen.

Stel dat u een gegevensset hebt die wordt gebruikt voor binaire classificatie. In deze gegevensset is de voorafgaande frequentie voor klasse 0 en de p_0voorafgaande frequentie voor klasse 1 .p_1 = 1 – p_0 Voor een specifiek trainingsvoorbeeld is het aantal voor klasse 0 x_0en het aantal voor klasse 1 x_1.

Onder deze veronderstellingen wordt de log-kans berekend als LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1), waarbij c de vorige coëfficiënt is, die kan worden ingesteld door de gebruiker. De logboekfunctie maakt gebruik van de natuurlijke basis.

Met andere woorden, voor elke klasse i:

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

Als de voorafgaande coëfficiënt positief is, kan de log-kans verschillen van Log(count[i] / (sum_of_counts – count[i])).

Waarom de logboek-kans niet wordt berekend voor sommige items

Standaard worden alle items met een telling van minder dan 10 verzameld in één bucket met de naam 'garbage bin'. U kunt deze waarde wijzigen met behulp van de optie Drempelwaarde garbage bin in de module Aantal tabelparameters wijzigen.

Lijst met modules

De Learning met de categorie Counts bevat de volgende modules:

  • Teltransformatie bouwen: hiermee maakt u een teltabel en functies op basis van tellingen van een gegevensset en slaat u de tabel en functies vervolgens op als een transformatie.
  • Export Count Table: hiermee exporteert u een teltabel uit een teltransformator. Deze module ondersteunt achterwaartse compatibiliteit met experimenten die functies op basis van tellingen maken met behulp van Build Count Table (afgeschaft) en Count Featurizer (afgeschaft).
  • Import Count Table: hiermee importeert u een bestaande count-tabel. Deze module ondersteunt achterwaartse compatibiliteit met experimenten die functies op basis van tellingen maken met behulp van Build Count Table (afgeschaft) en Count Featurizer (afgeschaft). De module ondersteunt conversie van teltabellen om transformaties te tellen.
  • Transformatie aantal samenvoegingen: voegt twee sets functies op basis van tellingen samen.
  • Parameters voor aantal tabel wijzigen: wijzigt functies op basis van tellingen die zijn afgeleid van een bestaande count-tabel.

Zie ook