ทำให้ข้อมูลของคุณสมดุลสำหรับการเรียนรู้ของเครื่องด้วย Amazon SageMaker Data Wrangler

โหนดต้นทาง: 1600102

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

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

ตัวดำเนินการสร้างสมดุลใหม่

ตัวดำเนินการสร้างสมดุลที่ประกาศใหม่จะถูกจัดกลุ่มภายใต้ ข้อมูลยอดคงเหลือ แปลงประเภทใน เพิ่มทรานฟอร์ม บานหน้าต่าง

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

แผนการสร้างสมดุลซึ่งเพิ่มข้อมูลให้มีความสมดุลมากขึ้นก่อนการฝึกอบรมตัวแยกประเภท ได้รับการเสนอเพื่อจัดการกับความท้าทายนี้ วิธีการสร้างสมดุลที่ง่ายที่สุดคือการสุ่มตัวอย่างคลาสของชนกลุ่มน้อยมากเกินไปโดยการทำซ้ำตัวอย่างส่วนน้อยหรือการสุ่มตัวอย่างคลาสส่วนใหญ่โดยการเอาตัวอย่างส่วนใหญ่ออก แนวคิดในการเพิ่มตัวอย่างชนกลุ่มน้อยสังเคราะห์ลงในข้อมูลแบบตารางได้รับการเสนอครั้งแรกในเทคนิค Synthetic Minority Oversampling Technique (SMOTE) โดยที่ตัวอย่างชนกลุ่มน้อยสังเคราะห์ถูกสร้างขึ้นโดยการสอดแทรกคู่ของจุดชนกลุ่มน้อยดั้งเดิม SMOTE และรูปแบบการทรงตัวอื่นๆ ได้รับการศึกษาอย่างกว้างขวางในเชิงประจักษ์ และแสดงให้เห็นเพื่อปรับปรุงประสิทธิภาพการคาดการณ์ในสถานการณ์ต่างๆ ตามการตีพิมพ์ เพื่อ SMOTE หรือไม่ SMOTE.

ขณะนี้ Data Wrangler รองรับตัวดำเนินการสร้างสมดุลต่อไปนี้ซึ่งเป็นส่วนหนึ่งของ ข้อมูลยอดคงเหลือ แปลง:

  • สุ่มตัวอย่างสุ่ม – สุ่มสุ่มตัวอย่างชนกลุ่มน้อย
  • ตัวสุ่มตัวอย่างสุ่ม – สุ่มเอาตัวอย่างส่วนใหญ่ออก
  • สโมต – สร้างตัวอย่างชนกลุ่มน้อยสังเคราะห์โดยการสอดแทรกตัวอย่างชนกลุ่มน้อยที่แท้จริง

ตอนนี้ เรามาพูดถึงตัวดำเนินการปรับสมดุลต่างๆ โดยละเอียดกัน

สุ่มตัวอย่าง

การสุ่มตัวอย่างเกินแบบสุ่มรวมถึงการเลือกตัวอย่างแบบสุ่มจากกลุ่มชนกลุ่มน้อยด้วยการแทนที่และการเสริมข้อมูลการฝึกอบรมด้วยสำเนาหลายชุดของอินสแตนซ์นี้ ดังนั้นจึงอาจเลือกอินสแตนซ์เดียวได้หลายครั้ง กับ สุ่ม เกินตัวอย่าง ประเภทการแปลง Data Wrangler จะสุ่มตัวอย่างคลาสของชนกลุ่มน้อยให้คุณโดยอัตโนมัติโดยการทำซ้ำตัวอย่างส่วนน้อยในชุดข้อมูลของคุณ

สุ่มตัวอย่าง

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

สโมต

ใน SMOTE ตัวอย่างชนกลุ่มน้อยสังเคราะห์จะถูกเพิ่มเข้าไปในข้อมูลเพื่อให้ได้อัตราส่วนที่ต้องการระหว่างกลุ่มตัวอย่างส่วนใหญ่และกลุ่มน้อย ตัวอย่างสังเคราะห์ถูกสร้างขึ้นโดยการแก้ไขคู่ของจุดชนกลุ่มน้อยดั้งเดิม ดิ สโมต การแปลงรองรับการปรับสมดุลชุดข้อมูลรวมถึงคุณสมบัติที่เป็นตัวเลขและไม่ใช่ตัวเลข คุณสมบัติตัวเลขถูกสอดแทรกด้วยค่าเฉลี่ยถ่วงน้ำหนัก อย่างไรก็ตาม คุณไม่สามารถใช้การประมาณค่าถัวเฉลี่ยถ่วงน้ำหนักกับคุณลักษณะที่ไม่ใช่ตัวเลข—เป็นไปไม่ได้ที่จะหาค่าเฉลี่ย “dog” และ “cat” ตัวอย่างเช่น. แต่คุณลักษณะที่ไม่ใช่ตัวเลขจะถูกคัดลอกจากกลุ่มตัวอย่างที่เป็นต้นฉบับตามน้ำหนักเฉลี่ย

ตัวอย่างเช่น พิจารณาสองตัวอย่าง A และ B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

สมมติว่าตัวอย่างถูกสอดแทรกด้วยน้ำหนัก 0.3 สำหรับตัวอย่าง A และ 0.7 สำหรับตัวอย่าง B ดังนั้น ฟิลด์ตัวเลขจะถูกเฉลี่ยด้วยน้ำหนักเหล่านี้เพื่อให้ได้ค่า 0.3 และ 0.6 ตามลำดับ ช่องถัดไปจะเต็มไปด้วย “dog” ด้วยความน่าจะเป็น 0.3 และ “cow” ด้วยความน่าจะเป็น 0.7 ในทำนองเดียวกัน อันถัดไปเท่ากับ “carnivore” ด้วยความน่าจะเป็น 0.3 และ “herbivore” ด้วยความน่าจะเป็น 0.7 การคัดลอกแบบสุ่มจะทำอย่างอิสระสำหรับแต่ละคุณลักษณะ ดังนั้นตัวอย่าง C ด้านล่างจึงเป็นผลลัพธ์ที่เป็นไปได้:

C = [0.3, 0.6, "dog", "herbivore"]

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

เพื่อสร้างตัวอย่างที่เหมือนจริงมากขึ้นในเชิงฮิวริสติก SMOTE จะสอดแทรกเฉพาะคู่ที่อยู่ใกล้เคียงในพื้นที่คุณลักษณะเท่านั้น ในทางเทคนิค แต่ละตัวอย่างจะถูกสอดแทรกเฉพาะกับเพื่อนบ้านที่ใกล้ที่สุด k โดยที่ค่าทั่วไปสำหรับ k คือ 5 ในการใช้งาน SMOTE ของเรา จะใช้เฉพาะคุณลักษณะที่เป็นตัวเลขในการคำนวณระยะทางระหว่างจุดต่างๆ (ระยะทางใช้เพื่อกำหนดพื้นที่ใกล้เคียง ของแต่ละตัวอย่าง) เป็นเรื่องปกติที่จะปรับคุณสมบัติตัวเลขให้เป็นมาตรฐานก่อนคำนวณระยะทาง โปรดทราบว่าคุณสมบัติตัวเลขจะถูกทำให้เป็นมาตรฐานเพื่อจุดประสงค์ในการคำนวณระยะทางเท่านั้น คุณลักษณะการสอดแทรกที่เป็นผลลัพธ์จะไม่ถูกทำให้เป็นมาตรฐาน

มาปรับสมดุล .กันเถอะ ชุดข้อมูลสำหรับผู้ใหญ่ (เรียกอีกอย่างว่าชุดข้อมูล Census Income) โดยใช้การแปลง SMOTE ในตัวที่จัดเตรียมโดย Data Wrangler ชุดข้อมูลหลายตัวแปรนี้ประกอบด้วยคุณสมบัติตัวเลขหกตัวและคุณสมบัติสตริงแปดตัว เป้าหมายของชุดข้อมูลเป็นงานการจัดประเภทไบนารีเพื่อคาดการณ์ว่ารายได้ของบุคคลจะเกิน 50,000 ดอลลาร์ต่อปีหรือไม่โดยอิงจากข้อมูลสำมะโน

คุณยังสามารถดูการกระจายของคลาสด้วยสายตาโดยการสร้างฮิสโตแกรมโดยใช้ ประเภทการวิเคราะห์ฮิสโตแกรมใน Data Wrangler. การกระจายเป้าหมายไม่สมดุลและอัตราส่วนของระเบียนกับ >50K ไปยัง <=50K ประมาณ 1:4

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

  1. Choose income เป็นคอลัมน์เป้าหมาย

เราต้องการให้การกระจายของคอลัมน์นี้มีความสมดุลมากขึ้น

  1. ตั้งค่าอัตราส่วนที่ต้องการเป็น 0.66.

ดังนั้นอัตราส่วนระหว่างจำนวนกลุ่มตัวอย่างและกลุ่มตัวอย่างส่วนใหญ่คือ 2:3 (แทนที่จะเป็นอัตราส่วนดิบ 1:4)

  1. Choose สโมต เป็นการแปลงไปใช้.
  2. ปล่อยให้เป็นค่าเริ่มต้นสำหรับ จำนวนเพื่อนบ้าน โดยเฉลี่ยและไม่ว่าจะทำให้ปกติหรือไม่
  3. Choose ดูตัวอย่าง เพื่อดูตัวอย่างการเปลี่ยนแปลงที่นำไปใช้และเลือก เพิ่ม เพื่อเพิ่มการแปลงให้กับกระแสข้อมูลของคุณ

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

ตอนนี้เราสามารถส่งออกข้อมูลที่สมดุลใหม่นี้และฝึกตัวแยกประเภท ซึ่งอาจให้คุณภาพการคาดการณ์ที่เหนือกว่า

สรุป

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

ในขั้นตอนต่อไป เราขอแนะนำให้คุณทำซ้ำตัวอย่างในโพสต์นี้ในโฟลว์ข้อมูล Data Wrangler ของคุณ เพื่อดูว่าเราได้พูดคุยกันถึงเรื่องใดบ้าง หากคุณยังใหม่กับ Data Wrangler หรือ SageMaker สตูดิโอ, เอ่ยถึง เริ่มต้นใช้งาน Data Wrangler. หากคุณมีคำถามใด ๆ เกี่ยวกับโพสต์นี้ โปรดเพิ่มในส่วนความคิดเห็น


เกี่ยวกับผู้เขียน

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

อรุณประศาสน์ เป็นสถาปนิกโซลูชันผู้เชี่ยวชาญด้านปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง (AI/ML) กับ AWS ซึ่งช่วยให้ลูกค้าทั่วโลกปรับขนาดโซลูชัน AI ของตนในระบบคลาวด์ได้อย่างมีประสิทธิภาพและประสิทธิผล ในเวลาว่าง อรุณชอบดูหนังไซไฟและฟังเพลงคลาสสิก

ที่มา: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

ประทับเวลา:

เพิ่มเติมจาก บล็อก AWS Machine Learning