Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εκπαιδεύστε μοντέλα μηχανικής εκμάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων

Πολλές εφαρμογές που προορίζονται για τη συντήρηση βιομηχανικού εξοπλισμού, την παρακολούθηση του εμπορίου, τη διαχείριση στόλου και τη βελτιστοποίηση διαδρομής έχουν δημιουργηθεί χρησιμοποιώντας ανοιχτού κώδικα Cassandra API και προγράμματα οδήγησης για την επεξεργασία δεδομένων σε υψηλές ταχύτητες και χαμηλή καθυστέρηση. Η διαχείριση των τραπεζιών Cassandra μόνοι σας μπορεί να είναι χρονοβόρα και δαπανηρή. Amazon Keyspace (για Apache Cassandra) σας επιτρέπει να ρυθμίζετε, να ασφαλίζετε και να κλιμακώνετε πίνακες Cassandra στο AWS Cloud χωρίς να διαχειρίζεστε πρόσθετη υποδομή.

Σε αυτήν την ανάρτηση, θα σας καθοδηγήσουμε στις Υπηρεσίες AWS που σχετίζονται με την εκπαίδευση μοντέλων μηχανικής εκμάθησης (ML) που χρησιμοποιούν Amazon Keyspace σε υψηλό επίπεδο και θα παρέχουμε οδηγίες βήμα προς βήμα για την απορρόφηση δεδομένων από το Amazon Keyspaces στο Amazon Sage Maker και εκπαίδευση ενός μοντέλου που μπορεί να χρησιμοποιηθεί για μια συγκεκριμένη περίπτωση χρήσης τμηματοποίησης πελατών.

Το AWS διαθέτει πολλές υπηρεσίες για να βοηθήσει τις επιχειρήσεις να εφαρμόσουν διαδικασίες ML στο cloud.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το AWS ML Stack έχει τρία επίπεδα. Στο μεσαίο στρώμα είναι SageMaker, το οποίο παρέχει σε προγραμματιστές, επιστήμονες δεδομένων και μηχανικούς ML τη δυνατότητα να δημιουργούν, να εκπαιδεύουν και να αναπτύσσουν μοντέλα ML σε κλίμακα. Καταργεί την πολυπλοκότητα από κάθε βήμα της ροής εργασίας ML, ώστε να μπορείτε να αναπτύξετε πιο εύκολα τις περιπτώσεις χρήσης ML. Αυτό περιλαμβάνει οτιδήποτε, από την προγνωστική συντήρηση μέχρι την όραση υπολογιστή για την πρόβλεψη της συμπεριφοράς των πελατών. Οι πελάτες επιτυγχάνουν έως και 10 φορές βελτίωση στην παραγωγικότητα των επιστημόνων δεδομένων με το SageMaker.

Το Apache Cassandra είναι μια δημοφιλής επιλογή για περιπτώσεις βαριάς χρήσης με μη δομημένα ή ημι-δομημένα δεδομένα. Για παράδειγμα, μια δημοφιλής επιχείρηση παράδοσης τροφίμων υπολογίζει τον χρόνο παράδοσης και ένας πελάτης λιανικής θα μπορούσε να συνεχίσει να χρησιμοποιεί συχνά πληροφορίες καταλόγου προϊόντων στη βάση δεδομένων Apache Cassandra. Amazon Keyspace είναι μια επεκτάσιμη, εξαιρετικά διαθέσιμη και διαχειριζόμενη υπηρεσία βάσης δεδομένων συμβατή με το Apache Cassandra χωρίς διακομιστή. Δεν χρειάζεται να παρέχετε, να επιδιορθώσετε ή να διαχειριστείτε διακομιστές και δεν χρειάζεται να εγκαταστήσετε, να διατηρήσετε ή να χειριστείτε λογισμικό. Οι πίνακες μπορούν να αυξηθούν και να μειωθούν αυτόματα και πληρώνετε μόνο για τους πόρους που χρησιμοποιείτε. Το Amazon Keyspace σάς επιτρέπει να εκτελείτε τους φόρτους εργασίας Cassandra στο AWS χρησιμοποιώντας τον ίδιο κώδικα εφαρμογής Cassandra και τα ίδια εργαλεία προγραμματιστή που χρησιμοποιείτε σήμερα.

Το SageMaker παρέχει μια σουίτα από ενσωματωμένοι αλγόριθμοι για να βοηθήσει τους επιστήμονες δεδομένων και τους επαγγελματίες ML να ξεκινήσουν να εκπαιδεύονται και να αναπτύσσουν γρήγορα μοντέλα ML. Σε αυτήν την ανάρτηση, θα σας δείξουμε πώς ένας πελάτης λιανικής μπορεί να χρησιμοποιήσει το ιστορικό αγορών πελατών στη βάση δεδομένων Keyspace και να στοχεύσει διαφορετικά τμήματα πελατών για καμπάνιες μάρκετινγκ.

Κ-μέσα είναι ένας αλγόριθμος μάθησης χωρίς επίβλεψη. Προσπαθεί να βρει διακριτές ομαδοποιήσεις μέσα στα δεδομένα, όπου τα μέλη μιας ομάδας είναι όσο το δυνατόν πιο παρόμοια μεταξύ τους και όσο το δυνατόν διαφορετικά από τα μέλη άλλων ομάδων. Ορίζετε τα χαρακτηριστικά που θέλετε να χρησιμοποιεί ο αλγόριθμος για να προσδιορίσει την ομοιότητα. Το SageMaker χρησιμοποιεί μια τροποποιημένη έκδοση του αλγόριθμος ομαδοποίησης κλίμακας ιστού k-means. Σε σύγκριση με την αρχική έκδοση του αλγορίθμου, η έκδοση που χρησιμοποιείται από το SageMaker είναι πιο ακριβής. Ωστόσο, όπως ο αρχικός αλγόριθμος, κλιμακώνεται σε τεράστια σύνολα δεδομένων και προσφέρει βελτιώσεις στον χρόνο εκπαίδευσης.

Επισκόπηση λύσεων

Οι οδηγίες προϋποθέτουν ότι θα χρησιμοποιούσατε το SageMaker Studio για να εκτελέσετε τον κώδικα. Ο συσχετισμένος κώδικας έχει κοινοποιηθεί στις Δείγμα AWS GitHub. Ακολουθώντας τις οδηγίες στο εργαστήριο, μπορείτε να κάνετε τα εξής:

  • Εγκαταστήστε τις απαραίτητες εξαρτήσεις.
  • Συνδεθείτε στο Amazon Keyspace, δημιουργήστε έναν Πίνακα και απορροφήστε δείγματα δεδομένων.
  • Δημιουργήστε ένα μοντέλο ταξινόμησης ML χρησιμοποιώντας τα δεδομένα στο Amazon Keyspace.
  • Εξερευνήστε τα αποτελέσματα του μοντέλου.
  • Εκκαθάριση πόρων που δημιουργήθηκαν πρόσφατα.

Μόλις ολοκληρωθεί, θα έχετε ενσωματώσει το SageMaker με το Amazon Keyspace για να εκπαιδεύσετε μοντέλα ML όπως φαίνεται στην παρακάτω εικόνα.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Τώρα μπορείτε να ακολουθήσετε το οδηγίες βήμα προς βήμα σε αυτήν την ανάρτηση για την απορρόφηση ακατέργαστων δεδομένων που είναι αποθηκευμένα στο Amazon Keyspace χρησιμοποιώντας το SageMaker και τα δεδομένα που ανακτώνται έτσι για επεξεργασία ML.

Προϋποθέσεις

Πρώτα, μεταβείτε στο SageMaker.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε το SageMaker, επιλέξτε Ξεκινήστε Τώρα.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, επιλέξτε Ρυθμίστε τον τομέα SageMaker.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, δημιουργήστε ένα νέο προφίλ χρήστη με Όνομα – σοφός χρήστης, και επιλέξτε Δημιουργία νέου ρόλου στο Προεπιλεγμένος ρόλος εκτέλεσης υποενότητα.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, στην οθόνη που εμφανίζεται, επιλέξτε οποιοδήποτε Υπηρεσία απλής αποθήκευσης Amazon (Amazon S3) κουβά και επιλέξτε Δημιουργία ρόλου.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αυτός ο ρόλος θα χρησιμοποιηθεί στα ακόλουθα βήματα για να επιτραπεί στο SageMaker να αποκτήσει πρόσβαση στον πίνακα Keyspace χρησιμοποιώντας προσωρινά διαπιστευτήρια από τον ρόλο. Αυτό εξαλείφει την ανάγκη αποθήκευσης ονόματος χρήστη και κωδικού πρόσβασης στο σημειωματάριο.

Στη συνέχεια, ανακτήστε το ρόλο που σχετίζεται με το σοφός χρήστης που δημιουργήθηκε στο προηγούμενο βήμα από την ενότητα σύνοψης.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, μεταβείτε στο Κονσόλα AWS και κοίτα ψηλά AWS Identity and Access Management (IAM). Μέσα στο IAM, μεταβείτε στους ρόλους. Μέσα στο Roles, αναζητήστε τον ρόλο εκτέλεσης που προσδιορίστηκε στο προηγούμενο βήμα.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, επιλέξτε τον ρόλο που προσδιορίστηκε στο προηγούμενο βήμα και επιλέξτε Προσθήκη δικαιωμάτων. Στο αναπτυσσόμενο μενού που εμφανίζεται, επιλέξτε Create Inline Policy. Το SageMaker σάς επιτρέπει να παρέχετε ένα αναλυτικό επίπεδο πρόσβασης που περιορίζει τις ενέργειες που μπορεί να εκτελέσει ένας χρήστης/εφαρμογή βάσει των επιχειρηματικών απαιτήσεων.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, επιλέξτε την καρτέλα JSON και αντιγράψτε την πολιτική από την ενότητα Σημείωση του Github σελίδα. Αυτή η πολιτική επιτρέπει στο σημειωματάριο SageMaker να συνδέεται με Keyspace και να ανακτά δεδομένα για περαιτέρω επεξεργασία.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, επιλέξτε ξανά Προσθήκη δικαιωμάτων και από το αναπτυσσόμενο μενού και επιλέξτε Επισύναψη πολιτικής.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αναζητήστε την πολιτική AmazonKeyspacesFullAccess και επιλέξτε το πλαίσιο ελέγχου δίπλα στο αποτέλεσμα που ταιριάζει και επιλέξτε Επισύναψη πολιτικών.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βεβαιωθείτε ότι η ενότητα πολιτικών δικαιωμάτων περιλαμβάνει AmazonS3FullAccess, AmazonSageMakerFullAccess, AmazonKeyspacesFullAccess, καθώς και την πολιτική που προστέθηκε πρόσφατα.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, μεταβείτε στο SageMaker Studio χρησιμοποιώντας την Κονσόλα AWS και επιλέξτε το SageMaker Studio. Μόλις φτάσετε εκεί, επιλέξτε Εκκίνηση εφαρμογής και επιλέξτε Studio.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Περίληψη σημειωματάριων

Ο προτιμώμενος τρόπος σύνδεσης στο Keyspace από το SageMaker Notebook είναι η χρήση Διαδικασία AWS Signature Version 4 (SigV4) βασίζονται Προσωρινά Διαπιστευτήρια για έλεγχο ταυτότητας. Σε αυτό το σενάριο, ΔΕΝ χρειάζεται να δημιουργήσουμε ή να αποθηκεύσουμε διαπιστευτήρια Keyspace και μπορούμε να χρησιμοποιήσουμε τα διαπιστευτήρια για έλεγχο ταυτότητας με την προσθήκη SigV4. Τα προσωρινά διαπιστευτήρια ασφαλείας αποτελούνται από ένα αναγνωριστικό κλειδιού πρόσβασης και ένα μυστικό κλειδί πρόσβασης. Ωστόσο, περιλαμβάνουν επίσης ένα διακριτικό ασφαλείας που υποδεικνύει πότε λήγουν τα διαπιστευτήρια. Σε αυτήν την ανάρτηση, θα δημιουργήσουμε έναν ρόλο IAM και θα δημιουργήσουμε προσωρινά διαπιστευτήρια ασφαλείας.

Αρχικά, εγκαθιστούμε ένα πρόγραμμα οδήγησης (cassandra-sigv4). Αυτό το πρόγραμμα οδήγησης σάς δίνει τη δυνατότητα να προσθέσετε πληροφορίες ελέγχου ταυτότητας στα αιτήματά σας API χρησιμοποιώντας τη διαδικασία AWS Signature Version 4 (SigV4). Χρησιμοποιώντας την προσθήκη, μπορείτε να παρέχετε σε χρήστες και εφαρμογές βραχυπρόθεσμα διαπιστευτήρια για πρόσβαση στο Amazon Keyspace (για Apache Cassandra) χρησιμοποιώντας χρήστες και ρόλους IAM. Μετά από αυτό, θα εισαγάγετε ένα απαιτούμενο πιστοποιητικό μαζί με πρόσθετες εξαρτήσεις πακέτου. Στο τέλος, θα επιτρέψετε στο σημειωματάριο να αναλάβει τον ρόλο για να μιλήσει στο Keyspace.

# Install missing packages and import dependencies
# Installing Cassandra SigV4
%pip install cassandra-sigv4 # Get Security certificate
!curl https://certs.secureserver.net/repository/sf-class2-root.crt -O # Import
from sagemaker import get_execution_role
from cassandra.cluster import Cluster
from ssl import SSLContext, PROTOCOL_TLSv1_2, CERT_REQUIRED
from cassandra_sigv4.auth import SigV4AuthProvider
import boto3 import pandas as pd
from pandas import DataFrame import csv
from cassandra import ConsistencyLevel
from datetime import datetime
import time
from datetime import timedelta import pandas as pd
import datetime as dt
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler # Getting credentials from the role
client = boto3.client("sts") # Get notebook Role
role = get_execution_role()
role_info = {"RoleArn": role, "RoleSessionName": "session1"}
print(role_info) credentials = client.assume_role(**role_info)

Στη συνέχεια, συνδεθείτε στο Amazon Keyspace και διαβάστε δεδομένα συστήματος από το Keyspace στο Pandas DataFrame για να επικυρώσετε τη σύνδεση.

# Connect to Cassandra Database from SageMaker Notebook # using temporary credentials from the Role.
session = boto3.session.Session() ###
### You can also pass specific credentials to the session
###
#session = boto3.session.Session(
# aws_access_key_id=credentials["Credentials"]["AccessKeyId"],
# aws_secret_access_key=credentials["Credentials"]["SecretAccessKey"],
# aws_session_token=credentials["Credentials"]["SessionToken"],
#) region_name = session.region_name # Set Context
ssl_context = SSLContext(PROTOCOL_TLSv1_2)
ssl_context.load_verify_locations("sf-class2-root.crt")
ssl_context.verify_mode = CERT_REQUIRED auth_provider = SigV4AuthProvider(session)
keyspaces_host = "cassandra." + region_name + ".amazonaws.com" cluster = Cluster([keyspaces_host], ssl_context=ssl_context, auth_provider=auth_provider, port=9142)
session = cluster.connect() # Read data from Keyspaces system table. # Keyspaces is serverless DB so you don't have to create Keyspaces DB ahead of time.
r = session.execute("select * from system_schema.keyspaces") # Read Keyspaces row into Panda DataFrame
df = DataFrame(r)
print(df)

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, προετοιμάστε τα δεδομένα για εκπαίδευση στο σύνολο ακατέργαστων δεδομένων. Στο σημειωματάριο python που σχετίζεται με αυτήν την ανάρτηση, χρησιμοποιήστε ένα σύνολο δεδομένων λιανικής που έχετε λάβει από εδώ, και να το επεξεργαστείτε. Ο επιχειρηματικός μας στόχος, δεδομένου του συνόλου δεδομένων, είναι να ομαδοποιήσουμε τους πελάτες χρησιμοποιώντας ένα συγκεκριμένο μετρικό RFM κλήσεων. Το μοντέλο RFM βασίζεται σε τρεις ποσοτικούς παράγοντες:

  • Πρόσφατο: Πόσο πρόσφατα ένας πελάτης πραγματοποίησε μια αγορά.
  • Συχνότητα: Πόσο συχνά ένας πελάτης κάνει μια αγορά.
  • Νομισματική Αξία: Πόσα χρήματα ξοδεύει ένας πελάτης για αγορές.

Η ανάλυση RFM κατατάσσει αριθμητικά έναν πελάτη σε καθεμία από αυτές τις τρεις κατηγορίες, γενικά σε μια κλίμακα από το 1 έως το 5 (όσο μεγαλύτερος είναι ο αριθμός, τόσο καλύτερο το αποτέλεσμα). Ο «καλύτερος» πελάτης θα λάμβανε κορυφαία βαθμολογία σε κάθε κατηγορία. Θα χρησιμοποιήσουμε τη συνάρτηση διακριτοποίησης βάσει Quantile (qcut) των panda. Θα βοηθήσει στη διακριτοποίηση των τιμών σε κουβάδες ίσου μεγέθους με βάση ή με βάση τα ποσοστά δείγματος.

# Prepare Data
r = session.execute("select * from " + keyspaces_schema + ".online_retail") df = DataFrame(r)
df.head(100) df.count()
df["description"].nunique()
df["totalprice"] = df["quantity"] * df["price"]
df.groupby("invoice").agg({"totalprice": "sum"}).head() df.groupby("description").agg({"price": "max"}).sort_values("price", ascending=False).head()
df.sort_values("price", ascending=False).head()
df["country"].value_counts().head()
df.groupby("country").agg({"totalprice": "sum"}).sort_values("totalprice", ascending=False).head() returned = df[df["invoice"].str.contains("C", na=False)]
returned.sort_values("quantity", ascending=True).head() df.isnull().sum()
df.dropna(inplace=True)
df.isnull().sum()
df.dropna(inplace=True)
df.isnull().sum()
df.describe([0.05, 0.01, 0.25, 0.50, 0.75, 0.80, 0.90, 0.95, 0.99]).T
df.drop(df.loc[df["customer_id"] == ""].index, inplace=True) # Recency Metric
import datetime as dt today_date = dt.date(2011, 12, 9)
df["customer_id"] = df["customer_id"].astype(int) # create get the most recent invoice for each customer
temp_df = df.groupby("customer_id").agg({"invoice_date": "max"})
temp_df["invoice_date"] = temp_df["invoice_date"].astype(str)
temp_df["invoice_date"] = pd.to_datetime(temp_df["invoice_date"]).dt.date
temp_df["Recency"] = (today_date - temp_df["invoice_date"]).dt.days
recency_df = temp_df.drop(columns=["invoice_date"])
recency_df.head() # Frequency Metric
temp_df = df.groupby(["customer_id", "invoice"]).agg({"invoice": "count"})
freq_df = temp_df.groupby("customer_id").agg({"invoice": "count"})
freq_df.rename(columns={"invoice": "Frequency"}, inplace=True) # Monetary Metric
monetary_df = df.groupby("customer_id").agg({"totalprice": "sum"})
monetary_df.rename(columns={"totalprice": "Monetary"}, inplace=True)
rfm = pd.concat([recency_df, freq_df, monetary_df], axis=1) df = rfm
df["RecencyScore"] = pd.qcut(df["Recency"], 5, labels=[5, 4, 3, 2, 1])
df["FrequencyScore"] = pd.qcut(df["Frequency"].rank(method="first"), 5, labels=[1, 2, 3, 4, 5])
df["Monetary"] = df["Monetary"].astype(int)
df["MonetaryScore"] = pd.qcut(df["Monetary"], 5, labels=[1, 2, 3, 4, 5])
df["RFM_SCORE"] = ( df["RecencyScore"].astype(str) + df["FrequencyScore"].astype(str) + df["MonetaryScore"].astype(str)
)
seg_map = { r"[1-2][1-2]": "Hibernating", r"[1-2][3-4]": "At Risk", r"[1-2]5": "Can't Loose", r"3[1-2]": "About to Sleep", r"33": "Need Attention", r"[3-4][4-5]": "Loyal Customers", r"41": "Promising", r"51": "New Customers", r"[4-5][2-3]": "Potential Loyalists", r"5[4-5]": "Champions",
} df["Segment"] = df["RecencyScore"].astype(str) + rfm["FrequencyScore"].astype(str)
df["Segment"] = df["Segment"].replace(seg_map, regex=True)
df.head()
rfm = df.loc[:, "Recency":"Monetary"]
df.groupby("customer_id").agg({"Segment": "sum"}).head()

Σε αυτό το παράδειγμα, χρησιμοποιούμε CQL για την ανάγνωση εγγραφών από τον πίνακα Keyspace. Σε ορισμένες περιπτώσεις χρήσης ML, μπορεί να χρειαστεί να διαβάσετε τα ίδια δεδομένα από τον ίδιο πίνακα Keyspace πολλές φορές. Σε αυτήν την περίπτωση, θα συνιστούσαμε να αποθηκεύσετε τα δεδομένα σας σε έναν κάδο Amazon S3 για να αποφύγετε τυχόν πρόσθετα κόστοςδιαβάζει από το Amazon Keyspace. Ανάλογα με το σενάριο σας, μπορείτε επίσης να χρησιμοποιήσετε EMR Αμαζονίου προς την λαμβάνω τροφή ένα πολύ μεγάλο αρχείο Amazon S3 στο SageMaker.

## Optional Code to save Python DataFrame to S3
from io import StringIO # python3 (or BytesIO for python2) smclient = boto3.Session().client('sagemaker')
sess = sagemaker.Session()
bucket = sess.default_bucket() # Set a default S3 bucket
print(bucket) csv_buffer = StringIO()
df.to_csv(csv_buffer)
s3_resource = boto3.resource('s3')
s3_resource.Object(bucket, ‘out/saved_online_retail.csv').put(Body=csv_buffer.getvalue())

Στη συνέχεια, εκπαιδεύουμε ένα μοντέλο ML χρησιμοποιώντας τον αλγόριθμο KMeans και βεβαιωνόμαστε ότι έχουν δημιουργηθεί τα συμπλέγματα. Σε αυτό το συγκεκριμένο σενάριο, θα δείτε ότι οι δημιουργημένες συστάδες εκτυπώνονται, δείχνοντας ότι οι πελάτες στο σύνολο των πρωτογενών δεδομένων έχουν ομαδοποιηθεί με βάση διάφορα χαρακτηριστικά στο σύνολο δεδομένων. Αυτές οι πληροφορίες συμπλέγματος μπορούν να χρησιμοποιηθούν για στοχευμένες καμπάνιες μάρκετινγκ.

# Training sc = MinMaxScaler((0, 1))
df = sc.fit_transform(rfm) # Clustering
kmeans = KMeans(n_clusters=6).fit(df) # Result
segment = kmeans.labels_ # Visualize the clusters
import matplotlib.pyplot as plt final_df = pd.DataFrame({"customer_id": rfm.index, "Segment": segment})
bucket_data = final_df.groupby("Segment").agg({"customer_id": "count"}).head()
index_data = final_df.groupby("Segment").agg({"Segment": "max"}).head()
index_data["Segment"] = index_data["Segment"].astype(int)
dataFrame = pd.DataFrame(data=bucket_data["customer_id"], index=index_data["Segment"])
dataFrame.rename(columns={"customer_id": "Total Customers"}).plot.bar( rot=70, title="RFM clustering"
)
# dataFrame.plot.bar(rot=70, title="RFM clustering");
plt.show(block=True);

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

(Προαιρετικό) Στη συνέχεια, αποθηκεύουμε τα τμήματα πελατών που έχουν προσδιοριστεί από το μοντέλο ML σε έναν πίνακα Amazon Keyspace για στοχευμένο μάρκετινγκ. Μια ομαδική εργασία θα μπορούσε να διαβάσει αυτά τα δεδομένα και να εκτελέσει στοχευμένες καμπάνιες σε πελάτες σε συγκεκριμένα τμήματα.

# Create ml_clustering_results table to store results createTable = """CREATE TABLE IF NOT EXISTS %s.ml_clustering_results ( run_id text, segment int, total_customers int, run_date date, PRIMARY KEY (run_id, segment)); """
cr = session.execute(createTable % keyspaces_schema)
time.sleep(20)
print("Table 'ml_clustering_results' created") insert_ml = ( "INSERT INTO " + keyspaces_schema + '.ml_clustering_results' + '("run_id","segment","total_customers","run_date") ' + 'VALUES (?,?,?,?); '
) prepared = session.prepare(insert_ml)
prepared.consistency_level = ConsistencyLevel.LOCAL_QUORUM run_id = "101"
dt = datetime.now() for ind in dataFrame.index: print(ind, dataFrame['customer_id'][ind]) r = session.execute( prepared, ( run_id, ind, dataFrame['customer_id'][ind], dt, ), )

Τέλος, εμείς καθαρίσει τους πόρους δημιουργήθηκε κατά τη διάρκεια αυτού του σεμιναρίου για να αποφευχθεί η επιβάρυνση πρόσθετων χρεώσεων.

# Delete blog keyspace and tables
deleteKeyspace = "DROP KEYSPACE IF EXISTS blog"
dr = session.execute(deleteKeyspace) time.sleep(5)
print("Dropping %s keyspace. It may take a few seconds to a minute to complete deletion keyspace and table." % keyspaces_schema )

Μπορεί να χρειαστούν μερικά δευτερόλεπτα έως ένα λεπτό για να ολοκληρωθεί η διαγραφή του χώρου πλήκτρων και των πινάκων. Όταν διαγράφετε ένα keyspace, το keyspace και όλοι οι πίνακες του διαγράφονται και σταματάτε να συγκεντρώνετε χρεώσεις από αυτά.

Συμπέρασμα

Αυτή η ανάρτηση σάς έδειξε πώς να λαμβάνετε δεδομένα πελατών από το Amazon Keyspace στο SageMaker και να εκπαιδεύετε ένα μοντέλο ομαδοποίησης που σας επιτρέπει να τμηματοποιείτε πελάτες. Θα μπορούσατε να χρησιμοποιήσετε αυτές τις πληροφορίες για στοχευμένο μάρκετινγκ, βελτιώνοντας έτσι σημαντικά τους KPI της επιχείρησής σας. Για να μάθετε περισσότερα σχετικά με το Amazon Keyspace, διαβάστε τους παρακάτω πόρους:


Σχετικά με τους Συγγραφείς

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Βαντίμ Λιάκοβιτς είναι Ανώτερος Αρχιτέκτονας Λύσεων στο AWS στην περιοχή του κόλπου του Σαν Φρανσίσκο που βοηθά τους πελάτες να μεταναστεύσουν στο AWS. Συνεργάζεται με οργανισμούς που κυμαίνονται από μεγάλες επιχειρήσεις έως μικρές νεοφυείς επιχειρήσεις για να υποστηρίξει τις καινοτομίες τους. Βοηθά επίσης τους πελάτες να αρχιτεκτονήσουν επεκτάσιμες, ασφαλείς και οικονομικά αποδοτικές λύσεις στο AWS.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Parth Patel είναι αρχιτέκτονας λύσεων στο AWS στην περιοχή του κόλπου του Σαν Φρανσίσκο. Το Parth καθοδηγεί τους πελάτες να επιταχύνουν το ταξίδι τους στο cloud και να τους βοηθήσει να υιοθετήσουν με επιτυχία το AWS cloud. Επικεντρώνεται στην ML και τον Εκσυγχρονισμό Εφαρμογών.

Εκπαιδεύστε μοντέλα μηχανικής μάθησης χρησιμοποιώντας το Amazon Keyspace ως πηγή δεδομένων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ραμ Παθανγκί είναι αρχιτέκτονας λύσεων στο AWS στην περιοχή του κόλπου του Σαν Φρανσίσκο. Έχει βοηθήσει πελάτες σε κλάδους Γεωργίας, Ασφαλίσεων, Τραπεζικών Υπηρεσιών, Λιανικής, Υγείας & Επιστημών Ζωής, Φιλοξενίας και Hi-Tech να τρέξουν με επιτυχία την επιχείρησή τους στο AWS cloud. Ειδικεύεται σε Βάσεις Δεδομένων, Analytics και ML.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS