Amazon RedshiftML vereenvoudigt het gebruik van machine learning (ML) door eenvoudige SQL-instructies te gebruiken om ML-modellen te maken en te trainen op basis van gegevens in data Amazon roodverschuiving. U kunt Amazon Redshift ML gebruiken om problemen met binaire classificatie, classificatie met meerdere klassen en regressie op te lossen en u kunt AutoML of XGBoost rechtstreeks gebruiken.
Dit bericht maakt deel uit van een serie die het gebruik van Amazon Redshift ML beschrijft. Voor meer informatie over het bouwen van regressie met Amazon Redshift ML, zie: Bouw regressiemodellen met Amazon Redshift ML.
U kunt Amazon Redshift ML gebruiken om gegevensvoorbereiding, voorverwerking en selectie van het probleemtype te automatiseren, zoals weergegeven in deze blog post. We gaan ervan uit dat u een goed begrip heeft van uw gegevens en welk probleemtype het meest van toepassing is op uw use case. Dit bericht richt zich specifiek op het maken van modellen in Amazon Redshift met behulp van het classificatieprobleemtype met meerdere klassen, die bestaat uit het classificeren van instanties in een van drie of meer klassen. U kunt bijvoorbeeld voorspellen of een transactie frauduleus, mislukt of succesvol is, of een klant 3 maanden, zes maanden, negen maanden, 12 maanden actief blijft, of dat nieuws wordt getagd als sport, wereldnieuws, zakelijk.
Voorwaarden
Als voorwaarde voor het implementeren van deze oplossing moet u een Amazon Redshift-cluster opzetten waarop ML is ingeschakeld. Voor de voorbereidende stappen om aan de slag te gaan, zie Maak, train en implementeer machine learning-modellen in Amazon Redshift met behulp van SQL met Amazon Redshift ML.
Gebruik geval
Voor onze use case willen we onze meest actieve klanten targeten voor een speciaal klantenloyaliteitsprogramma. We gebruiken Amazon Redshift ML en classificatie met meerdere klassen om te voorspellen hoeveel maanden een klant actief zal zijn over een periode van 13 maanden. Dit vertaalt zich in maximaal 13 mogelijke klassen, waardoor dit beter geschikt is voor classificatie met meerdere klassen. Klanten met een voorspelde activiteit van 7 maanden of langer worden getarget op een speciaal klantenloyaliteitsprogramma.
Ruwe gegevens invoeren
Om de onbewerkte gegevens voor dit model voor te bereiden, hebben we de tabel ecommerce_sales in Amazon Redshift ingevuld met behulp van de openbare dataset Verkoopprognose voor e-commerce, die verkoopgegevens van een online Britse detailhandelaar bevat.
Voer de volgende instructies in om de gegevens naar Amazon Redshift te laden:
Om dit script in uw omgeving te reproduceren, vervangt u < > met de AWS Identiteits- en toegangsbeheer (IAM) ARN voor uw Amazon Redshift-cluster.
Gegevensvoorbereiding voor het ML-model
Nu onze dataset is geladen, kunnen we de data eventueel opsplitsen in drie sets voor training (80%), validatie (10%) en voorspelling (10%). Merk op dat Amazon Redshift ML Autopilot de gegevens automatisch opsplitst in training en validatie, maar door deze hier te splitsen, kunt u de nauwkeurigheid van uw model verifiรซren. Daarnaast berekenen we het aantal maanden dat een klant actief is geweest, omdat dit de waarde is die we willen dat ons model op basis van nieuwe gegevens voorspelt. We gebruiken de willekeurige functie in onze SQL-instructies om de gegevens te splitsen. Zie de volgende code:
Trainingsset
Validatieset
Voorspelling ingesteld
Maak het model in Amazon Redshift
Nu we onze trainings- en validatiegegevenssets hebben gemaakt, kunnen we de maak een model statement in Amazon Redshift om ons ML-model te maken met behulp van Multiclass_Classification
. We specificeren het probleemtype, maar we laten AutoML voor al het andere zorgen. In dit model is het doel dat we willen voorspellen: nbr_months_active
. Amazon Sage Maker creรซert de functie predict_customer_activity
, die we gebruiken om gevolgtrekkingen uit te voeren in Amazon Redshift. Zie de volgende code:
Om dit script in uw omgeving te reproduceren, vervangt u < > met de IAM-rol ARN van uw cluster.
Voorspellingen valideren
In deze stap evalueren we de nauwkeurigheid van ons ML-model ten opzichte van onze validatiegegevens.
Tijdens het maken van het model, Amazon SageMaker-stuurautomaat splitst automatisch de invoergegevens in trein- en validatiesets en selecteert het model met de beste objectieve metriek, die wordt ingezet in het Amazon Redshift-cluster. U kunt de show model statement in uw cluster gebruiken om verschillende metrische gegevens te bekijken, waaronder de nauwkeurigheidsscore. Als u dit niet expliciet opgeeft, gebruikt SageMaker automatisch nauwkeurigheid voor het type doelstelling. Zie de volgende code:
Zoals te zien is in de volgende uitvoer, heeft ons model een nauwkeurigheidsscore van 0.996580.
sleutel | Waarde |
Modelnaam | e-commerce_klant_activiteit |
Schema naam | Publieke |
Eigenaar | Demo |
Aanmaak tijd | ma, 22.03.2021 19:48:30 |
Modelstatus: | GEREED |
Trainingstaakstatus | MaxAutoMLJobRuntimeReached |
validatie:nauwkeurigheid | 0.996580 |
Geschatte kosten | 4.260437 |
TRAININGSDATA: | |
Vraag | SELECTEER KLANT-ID, LAND, STOCKCODE, BESCHRIJVING, FACTUURDATUM, SALES_AMT, NBR_MONTHS_ACTIVE |
VAN ECOMMERCE_SALES_CLN_TRAINING | |
Doelkolom | NBR_MONTHS_ACTIEF |
PARAMETERS: | |
Model type | automobiel |
Probleemtype | Classificatie met meerdere klassen |
Probleemtype | Nauwkeurigheid |
AutoML-taaknaam | 2021-03-07-19-48-30-960148-auto |
Functie Naam | voorspellen_klantactiviteit |
Functieparameters | klantnummer land voorraadcode omschrijving factuurdatum sales_amt |
Functieparametertypen: | int8 varchar varchar varchar varchar float8 |
Laten we gevolgtrekkingsquery's uitvoeren op onze validatiegegevens met behulp van de volgende SQL-code op de validatiegegevens:
We kunnen zien dat we op 99.74% correct hebben voorspeld op onze dataset, wat overeenkomt met onze nauwkeurigheidsscore van het showmodel.
voorspelde_overeenkomsten | voorspelde_niet_overeenkomsten | totale_voorspellingen | pct_nauwkeurigheid |
43489.00 | 132.00 | 43621.00 | 0.99697393 |
Laten we nu een zoekopdracht uitvoeren om te zien welke klanten in aanmerking komen voor ons klantenloyaliteitsprogramma door minimaal 7 maanden actief te zijn:
De volgende tabel toont onze output.
Klanten ID | voorspelde_maanden_actief |
16895 | 8 |
18283 | 10 |
15044 | 11 |
16746 | 11 |
14702 | 11 |
16607 | 10 |
12901 | 10 |
15078 | 13 |
16393 | 10 |
15005 | 12 |
Probleem oplossen
Hoewel de Create Model
verklaring in Amazon Redshift zorgt automatisch voor het starten van het SageMaker Autopilot-proces om het beste ML-model te bouwen, te trainen en af โโte stemmen en dat model in Amazon Redshift te implementeren, kunt u de tussenliggende stappen bekijken die in dit proces zijn uitgevoerd, wat u ook kan helpen bij het oplossen van problemen als er iets misgaat. U kunt de AutoML-taaknaam ook ophalen uit de uitvoer van de opdracht show model.
Bij het maken van het model moet u een . vermelden Amazon eenvoudige opslagservice (Amazon S3) bucketnaam als de waarde voor parameter, s3_bucket
. Je gebruikt deze bucket om trainingsgegevens en artefacten te delen tussen Amazon Redshift en SageMaker. Amazon Redshift maakt een submap in deze bucket voordat de trainingsgegevens worden verwijderd. Wanneer de training is voltooid, worden de submap en de inhoud ervan verwijderd, tenzij u de parameter instelt s3_garbage_collect
naar off
, die u kunt gebruiken voor het oplossen van problemen. Voor meer informatie, zie MAAK EEN MODEL.
Voor informatie over het gebruik van de SageMaker-console en: Amazon SageMaker Studio, Zie Bouw regressiemodellen met Amazon Redshift ML.
Conclusie
Amazon Redshift ML biedt het juiste platform voor databasegebruikers om modellen te maken, te trainen en af โโte stemmen met behulp van een SQL-interface. In dit bericht hebben we u uitgelegd hoe u een classificatiemodel met meerdere klassen kunt maken. We hopen dat u kunt profiteren van Amazon Redshift ML om waardevolle inzichten te verkrijgen.
Voor meer informatie over het bouwen van verschillende modellen met Amazon Redshift ML, zie: Bouw regressiemodellen met Amazon Redshift ML en lees de Amazon roodverschuiving ML-documentatie.
Dankwoord
Volgens de UCI Machine Learning Repository zijn deze gegevens beschikbaar gesteld door Dr. Daqing Chen, directeur van de Public Analytics-groep. chend '@' lsbu.ac.uk, School of Engineering, London South Bank University, London SE1 0AA, VK.
Dua, D. en Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: Universiteit van Californiรซ, School voor Informatie en Computerwetenschappen.
Over de auteurs
Phil Bates is een Senior Analytics Specialist Solutions Architect bij AWS met meer dan 25 jaar datawarehouse-ervaring.
Debu Panda, een hoofdproductmanager bij AWS, is een marktleider op het gebied van analyse-, applicatieplatform- en databasetechnologieรซn en heeft meer dan 25 jaar ervaring in de IT-wereld.
Nikos Koulouris is een Software Development Engineer bij AWS. Hij is gepromoveerd aan de Universiteit van Californiรซ, San Diego en heeft gewerkt op het gebied van databases en analyses.
Enrico Sartorello is Sr. Software Development Engineer bij Amazon Web Services. Hij helpt klanten bij het adopteren van machine learning-oplossingen die passen bij hun behoeften door nieuwe functionaliteiten voor Amazon SageMaker te ontwikkelen. In zijn vrije tijd volgt hij met passie zijn voetbalteam en werkt hij graag aan zijn kookkunsten.
- '
- 100
- 11
- 2019
- 2021
- 7
- toegang
- actieve
- Voordeel
- Amazone
- Amazon Sage Maker
- Amazon Web Services
- analytics
- Aanvraag
- automatische piloot
- AWS
- Bank
- BEST
- Blog
- bouw
- Gebouw
- bedrijfsdeskundigen
- Californiรซ
- verzorging
- classificatie
- code
- Computer Science
- inhoud
- koken
- Wij creรซren
- Klantenbinding
- Klanten
- gegevens
- gegevensset
- datawarehouse
- Database
- databanken
- Ontwikkeling
- Director
- ingenieur
- Engineering
- Milieu
- geschikt
- functie
- goed
- Groep
- hier
- Hoe
- How To
- HTTPS
- IAM
- ICS
- Identiteit
- Inclusief
- -industrie
- marktleider
- informatie
- inzichten
- IT
- Jobomschrijving:
- mee
- leren
- laden
- London
- Loyaliteit
- Loyaliteitsprogramma
- machine learning
- Match
- Metriek
- ML
- model
- maanden
- nieuws
- online.
- platform
- precisie
- voorspelling
- Product
- Programma
- publiek
- Rauw
- ruwe data
- regressie
- kleinhandelaar
- lopen
- sagemaker
- verkoop
- heilige
- San Diego
- School
- Wetenschap
- -Series
- Diensten
- reeks
- Delen
- Eenvoudig
- ZES
- vaardigheden
- Voetbal
- Software
- software development
- Oplossingen
- OPLOSSEN
- Zuiden
- spleet
- Sport
- SQL
- gestart
- Statement
- mediaopslag
- geslaagd
- doelwit
- Technologies
- niet de tijd of
- Trainingen
- transactie
- Uk
- universiteit-
- University of California
- gebruikers
- waarde
- Bekijk
- Magazijn
- web
- webservices
- wereld
- jaar