สร้างโมเดล Machine Learning โดยอัตโนมัติ
ด้วย Amazon SageMaker Autopilot
Amazon SageMaker เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งช่วยให้นักพัฒนาและนักวิทยาศาสตร์ข้อมูลทุกคนสามารถสร้าง ฝึก และปรับใช้โมเดล Machine Learning (ML) ได้อย่างรวดเร็ว
ในบทช่วยสอนนี้ คุณจะสร้างโมเดล Machine Learning โดยอัตโนมัติโดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียว! คุณใช้ Amazon SageMaker Autopilot ซึ่งเป็นความสามารถ AutoML ที่จะสร้างโมเดล Machine Learning สำหรับการจัดหมวดหมู่และการถอยกลับที่ดีที่สุดโดยอัตโนมัติ และสามารถควบคุมและแสดงผลได้อย่างเต็มที่ในขณะเดียวกัน
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีทำสิ่งต่อไปนี้
- สร้างบัญชี AWS
- ติดตั้ง Amazon SageMaker Studio เพื่อเข้าถึง Amazon SageMaker Autopilot
- ดาวน์โหลดชุดข้อมูลสาธารณะโดยใช้ Amazon SageMaker Studio
- สร้างการทดลองใช้การฝึกอบรมด้วย Amazon SageMaker Autopilot
- สำรวจขั้นตอนต่างๆ ของการทดลองใช้การฝึกอบรม
- ระบุและปรับใช้โมเดลที่มีประสิทธิภาพสูงสุดจากการทดลองใช้การฝึกอบรม
- คาดการณ์ด้วยโมเดลที่คุณติดตั้งใช้จริง
ในบทช่วยสอนนี้ คุณจะได้รับบทบาทเป็นนักพัฒนาซึ่งทำงานที่ธนาคาร คุณจะได้รับคำขอให้พัฒนาโมเดล Machine Learning เพื่อคาดการณ์ว่าลูกค้าจะลงทะเบียนรับบัตรเงินฝาก (CD) หรือไม่ โมเดลจะได้รับการฝึกฝนเกี่ยวกับชุดข้อมูลการตลาดที่ประกอบด้วยข้อมูลด้านประชากรของลูกค้า การตอบรับกิจกรรมด้านการตลาด และปัจจัยภายนอก
เกี่ยวกับบทช่วยสอนนี้ | |
---|---|
เวลา | 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 สร้างบทบาทที่มีการอนุญาตที่จำเป็นและกำหนดบทบาทให้กับอินสแตนซ์ของคุณ
ขั้นตอนที่ 3 ดาวน์โหลดชุดข้อมูล
ทำตามขั้นตอนต่อไปนี้เพื่อดาวน์โหลดและสำรวจชุดข้อมูล
หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู การนำเสนอ Amazon SageMaker Studio ในเอกสารประกอบของ Amazon SageMaker
%%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:
- การวิเคราะห์ข้อมูล
- การสร้างคุณสมบัติ
- การปรับแต่งโมเดล
หมายเหตุ: หากต้องการทราบข้อมูลเพิ่มเติม โปรดดู ผลลัพธ์โน้ตบุ๊ค 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