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:

  1. Bir AWS Hesabı oluşturun
  2. Amazon SageMaker Autopilot'a erişmek için Amazon SageMaker Studio ayarlama
  3. Amazon SageMaker Studio kullanarak genel veri kümesi indirme
  4. Amazon SageMaker Autopilot ile eğitim deneyi oluşturma
  5. Eğitim deneyinin farklı aşamalarını keşfetme
  6. Eğitim deneyinden en iyi performanslı modeli tanımlama ve dağıtma
  7. 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.

Size kolaylık sağlamak amacıyla veriler etiketlenmiştir ve veri kümesindeki bir sütun müşterinin banka tarafından sunulan bir ürüne kayıtlı olup olmadığını tanımlamaktadır. Bu veri kümesinin bir sürümü Kaliforniya Üniversitesi, Irvine tarafından seçilen ML deposunda halka açıktır.
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.


b. Amazon SageMaker gezinti bölmesinde Amazon SageMaker Studio seçeneğini seçin.
 
Not: Amazon SageMaker Studio'yu ilk kez kullanıyorsanız Studio kullanmaya başlama sürecini tamamlamanız gerekir. Kullanmaya başlarken kimlik doğrulama yöntemleri için AWS Single Sign-On (AWS SSO) veya AWS Identity and Access Management (IAM) seçeneğini belirleyebilirsiniz. IAM kimlik doğrulamasını kullandığınızda Hızlı başlangıç veya Standart kurulum prosedürünü seçebilirsiniz. Hangi seçeneği belirleyeceğinizden emin değilseniz Amazon SageMaker Studio'yu Kullanmaya Başlama bölümüne bakın veya BT yöneticinizden yardım isteyin. Kolaylık sağlamak için bu öğreticide Hızlı başlangıç prosedürü kullanılmıştır.

c. Kullanmaya başlayın kutusunda Hızlı başlangıç seçeneğini seçip bir kullanıcı adı belirtin.

d. Yürütme rolü için IAM rolü oluştur seçeneğini seçin. Açılan iletişim kutusunda Herhangi bir S3 klasörü ve ardından Rol oluştur seçeneğini seçin.

Amazon SageMaker, gerekli izinlerle bir rol oluşturur ve bunu bulut sunucunuza atar.  


e. Gönder’e tıklayın.

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.


a. Amazon SageMaker Studio Kontrol Paneli'nde Studio'yu Aç seçeneğini seçin.

b. JupyterLab içindeki Dosya menüsünde Yeni ardından Not Defteri seçeneğini seçin. Çekirdek Seç kutusunda Python 3 (Veri Bilimi) seçeneğini seçin.
 

c. Kodu indirip ayıklamak için aşağıdaki kodu kopyalayıp kod hücresine yapıştırın ve Çalıştır seçeneğini seçin.
 
Not: Kod çalışırken köşeli parantezler arasında bir * görünür. Birkaç saniye sonra kod yürütmesi tamamlanır ve * yerine bir sayı gelir.
%%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:

  1. Verileri Analiz Etme
  2. Özellik Mühendisliği
  3. 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.

Bu öğretici size yardımcı oldu mu?

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.