Bu konuda bir şeyler yapmak için hala zaman varken belirli bir müşterinin çalkalanma riskinin yüksek olduğunu tahmin etme yeteneği, her çevrimiçi işletme için çok büyük bir potansiyel gelir kaynağını temsil eder. Sektöre ve iş hedefine bağlı olarak, sorun bildirimi çok katmanlı olabilir. Aşağıdakiler, bu stratejiye dayalı bazı iş hedefleridir:
Bu gönderi, uçtan uca bir kayıp tahmin modelini her adımda nasıl düzenleyebileceğinizi ele alıyor: veri hazırlama, temel model ve hiperparametre optimizasyonu (HPO), eğitim ve ayarlama ve en iyi modeli kaydetme. yönetebilirsiniz Amazon Adaçayı Yapıcı kullanarak eğitim ve çıkarım iş akışları Amazon SageMaker Stüdyosu ve SageMaker Python SDK. SageMaker, yüksek kaliteli veri bilimi çözümleri oluşturmak için ihtiyacınız olan tüm araçları sunar.
SageMaker, makine öğrenimi için özel olarak oluşturulmuş geniş bir dizi yeteneği bir araya getirerek veri bilimcilerin ve geliştiricilerin yüksek kaliteli makine öğrenimi (ML) modellerini hızlı bir şekilde hazırlamasına, oluşturmasına, eğitmesine ve devreye almasına yardımcı olur.
Studio, tüm makine öğrenimi geliştirme adımlarını gerçekleştirebileceğiniz, veri bilimi ekibi üretkenliğini 10 kata kadar artırabileceğiniz tek bir web tabanlı görsel arabirim sağlar.
Amazon SageMaker Ardışık Düzenleri doğrudan SageMaker entegrasyonundan yararlanan makine öğrenimi ardışık düzenleri oluşturmaya yönelik bir araçtır. Pipelines ile bir makine öğrenimi modeli oluşturma adımlarını kolayca otomatikleştirebilir, model kayıt defterinde modelleri kataloglayabilir ve uçtan uca sürekli entegrasyon ve sürekli teslimat (CI/CD) ayarlamak için SageMaker Projelerinde sağlanan çeşitli şablonlardan birini kullanabilirsiniz. - geniş ölçekte makine öğrenimi yaşam döngüsünü sonlandırın.
Model eğitildikten sonra, kullanabilirsiniz Amazon SageMaker Netleştirin önyargıyı belirleyip sınırlamak ve iş paydaşlarına tahminleri açıklamak. Bu otomatikleştirilmiş raporları, aşağı yönlü hedef kampanyalar için iş ve teknik ekiplerle paylaşabilir veya müşteri yaşam boyu değerini farklılaştıran temel özellikleri belirleyebilirsiniz.
Bu gönderinin sonunda, kendi tahmine dayalı analitik kullanım senaryonuzu eğitmek, ayarlamak ve dağıtmak için Pipelines kullanarak bu uçtan uca şablonu başarıyla kullanmak için yeterli bilgiye sahip olmalısınız. Talimatların tamamı şu adreste mevcuttur: GitHub repo.
Bu çözümde giriş noktanız, hızlı deneyler için Studio tümleşik geliştirme ortamıdır (IDE). Studio, uçtan uca Pipelines deneyimini yönetmek için bir ortam sunar. Studio ile şunları atlayabilirsiniz: AWS Yönetim Konsolu tüm iş akışı yönetiminiz için. Studio'dan Ardışık Düzenleri yönetme hakkında daha fazla bilgi için bkz. SageMaker Studio'da SageMaker İşlem Hatlarını Görüntüleme, İzleme ve Yürütme.
Aşağıdaki diyagram, veri bilimi iş akışının üst düzey mimarisini göstermektedir.
Studio etki alanını oluşturduktan sonra, kullanıcı adınızı seçin ve Stüdyo Aç. Kod, not defterleri, veri kümeleri, ayarlar veya proje klasörleri gibi ihtiyacınız olan her şeyi depolamanıza ve toplamanıza olanak tanıyan web tabanlı bir IDE açılır.
Pipelines doğrudan SageMaker ile entegredir, bu nedenle başka herhangi bir AWS hizmetiyle etkileşime girmeniz gerekmez. Ayrıca herhangi bir kaynağı yönetmenize gerek yoktur çünkü Pipelines tam olarak yönetilen bir hizmettir, yani sizin için kaynakları oluşturur ve yönetir. Studio'nun entegre bileşenleriyle birlikte her ikisi de bağımsız Python API'leri olan çeşitli SageMaker bileşenleri hakkında daha fazla bilgi için bkz. SageMaker hizmet sayfası.
Bu kullanım durumunda, tam otomatik model geliştirme süreci için aşağıdaki bileşenleri kullanırsınız:
Bir SageMaker ardışık düzeni, bir JSON ardışık düzen tanımı tarafından tanımlanan birbirine bağlı bir dizi adımdır. Bu ardışık düzen tanımı, yönlendirilmiş asiklik grafik (DAG) kullanan bir ardışık düzeni kodlar. Bu DAG, işlem hattınızın her adımı için gereksinimler ve aralarındaki ilişkiler hakkında bilgi verir. Bir ardışık düzenin DAG'sinin yapısı, adımlar arasındaki veri bağımlılıkları tarafından belirlenir. Bu veri bağımlılıkları, bir adımın çıktısının özellikleri başka bir adıma girdi olarak iletildiğinde oluşturulur.
Bu gönderi için kullanım durumumuz, belirli bir perakende mağazası için müşteriyi elde tutmayı artırmak için tüketici davranışına dayalı hangi çeşitli pazarlama stratejilerini benimseyebileceğimizi anlamayı amaçlayan klasik bir makine öğrenimi problemidir. Aşağıdaki diyagram, kayıp tahmini kullanım durumu için eksiksiz makine öğrenimi iş akışını göstermektedir.
Hızlandırılmış makine öğrenimi iş akışı geliştirme sürecini ayrıntılı olarak inceleyelim.
Bu gönderiyi takip etmek için, indirmeniz ve kaydetmeniz gerekir. örnek veri kümesi varsayılan olarak Amazon Basit Depolama Hizmeti SageMaker oturumunuzla ilişkili (Amazon S3) klasöründe ve seçtiğiniz S3 grubunda. Hızlı deneme veya temel model oluşturma için, veri kümesinin bir kopyasını ana dizininizin altına kaydedebilirsiniz. Amazon Elastik Dosya Sistemi (Amazon EFS) ve Jupyter not defterini takip edin Customer_Churn_Modeling.ipynb
.
Aşağıdaki ekran görüntüsü, müşterinin aktif olduğu varsayılırsa 1 veya aksi takdirde 0 olarak tutulan hedef değişkenli örnek kümeyi gösterir.
Veri kümesini önceden işlemek ve kendi S3 klasörünüze yüklemek için bir Studio not defterinde aşağıdaki kodu çalıştırın:
import boto3
import pandas as pd
import numpy as np ## Preprocess the dataset
def preprocess_data(file_path): df = pd.read_csv(file_path) ## Convert to datetime columns df["firstorder"]=pd.to_datetime(df["firstorder"],errors='coerce') df["lastorder"] = pd.to_datetime(df["lastorder"],errors='coerce') ## Drop Rows with null values df = df.dropna() ## Create Column which gives the days between the last order and the first order df["first_last_days_diff"] = (df['lastorder']-df['firstorder']).dt.days ## Create Column which gives the days between when the customer record was created and the first order df['created'] = pd.to_datetime(df['created']) df['created_first_days_diff']=(df['created']-df['firstorder']).dt.days ## Drop Columns df.drop(['custid','created','firstorder','lastorder'],axis=1,inplace=True) ## Apply one hot encoding on favday and city columns df = pd.get_dummies(df,prefix=['favday','city'],columns=['favday','city']) return df ## Set the required configurations
model_name = "churn_model"
env = "dev"
## S3 Bucket
default_bucket = "customer-churn-sm-pipeline"
## Preprocess the dataset
storedata = preprocess_data(f"s3://{default_bucket}/data/storedata_total.csv")
Esnek bilgi işlem özelliğine sahip Studio not defterleri ile artık birden çok eğitim ve ayar işini kolayca çalıştırabilirsiniz. Bu kullanım durumu için, SageMaker yerleşik XGBoost algoritmasını ve SageMaker HPO'yu aşağıdaki gibi objektif işlevle kullanırsınız: "binary:logistic"
ve "eval_metric":"auc"
.
def split_datasets(df): y=df.pop("retained") X_pre = df y_pre = y.to_numpy().reshape(len(y),1) feature_names = list(X_pre.columns) X= np.concatenate((y_pre,X_pre),axis=1) np.random.shuffle(X) train,validation,test=np.split(X,[int(.7*len(X)),int(.85*len(X))]) return feature_names,train,validation,test # Split dataset
feature_names,train,validation,test = split_datasets(storedata) # Save datasets in Amazon S3
pd.DataFrame(train).to_csv(f"s3://{default_bucket}/data/train/train.csv",header=False,index=False)
pd.DataFrame(validation).to_csv(f"s3://{default_bucket}/data/validation/validation.csv",header=False,index=False)
pd.DataFrame(test).to_csv(f"s3://{default_bucket}/data/test/test.csv",header=False,index=False)
Aşağıdaki kodla en iyi aday modeli eğitin, ayarlayın ve bulun:
Bir temel oluşturduktan sonra, Amazon SageMaker Hata Ayıklayıcısı çevrimdışı model analizi için. Hata ayıklayıcı, gerçek zamanlı ve çevrimdışı analiz için model eğitim sürecine otomatik olarak görünürlük sağlayan SageMaker içindeki bir yetenektir. Hata ayıklayıcı, eğitim sırasında gerçek zamanlı olarak ve eğitim tamamlandıktan sonra çevrimdışı olarak analiz edebileceğiniz dahili model durumunu periyodik aralıklarla kaydeder. Bu kullanım durumu için, açıklanabilirlik aracı SHAP'ı (SHapley Additive açıklama) ve SHAP'ın Debugger ile yerel entegrasyonunu kullanırsınız. Aşağıdakilere bakın defter detaylı analiz için.
Aşağıdaki özet grafik, yordayıcıların hedef değişkenle pozitif ve negatif ilişkilerini açıklamaktadır. Örneğin, buradaki en üstteki değişken, esent
, gönderilen e-posta sayısı olarak tanımlanır. Bu çizim, eğitim setindeki tüm veri noktalarından yapılmıştır. Mavi, nihai çıktının sınıf 0'a sürüklendiğini ve pembe, sınıf 1'i temsil eder. Etkileyen temel özellikler azalan düzende sıralanmıştır.
Artık makine öğrenimi iş akışının dağıtma ve yönetme adımına geçebilirsiniz.
İş akışını geliştirin ve otomatikleştirin
Proje yapısıyla başlayalım:
- /müşteri-kayıp-modeli - Proje Adı
- / veri – Veri kümesi
- /boru hatları – SageMaker ardışık düzen bileşenleri için kod
- SageMaker_Pipelines_project.ipynb – Makine öğrenimi iş akışını oluşturmanıza ve çalıştırmanıza olanak tanır
- Customer_Churn_Modeling.ipynb – Temel model geliştirme not defteri
Altında <project-name>/pipelines/customerchurn
, aşağıdaki Python betiklerini görebilirsiniz:
- önişlem.py – Özellik mühendisliği için SageMaker Processing ile entegre olur
- değerlendir.py – Model metrik hesaplamasına izin verir, bu durumda auc_score
- Generate_config.py – Model açıklanabilirliği için aşağı akış Clarify işi için gereken dinamik yapılandırmaya izin verir
- boru hattı.py – Pipelines ML iş akışı için şablonlaştırılmış kod
DAG'deki her adımı ve nasıl çalıştıklarını gözden geçirelim. Adımlar, verileri ilk hazırladığımız zamana benzer.
Aşağıdaki kodla veri hazırlığını gerçekleştirin:
En iyi aday modeli eğitin, ayarlayın ve bulun:
Ekleyebilirsiniz model ayarlama adımı (TuningStep) otomatik olarak bir hiperparametre ayarlama işini başlatan işlem hattında (aşağıdaki koda bakın). Hiperparametre ayarı, algoritmayı ve belirttiğiniz hiperparametre aralıklarını kullanarak veri kümesi üzerinde birçok eğitim işi çalıştırarak bir modelin en iyi sürümünü bulur. Daha sonra, modelin en iyi sürümünü RegisterModel adımını kullanarak model kaydına kaydedebilirsiniz.
Modeli ayarladıktan sonra, ayarlama işi hedefi ölçümlerine bağlı olarak iş akışını düzenlerken dallanma mantığını kullanabilirsiniz. Bu gönderi için, model kalite kontrolünün koşullu adımı aşağıdaki gibidir:
En iyi aday model, RegisterModel adımı kullanılarak toplu puanlama için kaydedilir:
Artık model eğitildiğine göre, Clarify'ın modellerin tahminlerini hangi özelliklere dayandırdığını anlamamıza nasıl yardımcı olduğunu görelim. oluşturabilirsiniz analysis_config.json
kullanılarak iş akışı çalıştırması başına dinamik olarak dosyalanır. generate_config.py
Yarar. Yapılandırma dosyasını işlem hattına göre sürümlendirebilir ve izleyebilirsiniz. runId
ve daha fazla referans için Amazon S3'te saklayın. Başlat dataconfig
ve modelconfig
dosyalar şu şekilde:
Netleştir adımını kullanarak bir son işleme işi olarak ekledikten sonra sagemaker.clarify.SageMakerClarifyProcessor
işlem hattında, işlem hattı çalıştırması başına ayrıntılı bir özellik ve sapma analizi raporu görebilirsiniz.
Ardışık düzen iş akışının son adımı olarak, TransformStep
çevrimdışı puanlama için adım. geçmek transformer instance
ve TransformInput
ile batch_data
daha önce tanımlanan ardışık düzen parametresi:
Son olarak, seçerek yeni bir boru hattı çalıştırmasını tetikleyebilirsiniz. Yürütmeyi başlat Studio IDE arabiriminde.
Aşağıdakileri kullanarak bir işlem hattı çalıştırmasını tanımlayabilir veya işlem hattını başlatabilirsiniz. defter. Aşağıdaki ekran görüntüsü çıktımızı göstermektedir.
SageMaker model oluşturma ardışık düzen çalıştırmalarınızı şunu kullanarak planlayabilirsiniz: Amazon EventBridge. SageMaker model oluşturma ardışık düzenleri desteklenir Amazon EventBridge'de hedef olarak. Bu, olay veriyolunuzdaki herhangi bir olayı temel alarak ardışık düzeninizi çalışacak şekilde tetiklemenizi sağlar. EventBridge, işlem hattı çalıştırmalarınızı otomatikleştirmenize ve eğitim işi veya uç nokta durum değişiklikleri gibi olaylara otomatik olarak yanıt vermenize olanak tanır. Etkinlikler arasında S3 klasörünüze yüklenen yeni bir dosya, sürüklenme nedeniyle SageMaker uç noktanızın durumundaki bir değişiklik ve Amazon Basit Bildirim Servisi (Amazon SNS) konuları.
Sonuç
Bu gönderi, kayıp tahmini için en iyi aday modeli geliştirmek, yinelemek ve devreye almak için SageMaker Pipelines'ın diğer yerleşik SageMaker özellikleri ve XGBoost algoritmasıyla nasıl kullanılacağını açıkladı. Bu çözümü uygulamaya ilişkin yönergeler için bkz. GitHub repo. Ayrıca bu çözümü, model yeniden eğitimi için ek veri kaynaklarıyla klonlayabilir ve genişletebilirsiniz. AWS hesap yöneticinize ulaşıp makine öğrenimi kullanım durumlarınızı tartışmanızı öneririz.
Ek referanslar
Ek bilgi için aşağıdaki kaynaklara bakın:
Yazarlar Hakkında
Gayatri Ganakota AWS Profesyonel Hizmetlerine sahip bir Makine Öğrenimi Mühendisidir. Çeşitli alanlarda AI/ML çözümleri geliştirme, dağıtma ve açıklama konusunda tutkulu. Bu rolden önce, finans ve perakende alanındaki en iyi küresel firmalarda bir veri bilimcisi ve makine öğrenimi mühendisi olarak çok sayıda girişime liderlik etti. Boulder Colorado Üniversitesi'nden Veri Bilimi alanında uzmanlaşmış Bilgisayar Bilimi alanında yüksek lisans derecesine sahiptir.
Sarita Joshi perakende, sigorta, üretim, seyahat, yaşam bilimleri, medya ve eğlence ve finansal hizmetler dahil olmak üzere sektörlerdeki müşterileri desteklemeye odaklanan AWS Profesyonel Hizmetlerinde Kıdemli Veri Bilimcisidir. Yapay zeka, makine öğrenimi, analitik ve SAP dahil olmak üzere birçok sektörde ve teknik alanda müşterilere danışmanlık hizmeti veren bir danışman olarak birkaç yıllık deneyime sahiptir. Bugün, büyük ölçekte makine öğrenimi ve yapay zeka çözümleri geliştirmek ve uygulamak için müşterilerle tutkuyla çalışıyor.
- "
- 100
- 107
- 39
- Hesap
- aktif
- Ek
- avantaj
- AI
- algoritma
- Türkiye
- Alfa
- Amazon
- Amazon Adaçayı Yapıcı
- analiz
- analytics
- API'ler
- mimari
- Otomatik
- AWS
- Temel
- İYİ
- inşa etmek
- bina
- otobüs
- iş
- Kampanyalar
- durumlarda
- değişiklik
- Şehir
- istemciler
- kod
- Colorado
- Sütun
- hesaplamak
- Bilgisayar Bilimleri
- danışman
- tüketici
- tüketici davranışları
- Konteyner
- Müşteri tutma
- Müşteriler
- DAG
- veri
- veri bilimi
- veri bilimcisi
- teslim
- ayrıntı
- dev
- geliştirmek
- geliştiriciler
- gelişme
- etki
- Damla
- Son nokta
- mühendis
- Mühendislik
- Entertainment
- çevre
- Etkinlikler
- olaylar
- infaz
- deneyim
- Açıklanabilirlik
- Özellikler(Hazırlık aşamasında)
- Özellikler
- mali
- finansal hizmetler
- bulur
- Ad
- takip et
- tam
- işlev
- Küresel
- okuyun
- Yüksek
- Ana Sayfa
- Ne kadar
- Nasıl Yapılır
- HTTPS
- Kocaman
- belirlemek
- Dahil olmak üzere
- Artırmak
- Endüstri
- sanayi
- bilgi
- sigorta
- bütünleşme
- IT
- İş
- Mesleki Öğretiler
- Jupyter Not Defteri
- anahtar
- büyük
- öğrenme
- Led
- Yaşam Bilimleri
- makine öğrenme
- yönetim
- üretim
- Pazarlama
- medya
- orta
- Metrikleri
- ML
- model
- dizüstü bilgisayarlar
- tebliğ
- Teklifler
- Online
- Online İş
- açılır
- sipariş
- Diğer
- tahmin
- Tahminler
- Akıllı Analytics
- verimlilik
- proje
- Projeler
- Python
- kalite
- hazır olma
- gerçek zaman
- İlişkiler
- rapor
- Raporlar
- Yer Alan Kurallar
- Kaynaklar
- Sonuçlar
- perakende
- yeniden eğitme
- gelir
- Risk
- koşmak
- koşu
- sagemaker
- özsu
- ölçek
- Bilim
- BİLİMLERİ
- bilim adamları
- sdk
- Dizi
- Hizmetler
- set
- paylaş
- Basit
- So
- Çözümler
- uzay
- bölmek
- başlama
- Eyalet
- Açıklama
- Durum
- hafızası
- mağaza
- Stratejileri
- destekli
- Hedef
- Teknik
- test
- zaman
- üst
- Konular
- iz
- Eğitim
- Dönüşüm
- seyahat
- üniversite
- us
- yarar
- değer
- görünürlük
- içinde
- iş akışı
- X
- yıl