Membuat model pembelajaran mesin secara otomatis

dengan Amazon SageMaker Autopilot

Amazon SageMaker adalah layanan yang dikelola sepenuhnya yang memberi setiap pengembang dan ilmuwan data kemampuan membangun, melatih, dan menerapkan model pembelajaran mesin (ML) dengan cepat.

Dalam tutorial ini, Anda akan membuat model pembelajaran mesin secara otomatis tanpa mengetik baris kode! Anda menggunakan Amazon SageMaker Autopilot, kapabilitas AutoML yang secara otomatis membuat model pembelajaran mesin klasifikasi dan regresi terbaik sementara visibilitas dan kontrol penuh diaktifkan.

Dalam tutorial ini, Anda akan belajar cara:

  1. Membuat Akun AWS
  2. Menyiapkan Amazon SageMaker Studio untuk mengakses Amazon SageMaker Autopilot
  3. Mengunduh dataset publik menggunakan Amazon SageMaker Studio
  4. Membuat eksperimen pelatihan dengan Amazon SageMaker Autopilot
  5. Menjelajahi berbagai tingkatan eksperimen pelatihan
  6. Mengidentifikasi dan menerapkan model performa terbaik dari eksperimen pelatihan
  7. Memprediksi dengan model yang diterapkan

Dalam tutorial ini, Anda akan mengisi peran sebagai pengembang yang bekerja di bank. Anda diminta untuk mengembangkan model pembelajaran mesin untuk memprediksi apakah nasabah akan mengajukan sertifikat deposito (CD). Model ini akan dilatih pada dataset pemasaran yang berisi informasi tentang demografi nasabah, tanggapan terhadap acara pemasaran, dan faktor eksternal.

Data tersebut diberi label demi kemudahan Anda dan sebuah kolom di dalam dataset menunjukkan apakah nasabah mengajukan produk yang ditawarkan bank. Sebuah versi dari dataset ini tersedia untuk umum dari repositori ML yang diseleksi oleh University of California, Irvine.
Tentang Tutorial ini
Waktu 10 menit                                           
Biaya Kurang dari 10 USD
Kasus Penggunaan Machine Learning
Produk Amazon SageMaker
Audiens Pengembang
Tingkat Pemula
Terakhir Diperbarui 12 Mei 2020

Langkah 1. Buat Akun AWS

Biaya lokakarya ini kurang dari USD 10. Untuk informasi selengkapnya, lihat Biaya Amazon SageMaker Studio.

Sudah memiliki akun? Masuk

Langkah 2. Amazon SageMaker Studio

Selesaikan langkah-langkah berikut untuk orientasi ke Amazon SageMaker Studio agar dapat mengakses ke Amazon SageMaker Autopilot.

Catatan: Untuk informasi selengkapnya, lihat Memulai Amazon SageMaker Studio di dokumentasi Amazon SageMaker.


a. Masuk ke konsol Amazon SageMaker

Catatan: Di bagian sudut kanan atas, pastikan untuk memilih Wilayah AWS tempat Amazon SageMaker Studio tersedia. Untuk mengetahui daftar Wilayah, lihat Orientasi ke Amazon SageMaker Studio.


b. Di panel navigasi Amazon SageMaker, pilih Amazon SageMaker Studio.
 
Catatan: Jika menggunakan Amazon SageMaker Studio untuk pertama kalinya, Anda harus menyelesaikan proses orientasi Studio. Saat orientasi, Anda dapat memilih untuk menggunakan AWS Single Sign-On (AWS SSO) maupun AWS Identity and Access Management (IAM) untuk metode autentikasi. Jika menggunakan autentikasi IAM, Anda dapat memilih prosedur penyiapan Quick start maupun Standard. Jika tidak yakin terhadap pilihan Anda, lihat Orientasi ke Amazon SageMaker Studio dan mintalah bantuan kepada admin IT Anda. Agar sederhana, tutorial ini menggunakan prosedur Quick start.

c. Di kotak Get started, pilih Quick start dan masukkan nama pengguna.

d. Untuk Execution role, pilih Buat peran IAM. Di kotak dialog yang muncul, pilih Any S3 bucket dan pilih Create role.

Amazon SageMaker akan membuat peran dengan izin yang diperlukan dan menugaskannya ke instans Anda.  


e. Klik Submit.

Langkah 3. Unduh dataset

Selesaikan langkah-langkah berikut untuk mengunduh dan menjelajahi dataset.

Catatan: Untuk informasi selengkapnya, lihat tur Amazon SageMaker Studio di dokumentasi Amazon SageMaker.


a. Di Amazon SageMaker Studio Control Panel, pilih Open Studio.

b. Di JupyterLab, pada menu File, pilih New, lalu Notebook. Di kotak Select Kernel, pilih Python 3 (Data Science).
 

c. Untuk mengunduh dan mengekstrak kode, salin dan tempel kode berikut ke sel kode dan pilih Run.
 
Catatan: Saat kode berjalan, tanda * akan muncul di antara kurung kotak. Setelah beberapa saat, eksekusi kode akan selesai dan tanda * akan berganti menjadi angka.
%%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. Salin dan tempelkan kode berikut ke sel kode baru dan pilih Run.

Dataset CSV akan membuat dan menampilkan sepuluh baris pertama.

import pandas as pd
data = pd.read_csv('./bank-additional/bank-additional-full.csv')
data[:10]

Salah satu kolom dataset diberi nama y, dan mewakili label untuk setiap sampel: apakah pelanggan ini menerima tawaran atau tidak?

Ini adalah langkah di mana ilmuwan data mulai menjelajahi data, membuat fitur baru, dan sebagainya. Dengan Amazon SageMaker Autopilot, Anda tidak perlu menjalankan langkah-langkah tambahan ini. Anda cukup mengunggah data tabular dalam file dengan nilai yang dipisahkan koma (misalnya, dari spreadsheet atau database), pilih kolom target untuk diprediksi, dan Autopilot akan membangun model prediktif untuk Anda.


d. Salin dan tempelkan kode berikut ke sel kode baru dan pilih Run.

Langkah ini mengunggah dataset CSV ke dalam bucket Amazon S3. Anda tidak perlu membuat bucket Amazon S3; Amazon SageMaker akan secara otomatis membuat bucket default dalam akun saat Anda menggunggah data.

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)

Selesai! Output kode menampilkan URI bucket S3 seperti contoh berikut:

s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/input/bank-additional-full.csv

Ingatlah URI S3 yang dicetak di buku catatan Anda. Anda akan memerlukannya lagi di langkah berikutnya.

Langkah 4. Membuat eksperimen SageMaker Autopilot

Setelah mengunduh dan mengatur dataset di Amazon S3, Anda dapat membuat eksperimen Amazon SageMaker Autopilot. Eksperimen adalah serangkaian proses dan tugas pelatihan yang terkait dengan proyek pembelajaran mesin yang sama.

Selesaikan langkah-langkah berikut untuk membuat eksperimen baru.

Catatan: Untuk informasi selengkapnya, lihat Membuat Pengalaman Amazon SageMaker Autopilot di SageMaker Studio dalam dokumentasi Amazon SageMaker.


a. Di panel navigasi kiri Amazon SageMaker Studio, pilih Experiments (ikon dengan simbol labu), lalu pilih Create Experiment.


b. Isi kolom Job Settings seperti berikut ini:

  • Experiment Name: tutorial-autopilot
  • S3 location of input data: URI S3 yang dicetak di atas
    (contoh s3://sagemaker-us-east-2-123456789012/sagemaker/tutorial-autopilot/input/bank-additional-full.csv)
  • Target attribute name: y
  • S3 location for output data: s3://sagemaker-us-east-2-[ACCOUNT-NUMBER]/sagemaker/tutorial-autopilot/output
    (pastikan untuk mengganti [ACCOUNT-NUMBER] dengan nomor akun Anda)

c. Biarkan pengaturan lainnya dalam kondisi default dan pilih Buat Eksperimen.

Berhasil! Ini adalah awal dari eksperimen Amazon SageMaker Autopilot! Proses tersebut akan menghasilkan model serta statistik yang dapat Anda lihat secara aktual selama eksperimen berjalan. Setelah eksperimen selesai, Anda dapat melihat hasil percobaan, mengurutkan berdasarkan metrik objektif dan mengeklik kanan guna menerapkan model untuk penggunaan di lingkungan lain.

Langkah 5. Jelajahi tahapan eksperimen SageMaker Autopilot

Saat eksperimen berjalan, Anda dapat mempelajari dan menjelajahi berbagai tahapan eksperimen SageMaker Autopilot.  

Bagian ini menjelaskan lebih detail tentang tahapan eksperimen SageMaker Autopilot:

  1. Analisis Data
  2. Penyusunan Fitur
  3. Penyetelan Model

Catatan: Untuk informasi selengkapnya, lihat SageMaker Autopilot Notebook Output.


Analisis Data

Tahapan Analisis Data mengidentifikasi jenis masalah yang harus dipecahkan (regresi linier, klasifikasi biner, klasifikasi multikelas). Selanjutnya, akan diberikan hingga sepuluh potensi rancangan. Rancangan menggabungkan langkah prapemrosesan data (penanganan nilai yang hilang, penyusunan fitur baru, dll.), dan langkah pelatihan model menggunakan algoritme ML yang cocok dengan jenis masalah. Setelah langkah ini selesai, tugas selanjutnya beralih ke penyusunan fitur.  


Perancangan Fitur

Di tahap Perancangan Fitur, eksperimen akan membuat dataset pelatihan dan validasi untuk setiap potensi rancangan, menyimpan semua artefak dalam bucket S3 Anda. Saat berada di tahap Penyusunan Fitur, Anda dapat membuka dan melihat dua notebook yang dibuat secara otomatis:

  • Data exploration notebook berisi informasi dan statistik mengenai dataset.
  • Candidate generation notebook berisi penjelasan dari sepuluh rancangan. Sebenarnya, ini adalah notebook yang dapat dijalankan: Anda dapat mereproduksi dengan tepat yang dilakukan tugas AutoPilot, memahami cara berbagai model dibuat, dan bahkan terus memodifikasinya jika Anda mau.

Dengan dua notebook ini, Anda dapat memahami secara detail cara data diproses sebelumnya, dan cara model dibangun dan dioptimalkan. Transparansi ini adalah fitur penting Amazon SageMaker Autopilot.


Penyetelan Model

Dalam tahap Penyetelan Model, untuk setiap potensi rancangan dan dataset yang telah diproses, SageMaker Autopilot meluncurkan tugas optimisasi hyperparameter; tugas pelatihan terkait mengeksplorasi berbagai nilai hyperparameter, dan dengan cepat memusat menjadi model kinerja tinggi.

Setelah tahap ini selesai, tugas SageMaker Autopilot selesai. Anda dapat melihat dan menjelajahi semua tugas di SageMaker Studio.

Langkah 6. Menerapkan model terbaik

Setelah eksperimen selesai, Anda dapat memilih model penyetelan terbaik dan menerapkan model ke titik akhir yang dikelola oleh Amazon SageMaker.

Ikuti langkah-langkah berikut untuk memilih tugas penyetelan terbaik dan menerapkan model.

Catatan: Untuk informasi selengkapnya, lihat Memilih dan menerapkan model terbaik.


a. Dalam daftar Trial eksperimen Anda, pilih carrot di sebelahObjective untuk mengurutkan tugas penyetelan dari besar ke kecil. Tugas penyetelan terbaik ditandai dengan bintang.


b. Pilih tugas penyetelan terbaik (ditunjukkan dengan bintang) dan pilih Deploy model


c. Di kotak Deploy model, beri nama titik akhir Anda (misalnya tutorial-autopilot-best-model) dan biarkan pengaturan lainnya dalam kondisi default. PilihDeploy model.

Model diterapkan ke titik akhir HTTPS yang dikelola oleh Amazon SageMaker.


d. Di toolbar sebelah kiri, pilih ikon Endpoints. Anda akan melihat model sedang dibuat, yang memerlukan waktu beberapa menit. Setelah status titik akhir menunjukkan InService, Anda dapat mengirimkan data dan menerima prediksi!

Langkah 7. Prediksikan dengan model Anda

Setelah model diterapkan, Anda dapat memprediksi 2,000 sampel dataset pertama. Untuk langkah ini, gunakan invoke_endpoint API di boto3 SDK. Dalam proses tersebut, Anda melakukan komputasi metrik pembelajaran mesin penting: akurasi, presisi, ingatan, dan skor F1.

Ikuti langkah-langkah berikut untuk memprediksi dengan model Anda.

Catatan: Untuk informasi selengkapnya, lihat Mengelola Pembelajaran Mesin dengan Eksperimen Amazon SageMaker.


Dalam notebook Jupyter Anda, salin dan tempelkan kode berikut dan pilih Run.

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))

Anda akan melihat output berikut.

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

Output ini adalah indikator progres yang menunjukkan jumlah sampel yang telah diprediksi!

Langkah 8. Pembersihan

Di langkah ini, Anda akan menghentikan sumber daya yang digunakan di lab ini.

Penting: Menghentikan sumber daya yang tidak digunakan secara aktif akan mengurangi biaya dan merupakan praktik terbaik. Tidak menghentikan sumber daya Anda akan menimbulkan biaya.


Hapus titik akhir Anda: Di notebook Jupyter Anda, salin dan tempelkan kode berikut dan pilih Run.

sess.delete_endpoint(endpoint_name=ep_name)

Jika ingin membersihkan semua artefak pelatihan (model, kumpulan data praproses, dll.), salin dan tempel kode berikut ke dalam sel kode Anda lalu pilih Run.

Catatan: Pastikan untuk mengganti ACCOUNT_NUMBER dengan nomor akun Anda.

%%sh
aws s3 rm --recursive s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/

Selamat

Anda telah membuat model pembelajaran mesin dengan akurasi terbaik secara otomatis menggunakan Amazon SageMaker Autopilot

Apakah tutorial ini bermanfaat?

Ikuti tur Amazon SageMaker Studio

Pelajari selengkapnya tentang Amazon SageMaker Autopilot

Jika ingin mempelajari selengkapnya, baca postingan blog atau tonton rangkaian video Autopilot.