Amazon SageMaker Autopilot ile otomatik olarak
makine öğrenimi modeli oluşturma
Amazon SageMaker, her geliştiriciye ve veri bilimcisine makine öğrenimi (ML) modellerini hızla geliştirme, eğitme ve dağıtma kabiliyeti sunan, tam olarak yönetilen bir hizmettir.
Bu öğreticide, kod satırı yazmadan otomatik olarak makine öğrenimi modelleri oluşturacaksınız! Tam kontrol ve görünürlük sağlarken en iyi sınıflandırma ve regresyon makine öğrenimi modellerini otomatik olarak oluşturan bir AutoML özelliği olan Amazon SageMaker Autopilot'ı kullanacaksınız.
Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:
- Bir AWS Hesabı oluşturun
- Amazon SageMaker Autopilot'a erişmek için Amazon SageMaker Studio ayarlama
- Amazon SageMaker Studio kullanarak genel veri kümesi indirme
- Amazon SageMaker Autopilot ile eğitim deneyi oluşturma
- Eğitim deneyinin farklı aşamalarını keşfetme
- Eğitim deneyinden en iyi performanslı modeli tanımlama ve dağıtma
- Dağıttığınız modeli tahmin etme
Bu öğretici için bir bankada çalışan bir geliştirici rolünü üstleneceksiniz. Müşterinin para yatırma sertifikasına (CD) kaydolup kaydolmayacağını tahmin etmek için bir makine öğrenimi modeli geliştirmeniz istenmiştir. Bu model, müşteri demografik bilgileri, pazarlama etkinliklerine verilen yanıtlar ve dış faktörler hakkında bilgileri içeren pazarlama veri seti üzerinde eğitilecektir.
Bu Öğretici Hakkında | |
---|---|
Süre | 10 dakika |
Maliyet | 10 USD'den az |
Kullanım Örneği | Machine Learning |
Ürünler | Amazon SageMaker |
Hedef Kitle | Geliştirici |
Seviye | Başlangıç Seviyesi |
Son Güncelleme | 12 Mayıs 2020 |
1. Adım. Bir AWS Hesabı oluşturun
Bu atölyenin maliyeti 10 USD'den azdır. Daha fazla bilgi için Amazon SageMaker Studio Fiyatlandırması bölümüne bakın.
Zaten bir hesabınız var mı? Oturum açın
2. Adım. Amazon SageMaker Studio ayarlama
Amazon SageMaker Autopilot'a erişmek üzere aşağıdaki Amazon SageMaker Studio'yu kullanmaya başlama adımlarını gerçekleştirin.
Not: Daha fazla bilgi için Amazon SageMaker belgelerindeki Amazon SageMaker Studio'yu Kullanmaya Başlayın bölümüne bakın.
a. Amazon SageMaker konsolunda oturum açın.
Not: Sağ üst köşede, Amazon SageMaker Studio'nun sunulduğu bir AWS Bölgesi seçtiğinizden emin olun. Bölge listesi için Amazon SageMaker Studio'yu Kullanmaya Başlama bölümüne bakın.
Amazon SageMaker, gerekli izinlerle bir rol oluşturur ve bunu bulut sunucunuza atar.
3. Adım. Veri kümesini indirme
Veri kümesini indirmek ve keşfetmek için aşağıdaki adımları uygulayın.
Not: Daha fazla bilgi için Amazon SageMaker belgelerindeki Amazon SageMaker Studio turu bölümüne bakın.
%%sh
apt-get install -y unzip
wget https://sagemaker-sample-data-us-west-2.s3-us-west-2.amazonaws.com/autopilot/direct_marketing/bank-additional.zip
unzip -o bank-additional.zip
d. Aşağıdaki kodu kopyalayıp yeni bir kod hücresine yapıştırın ve Çalıştır seçeneğini seçin.
CSV veri kümesi, ilk on satırı yükler ve görüntüler.
import pandas as pd
data = pd.read_csv('./bank-additional/bank-additional-full.csv')
data[:10]
Veri kümesi sütunlarından birinin adı y'dir ve her örneğin etiketini temsil eder: Bu müşteri teklifi kabul etti mi etmedi mi?
Bu adım, veri bilimcileri verileri keşfederek yeni özellikler oluşturmaya başladığı ve benzer işlemleri gerçekleştirdiği adımdır. Amazon SageMaker Autopilot ile bu ekstra adımların hiçbirini gerçekleştirmeniz gerekmez. tablo verilerini, virgülle ayrılmış değerler içeren bir dosyaya (örneğin bir elektronik tablo veya veritabanından) yükleyip tahmin edilecek hedef sütunu seçmeniz yeterlidir. Autopilot sizin için tahmine dayalı bir model oluşturur.
d. Aşağıdaki kodu kopyalayıp yeni bir kod hücresine yapıştırın ve Çalıştır seçeneğini seçin.
Bu adımda, CSV veri kümesi bir Amazon S3 klasörüne yüklenir. Amazon S3 klasörü oluşturmanız gerekmez. Amazon SageMaker, siz verileri yüklediğinizde otomatik olarak hesabınızda varsayılan bir klasör oluşturur.
import sagemaker
prefix = 'sagemaker/tutorial-autopilot/input'
sess = sagemaker.Session()
uri = sess.upload_data(path="./bank-additional/bank-additional-full.csv", key_prefix=prefix)
print(uri)
Bitti! Kod çıktısında, S3 klasörü URI'si aşağıdaki örnekte olduğu gibi görüntülenir:
s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/input/bank-additional-full.csv
Kendi not defterinize yazdırılan S3 URI'yi takip edin. Bir sonraki adımda buna ihtiyacınız olacak.
4. Adım SageMaker Autopilot deneyi oluşturma
Amazon S3'te veri kümenizi indirip hazırladığınıza göre artık bir Amazon SageMaker Autopilot deneyi oluşturabilirsiniz. Deney, aynı makine öğrenimi projesiyle ilgili bir işleme ve eğitim işleri koleksiyonudur.
Yeni bir deney oluşturmak için aşağıdaki adımları tamamlayın.
Not: Daha fazla bilgi için Amazon SageMaker belgelerindeki SageMaker Studio'da Amazon SageMaker Autopilot Oluşturma bölümüne bakın.
a. Amazon SageMaker Studio'nun sol gezinti bölmesinde Deneyler (deney tüpü simgesiyle gösterilir), ardından Deney Oluştur seçeneğini seçin.
b. İş Ayarları alanlarını aşağıdaki gibi doldurun:
- Deney Adı: tutorial-autopilot
- Girdi verilerinin S3 konumu: Yukarıda yazdırdığınız S3 URI'si
(ör. s3://sagemaker-us-east-2-123456789012/sagemaker/tutorial-autopilot/input/bank-additional-full.csv) - Hedef öznitelik adı: y
- Çıktı verileri için S3 konumu: s3://sagemaker-us-east-2-[ACCOUNT-NUMBER]/sagemaker/tutorial-autopilot/output
([ACCOUNT-NUMBER] yerine kendi hesap numaranızı girdiğinizden emin olun)
c. Diğer tüm ayarları varsayılan olarak bırakın ve Deney Oluştur öğesini seçin.
Başardınız! Böylece Amazon SageMaker Autopilot deneyi başlar! Bu işlemde, deney çalışırken gerçek zamanlı olarak görüntüleyebileceğiniz bir model ve istatistikler oluşturulacaktır. Deney tamamlandıktan sonra denemeleri görüntüleyebilir, nesnel ölçüte göre sıralayabilir ve sağ tıklayarak modeli diğer ortamlarda kullanılmak üzere dağıtabilirsiniz.
5. Adım. SageMaker Autopilot deneyi aşamalarını keşfetme
Deneyiniz çalışırken SageMaker Autopilot deneyinin farklı aşamaları hakkında bilgi edinebilir ve bunları keşfedebilirsiniz.
Bu bölümde, SageMaker Autopilot deney aşamaları hakkında daha fazla ayrıntı sağlanır:
- Verileri Analiz Etme
- Özellik Mühendisliği
- Model Ayarlama
Not: Daha fazla bilgi için SageMaker Autopilot Not Defteri Çıktısı bölümüne bakın.
Verileri Analiz Etme
Verileri Analiz Etme aşaması, çözülecek sorun türünü tanımlar (doğrusal regresyon, ikili sınıflandırma, çok sınıflı sınıflandırma). Ardından, on veri hattı adayı sunar. Veri hattı, bir veri işleme adımı (eksik değerlerin ele alınması, yeni özellikler geliştirilmesi vb.) ve sorun türüne uygun bir ML algoritması kullanarak bir model eğitimi adımı içerir. Bu adım tamamlandığında iş, özellik mühendisliği aşamasına geçer.
Özellik Mühendisliği
Özellik Mühendisliği aşamasında deney, her veri hattı aday için eğitim ve doğrulama veri kümeleri oluşturarak tüm yapıtları S3 klasörünüze kaydeder. Özellik Mühendisliği aşamasındayken, otomatik olarak oluşturulan şu iki not defteri açılıp görüntülenebilir:
- Veri keşfi not defteri, veri kümesine dair bilgileri ve istatistikleri içerir.
- Aday oluşturma not defteri, on veri hattının tanımını içerir. Aslında bu çalıştırılabilir bir not defteridir: AutoPilot işinin yaptığı işi tam olarak yeniden üreyebilir, farklı modellerin nasıl oluşturulduğunu öğrenebilir ve hatta bunların üzerinde istediğiniz değişiklikleri yapabilirsiniz.
Bu iki not defteriyle, verilerin nasıl önceden işlendiğini ve modellerin nasıl oluşturulup optimize edildiğini detaylı bir şekilde anlayabilirsiniz. Bu şeffaflık, Amazon SageMaker Autopilot'ın önemli bir özelliğidir.
Model Ayarlama
Model Ayarlama aşamasında SageMaker Autopilot, her veri hattı adayı ve bunların önceden işlenmiş veri kümeleri için bir hiper parametre optimizasyonu işi başlatır. İlgili eğitim işleri çok çeşitli hiper parametre değerleri keşfeder ve yüksek performanslı modelleri olacak şekilde birleştirilir.
Bu aşama tamamlandığında SageMaker Autopilot işi tamamlanır. Tüm işleri SageMaker Studio'da görebilir ve keşfedebilirsiniz.
6. Adım. En iyi modeli dağıtma
Deneyiniz tamamlandığına göre en iyi ayarlama modelini seçebilir ve modeli, Amazon SageMaker tarafından yönetilen bir uç noktaya dağıtabilirsiniz.
En iyi ayarlama işini seçmek ve modeli dağıtmak için bu adımları uygulayın.
Not: Daha fazla bilgi için En iyi modeli seçme ve dağıtma bölümüne bakın.
a. Ayarlama işlerini azalan şekilde sıralamak için deneyinizin Denemeler listenizde Hedef seçeneğinin yanındaki havuç simgesini seçin. En iyi ayarlama işi bir yıldızla vurgulanır.
b. En iyi ayarlama işini (yıldızla gösterilir) seçin ve Modeli dağıt seçeneğini belirleyin.
c. Modeli dağıt kutusunda uç noktanıza bir ad verin (ör. tutorial-autopilot-best-model) ve tüm ayarları varsayılan şekilde bırakın. Modeli dağıt seçeneğini seçin.
Modeliniz, Amazon SageMaker tarafından yönetilen bir HTTPS uç noktasına dağıtılır.
d. Sol araç çubuğunda Uç noktalar simgesini seçin. Modelinizin birkaç dakikada oluşturulmasını görebilirsiniz. Uç nokta durumu Hizmette olduğunda veri gönderebilir ve tahminler alabilirsiniz!
7. Adım. Modelinizi tahmin etme
Model dağıtıldığına göre artık ilk 2000 veri kümesi örneğini tahmin edebilirsiniz. Bu amaçla boto3 SDK'de invoke_endpoint API kullanabilirsiniz. Bu süreçte önemli makine öğrenimi ölçütlerini işlersiniz: doğruluk, hassasiyet, çağırma ve F1 puanı.
Modelinizi tahmin etmek için bu adımları uygulayın.
Not: Daha fazla bilgi için Amazon SageMaker Deneyleriyle Makine Öğrenimini Yönetme bölümüne bakın.
Jupyter not defterinizde aşağıdaki kodu kopyalayıp yapıştırın ve Çalıştır seçeneğini seçin.
import boto3, sys
ep_name = 'tutorial-autopilot-best-model'
sm_rt = boto3.Session().client('runtime.sagemaker')
tn=tp=fn=fp=count=0
with open('bank-additional/bank-additional-full.csv') as f:
lines = f.readlines()
for l in lines[1:2000]: # Skip header
l = l.split(',') # Split CSV line into features
label = l[-1] # Store 'yes'/'no' label
l = l[:-1] # Remove label
l = ','.join(l) # Rebuild CSV line without label
response = sm_rt.invoke_endpoint(EndpointName=ep_name,
ContentType='text/csv',
Accept='text/csv', Body=l)
response = response['Body'].read().decode("utf-8")
#print ("label %s response %s" %(label,response))
if 'yes' in label:
# Sample is positive
if 'yes' in response:
# True positive
tp=tp+1
else:
# False negative
fn=fn+1
else:
# Sample is negative
if 'no' in response:
# True negative
tn=tn+1
else:
# False positive
fp=fp+1
count = count+1
if (count % 100 == 0):
sys.stdout.write(str(count)+' ')
print ("Done")
accuracy = (tp+tn)/(tp+tn+fp+fn)
precision = tp/(tp+fp)
recall = tn/(tn+fn)
f1 = (2*precision*recall)/(precision+recall)
print ("%.4f %.4f %.4f %.4f" % (accuracy, precision, recall, f1))
Aşağıdaki çıktıları görmeniz gerekir.
100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 Done
0.9830 0.6538 0.9873 0.7867
Bu çıktı, tahmin edilen örnek sayısını gösteren bir ilerleme göstergesidir!
8. Adım. Temizleme
Bu adımda, bu laboratuvarda kullanılan kaynakları sonlandıracaksınız.
Önemli: Aktif olarak kullanılmayan kaynakları sonlandırmak maliyeti azaltır ve en iyi uygulamalardan biridir. Kaynaklarınızı sonlandırmamak hesabınıza ücret olarak yansıtılır.
Uç noktanızı silme: Jupyter not defterinizde aşağıdaki kodu kopyalayıp yapıştırın ve Çalıştır seçeneğini seçin.
sess.delete_endpoint(endpoint_name=ep_name)
Tüm eğitim yapıtlarını (modeller, önceden işlenmiş veri kümeleri vb.) temizlemek istiyorsanız aşağıdaki kodu kopyalayıp kod hücrenize yapıştırın ve Çalıştır seçeneğini seçin.
Not: ACCOUNT_NUMBER yerine hesap numaranızı girdiğinizden emin olun.
%%sh
aws s3 rm --recursive s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/
Tebrikler
Amazon SageMaker Autopilot ile otomatik olarak en iyi doğruluk düzeyi ile bir makine öğrenimi modeli oluşturdunuz.
Önerilen sonraki adımlar
Örnek ML not defterlerini keşfetme
Amazon SageMaker Studio'da tura çıkın
Amazon SageMaker Autopilot özellikleri hakkında daha fazla bilgi edinin
Daha fazla bilgi edinmek istiyorsanız, blog gönderisini okuyun veya Autopilot video serisine bakın.