สร้างโมเดล Machine Learning โดยอัตโนมัติ

ด้วย Amazon SageMaker Autopilot

Amazon SageMaker เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งช่วยให้นักพัฒนาและนักวิทยาศาสตร์ข้อมูลทุกคนสามารถสร้าง ฝึก และปรับใช้โมเดล Machine Learning (ML) ได้อย่างรวดเร็ว

ในบทช่วยสอนนี้ คุณจะสร้างโมเดล Machine Learning โดยอัตโนมัติโดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียว! คุณใช้ Amazon SageMaker Autopilot ซึ่งเป็นความสามารถ AutoML ที่จะสร้างโมเดล Machine Learning สำหรับการจัดหมวดหมู่และการถอยกลับที่ดีที่สุดโดยอัตโนมัติ และสามารถควบคุมและแสดงผลได้อย่างเต็มที่ในขณะเดียวกัน

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีทำสิ่งต่อไปนี้

  1. สร้างบัญชี AWS
  2. ติดตั้ง Amazon SageMaker Studio เพื่อเข้าถึง Amazon SageMaker Autopilot
  3. ดาวน์โหลดชุดข้อมูลสาธารณะโดยใช้ Amazon SageMaker Studio
  4. สร้างการทดลองใช้การฝึกอบรมด้วย Amazon SageMaker Autopilot
  5. สำรวจขั้นตอนต่างๆ ของการทดลองใช้การฝึกอบรม
  6. ระบุและปรับใช้โมเดลที่มีประสิทธิภาพสูงสุดจากการทดลองใช้การฝึกอบรม
  7. คาดการณ์ด้วยโมเดลที่คุณติดตั้งใช้จริง

ในบทช่วยสอนนี้ คุณจะได้รับบทบาทเป็นนักพัฒนาซึ่งทำงานที่ธนาคาร คุณจะได้รับคำขอให้พัฒนาโมเดล Machine Learning เพื่อคาดการณ์ว่าลูกค้าจะลงทะเบียนรับบัตรเงินฝาก (CD) หรือไม่ โมเดลจะได้รับการฝึกฝนเกี่ยวกับชุดข้อมูลการตลาดที่ประกอบด้วยข้อมูลด้านประชากรของลูกค้า การตอบรับกิจกรรมด้านการตลาด และปัจจัยภายนอก

ข้อมูลจะมีป้ายกำกับไว้เพื่อความสะดวก และคอลัมน์ในชุดข้อมูลจะระบุว่าลูกค้าจะลงทะเบียนรับข้อเสนอด้านผลิตภัณฑ์จากธนาคารหรือไม่ ชุดข้อมูลนี้เป็นเวอร์ชันที่ เปิดเผยต่อสาธารณะจากคลังเนื้อหาของ ML ที่ดูแลจัดการโดย University of California, Irvine
เกี่ยวกับบทช่วยสอนนี้
เวลา 10 นาที                                           
ค่าใช้จ่าย น้อยกว่า 10 USD
กรณีการใช้งาน Machine Learning
ผลิตภัณฑ์ Amazon SageMaker
ผู้เข้าร่วม นักพัฒนา
ระดับ ผู้เริ่มต้น
อัปเดตล่าสุด 12 พฤษภาคม 2020

ขั้นตอนที่ 1 สร้างบัญชี AWS

ค่าใช้จ่ายของเวิร์กช็อปนี้น้อยกว่า 10 USD หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู ราคา Amazon SageMaker Studio

มีบัญชีอยู่แล้วใช่ไหม ลงชื่อเข้าใช้

ขั้นตอนที่ 2 ติดตั้ง Amazon SageMaker Studio

ทำตามขั้นตอนต่อไปนี้ในการเตรียมความพร้อมสู่ Amazon SageMaker Studio เพื่อเข้าถึง Amazon SageMaker Autopilot

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู เริ่มต้นใช้งาน Amazon SageMaker Studio ในเอกสารประกอบของ Amazon SageMaker


ก. ลงชื่อเข้าใช้ Amazon SageMaker Console 

หมายเหตุ: ตรวจสอบตรงมุมขวาบนให้แน่ใจว่าได้เลือกภูมิภาคของ AWS ที่ Amazon SageMaker Studio พร้อมให้ใช้งาน สำหรับรายการภูมิภาค โปรดดู เตรียมความพร้อมสู่ Amazon SageMaker Studio


ข. ในหน้าต่างนำทาง Amazon SageMaker ให้เลือก Amazon SageMaker Studio
 
หมายเหตุ: หากคุณใช้ Amazon SageMaker Studio เป็นครั้งแรก คุณจะต้องทำ ขั้นตอนการเตรียมความพร้อมบน Studio ให้เสร็จสิ้น เมื่อเตรียมความพร้อม คุณจะสามารถเลือกใช้ AWS Single Sign-On (AWS SSO) หรือ AWS Identity and Access Management (IAM) สำหรับวิธีการตรวจสอบสิทธิ์ได้ เมื่อคุณใช้การตรวจสอบสิทธิ์ IAM คุณจะสามารถเลือกระหว่างขั้นตอนเริ่มต้นใช้งานด่วนหรือขั้นตอนการตั้งค่ามาตรฐาน หากคุณไม่แน่ใจว่าจะเลือกตัวเลือกใด โปรดดู เตรียมความพร้อมสู่ Amazon SageMaker Studio และขอความช่วยเหลือจากผู้ดูแลระบบไอทีของคุณ เพื่อความเรียบง่าย บทช่วยสอนนี้จะใช้ขั้นตอน เริ่มต้นใช้งานด่วน

ค. ในกล่อง เริ่มต้นใช้งาน ให้เลือก เริ่มต้นใช้งานด่วนและระบุชื่อผู้ใช้

ง. สำหรับ บทบาทในการดำเนินการ ให้เลือก สร้างบทบาท IAM ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือก ทุกบัคเก็ต S3 แล้วเลือก สร้างบทบาท

Amazon SageMaker สร้างบทบาทที่มีการอนุญาตที่จำเป็นและกำหนดบทบาทให้กับอินสแตนซ์ของคุณ  


จ. คลิก ส่ง

ขั้นตอนที่ 3 ดาวน์โหลดชุดข้อมูล

ทำตามขั้นตอนต่อไปนี้เพื่อดาวน์โหลดและสำรวจชุดข้อมูล

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู การนำเสนอ Amazon SageMaker Studio ในเอกสารประกอบของ Amazon SageMaker


ก. ใน แผงควบคุม Amazon SageMaker Studio ให้เลือก เปิด Studio

ข. ใน JupyterLab บนเมนู ไฟล์ ให้เลือก ใหม่ จากนั้นเลือก โน้ตบุ๊ค ในกล่อง เลือกเคอร์เนล ให้เลือก Python 3 (วิทยาศาสตร์ข้อมูล)
 

ค. ในการดาวน์โหลดและแยกโค้ด ให้คัดลอกและวางโค้ดต่อไปนี้ลงในเซลล์โค้ด แล้วเลือก เรียกใช้
 
หมายเหตุ: ขณะที่โค้ดทำงาน เครื่องหมาย * จะปรากฏขึ้นระหว่างวงเล็บสี่เหลี่ยม หลังจากผ่านไปสองสามวินาที การเรียกใช้โค้ดจะเสร็จสิ้นและเครื่องหมาย * จะถูกแทนที่ด้วยตัวเลข
%%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

ง. คัดลอกและวางโค้ดต่อไปนี้ลงในเซลล์โค้ดใหม่ แล้วเลือก เรียกใช้

ชุดข้อมูล CSV จะโหลดและแสดงผล 10 บรรทัดแรก

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

ชุดข้อมูลคอลัมน์หนึ่งมีชื่อว่า y และแสดงถึงป้ายกำกับสำหรับแต่ละตัวอย่าง: ลูกค้ารายนี้รับข้อเสนอหรือไม่

ขั้นตอนนี้เป็นขั้นตอนที่นักวิทยาศาสตร์ข้อมูลจะเริ่มสำรวจข้อมูล สร้างคุณสมบัติใหม่ และอื่นๆ เมื่อใช้ Amazon SageMaker Autopilot คุณไม่จำเป็นต้องทำตามขั้นตอนพิเศษเหล่านี้ คุณเพียงอัปโหลดข้อมูลตารางในไฟล์ที่มีค่าซึ่งคั่นด้วยเครื่องหมายจุลภาค (ตัวอย่างเช่น ข้อมูลจากสเปรดชีตหรือฐานข้อมูล) เลือกคอลัมน์เป้าหมายที่จะคาดการณ์ และ Autopilot จะสร้างโมเดลเชิงคาดการณ์ให้กับคุณ


ง. คัดลอกและวางโค้ดต่อไปนี้ลงในเซลล์โค้ดใหม่ แล้วเลือก เรียกใช้

ขั้นตอนนี้จะอัปโหลดชุดข้อมูล CSV ลงในบัคเกต Amazon S3 คุณไม่จำเป็นต้องสร้างบัคเก็ต Amazon S3 โดย Amazon SageMaker จะสร้างบัคเก็ตเริ่มต้นโดยอัตโนมัติในบัญชีของคุณเมื่อคุณอัปโหลดข้อมูล

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)

เรียบร้อยแล้ว! เอาต์พุตโค้ดจะแสดง URI ของบัคเก็ต S3 ดังตัวอย่างต่อไปนี้

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

ติดตาม URI ของ S3 ที่พิมพ์ในโน้ตบุ๊คของคุณเอง คุณต้องการข้อมูลนี้ในขั้นตอนต่อไป

ขั้นตอนที่ 4 สร้างการทดลองใช้ SageMaker Autopilot

ขณะนี้ที่คุณได้ดาวน์โหลดและจัดเตรียมชุดข้อมูลของคุณใน Amazon S3 แล้ว คุณจะสามารถสร้างการทดลองใช้ Amazon SageMaker Autopilot ได้ การทดลองใช้เป็นชุดของการประมวลผลและงานการฝึกอบรมที่เกี่ยวข้องกับโครงการ Machine Learning เดียวกัน

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างการทดลองใช้ใหม่

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู สร้างการทดลองใช้ Amazon SageMaker Autopilot ใน SageMaker Studio ในเอกสารประกอบของ Amazon SageMaker


ก. ในหน้าต่างนำทางด้านซ้ายของ Amazon SageMaker Studio ในเลือก การทดลองใช้ (ไอคอนที่มีสัญลักษณ์ขวดแก้วทดลอง) แล้วเลือก สร้างการทดลองใช้


ข. กรอกข้อมูลในช่อง การตั้งค่างาน ดังนี้:

  • ชื่อการทดลองใช้: tutorial-autopilot
  • ตำแหน่ง S3 ของข้อมูลอินพุต: URI ของ S3 ที่คุณพิมพ์ด้านบน
    (เช่น s3://sagemaker-us-east-2-123456789012/sagemaker/tutorial-autopilot/input/bank-additional-full.csv)
  • ชื่อคุณลักษณะเป้าหมาย: y
  • ตำแหน่ง S3 สำหรับข้อมูลเอาต์พุต: s3://sagemaker-us-east-2-[ACCOUNT-NUMBER]/sagemaker/tutorial-autopilot/output
    (ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ [ACCOUNT-NUMBER] ด้วยหมายเลขบัญชีของคุณเอง)

ค. ปล่อยให้การตั้งค่าที่เหลือเป็นค่าเริ่มต้น แล้วเลือก สร้างการทดลองใช้

สำเร็จแล้ว! โดยจะเริ่มการทดลองใช้ Amazon SageMaker Autopilot! กระบวนการนี้จะสร้างโมเดลรวมทั้งสถิติที่คุณสามารถดูได้แบบเรียลไทม์ขณะที่การทดลองใช้ดำเนินการอยู่ หลังจากการทดลองใช้เสร็จสิ้นลง คุณจะสามารถดูการทดลอง เรียงลำดับตามตัววัดวัตถุประสงค์ และคลิกขวาเพื่อปรับใช้โมเดลเพื่อใช้ในสภาพแวดล้อมอื่น

ขั้นตอนที่ 5 สำรวจลำดับขั้นการทดลองใช้ SageMaker Autopilot

ในขณะที่การทดลองใช้ดำเนินการอยู่ คุณสามารถเรียนรู้และสำรวจลำดับขั้นต่างๆ ของการทดลองใช้ SageMaker Autopilot  

หัวข้อนี้จะให้รายละเอียดเพิ่มเติมเกี่ยวกับลำดับขั้นของการทดลองใช้ SageMaker Autopilot:

  1. การวิเคราะห์ข้อมูล
  2. การสร้างคุณสมบัติ
  3. การปรับแต่งโมเดล

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู ผลลัพธ์โน้ตบุ๊ค SageMaker Autopilot


การวิเคราะห์ข้อมูล

ขั้นตอนการวิเคราะห์ข้อมูลจะระบุประเภทของปัญหาที่จะแก้ไข (การถดถอยเชิงเส้น การจัดประเภทไบนารี การจัดประภทหลายคลาส) จากนั้นจะได้ไปป์ไลน์ตัวเลือก 10 รายการ ไปป์ไลน์จะรวมขั้นตอนการประมวลผลข้อมูลล่วงหน้า (การจัดการค่าที่ขาดหาย การสร้างคุณสมบัติใหม่ ฯลฯ) และขั้นตอนการฝึกอบรมโมเดลโดยใช้อัลกอริทึม ML ที่ตรงกับประเภทของปัญหา เมื่อขั้นตอนนี้เสร็จสมบูรณ์ งานจะดำเนินต่อไปสู่ขั้นตอนการสร้างคุณสมบัติ  


การสร้างคุณสมบัติ

ในขั้นตอนการสร้างคุณสมบัติ การทดลองใช้จะสร้างการฝึกอบรมและชุดข้อมูลการตรวจสอบสำหรับไปป์ไลน์ตัวเลือกแต่ละรายการ จัดเก็บสิ่งประดิษฐ์ทั้งหมดในบัคเก็ต S3 ของคุณ ในขณะที่อยู่ในขั้นตอนการสร้างคุณสมบัติ คุณจะสามารถเปิดและดูโน้ตบุ๊คที่สร้างโดยอัตโนมัติได้ 2 รายการ:

  • โน๊ตบุ๊คการสำรวจข้อมูลจะมีข้อมูลและสถิติเกี่ยวกับชุดข้อมูล
  • โน้ตบุ๊คการสร้างตัวเลือกจะมีคำจำกัดความของไปป์ไลน์ 10 รายการ ในความเป็นจริงแล้วนี่คือโน้ตบุ๊คที่ทำงานได้: คุณสามารถทำซ้ำสิ่งที่งาน AutoPilot ทำ เข้าใจว่าโมเดลต่างๆ สร้างขึ้นมาได้อย่างไร และยังปรับแต่งได้เรื่อยๆ หากคุณต้องการ

ด้วยโน้ตบุ๊คทั้งสองนี้ คุณจะสามารถเข้าใจในรายละเอียดว่ามีการประมวลผลข้อมูลล่วงหน้าอย่างไร และจะสร้างและเพิ่มประสิทธิภาพให้กับโมเดลได้อย่างไร ความโปร่งใสนี้เป็นคุณสมบัติที่สำคัญของ Amazon SageMaker Autopilot


การปรับแต่งโมเดล

ในขั้นตอนการปรับแต่งโมเดล สำหรับไปป์ไลน์ตัวเลือกแต่ละรายการและชุดข้อมูลของไปป์ไลน์ที่ประมวลผลล่วงหน้าแล้ว SageMaker Autopilot จะเปิดตัวงานการเพิ่มประสิทธิภาพให้กับไฮเปอร์พารามิเตอร์ งานการฝึกอบรมที่เกี่ยวข้องจะสำรวจค่าไฮเปอร์พารามิเตอร์หลายค่าและผสานเข้ากับโมเดลที่มีประสิทธิภาพสูงได้อย่างรวดเร็ว

เมื่อขั้นตอนนี้เสร็จสมบูรณ์ งาน SageMaker Autopilot จะเสร็จสมบูรณ์ คุณสามารถดูและสำรวจงานทั้งหมดใน SageMaker Studio ได้

ขั้นตอนที่ 6 ปรับใช้โมเดลที่ดีที่สุด

ขณะนี้ที่การทดลองใช้ของคุณเสร็จสมบูรณ์แล้ว คุณจะสามารถเลือกโมเดลการปรับแต่งที่ดีที่สุด และปรับใช้โมเดลกับตำแหน่งข้อมูลที่จัดการโดย Amazon SageMaker

ทำตามขั้นตอนเหล่านี้เพื่อเลือกงานการปรับแต่งที่ดีที่สุดและปรับใช้โมเดล

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู เลือกและปรับใช้โมเดลที่ดีที่สุด


ก. ในรายการการทดลองของการทดลองใช้ของคุณ ให้เลือกแครอทที่อยู่ถัดจากวัตถุประสงค์ เพื่อจัดเรียงงานการปรับแต่งตามลำดับจากมากไปน้อย งานการปรับแต่งที่ดีที่สุดจะไฮไลต์ด้วยดาว


ข. เลือกงานการปรับแต่งที่ดีที่สุด (บ่งชี้ด้วยดาว) แล้วเลือก ปรับใช้โมเดล 


ค. ในกล่องปรับใช้โมเดล ให้ตั้งชื่อตำแหน่งข้อมูล (เช่น tutorial-autopilot-best-model) แล้วปล้อยให้การตั้งค่าทั้งหมดเป็นค่าเริ่มต้น เลือก ปรับใช้โมเดล

โมเดลของคุณปรับใช้กับจตำแหน่งข้อมูล HTTPS ที่จัดการโดย Amazon SageMaker


ง. ในแถบเครื่องมือด้านซ้าย ให้เลือกไอคอนตำแหน่งข้อมูล คุณจะเห็นได้ว่าโมเดลของคุณสร้างขึ้น ซึ่งจะใช้เวลาสักครู่ เมื่อสถานะของตำแหน่งข้อมูลเป็น InService คุณจะสามารถส่งข้อมูลและรับการคาดการณ์ได้!

ขั้นตอนที่ 7 คาดการณ์ด้วยโมเดลของคุณ

ขณะนี้ที่ปรับใช้โมเดลแล้ว คุณจะสามารถพยากรณ์ตัวอย่างของชุดข้อมูล 2,000 ตัวอย่างแรกได้ คุณใช้ invoke_endpoint API ใน boto3 SDK เพื่อการนี้ ในกระบวนการ คุณจะคำนวณตัววัด Machine Learning ที่สำคัญต่างๆ ได้แก่ ความถูกต้อง ความแม่นยำ การเรียกคืน และคะแนน F1

ทำตามขั้นตอนเหล่านี้เพื่อคาดการณ์ด้วยโมเดลของคุณ

หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู จัดการ Machine Learning ด้วย Amazon SageMaker Experiments


ในโน้ตบุ๊ค Jupyter ของคุณ ให้คัดลอกและวางโค้ดต่อไปนี้ แล้วเลือก เรียกใช้

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

คุณจะเห็นผลลัพธ์ต่อไปนี้:

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

ผลลัพธ์นี้เป็นตัวบ่งชี้ความคืบหน้าที่แสดงจำนวนตัวอย่างที่ได้รับการคาดการณ์!

ขั้นตอนที่ 8 ล้างข้อมูล

ในขั้นตอนนี้ คุณจะยกเลิกทรัพยากรที่คุณใช้ในแล็บนี้

ข้อสำคัญ: การยกเลิกทรัพยากรที่ไม่ได้ใช้งานจะช่วยลดค่าใช้จ่ายและเป็นแนวทางปฏิบัติที่ดีที่สุด การไม่ยกเลิกทรัพยากรของคุณจะทำให้มีการเรียกเก็บค่าบริการไปยังบัญชีของคุณ


ลดตำแหน่งข้อมูลของคุณ: ในโน้ตบุ๊ค Jupyter ของคุณ ให้คัดลอกและวางโค้ดต่อไปนี้ แล้วเลือก เรียกใช้

sess.delete_endpoint(endpoint_name=ep_name)

หากคุณต้องการล้างข้อมูลสิ่งประดิษฐ์การฝึกอบรมทั้งหมด (โมเดล ชุดข้อมูลที่ประมวลผลล่วงหน้า ฯลฯ) ให้คัดลอกและวางโค้ดต่อไปนี้ลงในเซลล์โค้ดของคุณ แล้วเลือก เรียกใช้

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ [ACCOUNT-NUMBER] ด้วยหมายเลขบัญชีของคุณเอง

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

ขอแสดงความยินดี

คุณได้สร้างโมเดล Machine Learning ที่มีความถูกต้องมากที่สุดโดยอัตโนมัติด้วย Amazon SageMaker Autopilot

บทช่วยสอนนี้เป็นประโยชน์หรือไม่

รับชมการนำเสนอ Amazon SageMaker Studio

เรียนรู้เพิ่มเติมเกี่ยวกับ Amazon SageMaker Autopilot

หากต้องการเรียนรู้เพิ่มเติม ให้อ่านโพสต์บล็อกหรือดูชุดวิดีโอ Autopilot