HAQM SageMaker Autopilot ile otomatik olarak
makine öğrenimi modeli oluşturma
HAQM 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 HAQM SageMaker Autopilot'ı kullanacaksınız.
Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:
- Bir AWS Hesabı oluşturun
- HAQM SageMaker Autopilot'a erişmek için HAQM SageMaker Studio ayarlama
- HAQM SageMaker Studio kullanarak genel veri kümesi indirme
- HAQM 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 | HAQM 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 HAQM SageMaker Studio Fiyatlandırması bölümüne bakın.
Zaten bir hesabınız var mı? Oturum açın
2. Adım. HAQM SageMaker Studio ayarlama
HAQM SageMaker Autopilot'a erişmek üzere aşağıdaki HAQM SageMaker Studio'yu kullanmaya başlama adımlarını gerçekleştirin.
Not: Daha fazla bilgi için HAQM SageMaker belgelerindeki HAQM SageMaker Studio'yu Kullanmaya Başlayın bölümüne bakın.
a. HAQM SageMaker konsolunda oturum açın.
Not: Sağ üst köşede, HAQM SageMaker Studio'nun sunulduğu bir AWS Bölgesi seçtiğinizden emin olun. Bölge listesi için HAQM SageMaker Studio'yu Kullanmaya Başlama bölümüne bakın.



HAQM 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 HAQM SageMaker belgelerindeki HAQM SageMaker Studio turu bölümüne bakın.


%%sh
apt-get install -y unzip
wget http://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. HAQM 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 HAQM S3 klasörüne yüklenir. HAQM S3 klasörü oluşturmanız gerekmez. HAQM 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
HAQM S3'te veri kümenizi indirip hazırladığınıza göre artık bir HAQM 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 HAQM SageMaker belgelerindeki SageMaker Studio'da HAQM SageMaker Autopilot Oluşturma bölümüne bakın.
a. HAQM 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 HAQM 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, HAQM 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, HAQM 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, HAQM 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 HAQM 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
HAQM 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
HAQM SageMaker Studio'da tura çıkın
HAQM 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.