หลังจากตรวจสอบข้อมูลผ่านเทคนิคทางสถิติและการแสดงภาพแล้ว คุณควรเปลี่ยนรูปแบบข้อมูลในลักษณะที่จะช่วยให้โมเดลได้รับการฝึกอย่างมีประสิทธิภาพมากขึ้น เป้าหมายของการปรับให้เป็นมาตรฐานคือการเปลี่ยนรูปแบบฟีเจอร์ให้อยู่ในระดับที่คล้ายกัน ตัวอย่างเช่น ลองพิจารณาฟีเจอร์ 2 อย่างต่อไปนี้
- ฟีเจอร์
X
อยู่ในช่วง 154 ถึง 24,917,482 - ฟีเจอร์
Y
อยู่ในช่วง 5 ถึง 22
ฟีเจอร์ทั้ง 2 นี้มีความแตกต่างกันมาก การทำให้มาตรฐานอาจดัดแปลง X
และ Y
เพื่อให้อยู่ในช่วงเดียวกัน เช่น 0 ถึง 1
การปรับให้เป็นมาตรฐานมีประโยชน์ดังนี้
- ช่วยให้โมเดลเข้าใกล้ค่าที่ถูกต้องได้เร็วขึ้นระหว่างการฝึก เมื่อฟีเจอร์ต่างๆ มีช่วงต่างกัน การลดเชิงลาดอาจ "ตีกลับ" และทำให้การทำงานช้าลง แต่เครื่องมือเพิ่มประสิทธิภาพขั้นสูงอื่นๆ เช่น อาดากราด และ Adam ป้องกันปัญหานี้ด้วยการ เปลี่ยนแปลงอัตราการเรียนรู้ที่มีประสิทธิภาพเมื่อเวลาผ่านไป
- ช่วยให้โมเดลคาดการณ์ได้ดีขึ้น เมื่อฟีเจอร์ต่างๆ มีช่วงต่างกัน โมเดลที่ได้อาจทําการคาดการณ์ที่มีประโยชน์น้อยลง
- ช่วยหลีกเลี่ยง "กับดัก NaN" เมื่อค่าของฟีเจอร์สูงมาก
NaN เป็นตัวย่อของnot a number เมื่อค่าในโมเดลเกินขีดจำกัดความแม่นยำของทศนิยม ระบบจะตั้งค่าเป็น
NaN
แทนตัวเลข เมื่อตัวเลขหนึ่งในโมเดลกลายเป็น NaN ตัวเลขอื่นๆ ใน โมเดลดังกล่าวจะกลายเป็น NaN ในที่สุด - ช่วยให้โมเดลเรียนรู้น้ำหนักที่เหมาะสมสำหรับแต่ละฟีเจอร์ หากไม่มีการปรับขนาดฟีเจอร์ โมเดลจะให้ความสำคัญกับโมเดลมากเกินไป ให้กับสถานที่ที่มีขอบเขตกว้าง และไม่น่าสนใจมากพอกับสถานที่ที่มี ในช่วงที่แคบลง
เราขอแนะนําให้ทำให้ฟีเจอร์ที่เป็นตัวเลขเป็นมาตรฐานโดยครอบคลุมช่วงที่แตกต่างกันอย่างชัดเจน (เช่น อายุและรายได้)
นอกจากนี้ เราขอแนะนําให้ทำให้ฟีเจอร์ตัวเลขรายการเดียวเป็นมาตรฐานซึ่งครอบคลุมช่วงกว้าง เช่น city population.
ลองพิจารณา 2 ฟีเจอร์ต่อไปนี้
- ค่าต่ำสุดของฟีเจอร์
A
คือ -0.5 และค่าสูงสุดคือ +0.5 - ค่าต่ำสุดของฟีเจอร์
B
คือ -5.0 และสูงสุดคือ +5.0
ฟีเจอร์ A
และฟีเจอร์ B
มีช่วงแคบกว่าเมื่อเทียบกับฟีเจอร์อื่นๆ อย่างไรก็ตาม ฟีเจอร์ B
มีช่วงเวลากว้างกว่าช่วงของฟีเจอร์ A
ถึง 10 เท่า ดังนั้น
- ในช่วงเริ่มต้นการฝึกโมเดลจะถือว่าฟีเจอร์
A
"สำคัญ" กว่าฟีเจอร์B
10 เท่า - การฝึกจะใช้เวลานานกว่าที่ควร
- รูปแบบที่ได้อาจไม่ดีพอ
ความเสียหายโดยรวมเนื่องจากการไม่ทำให้เป็นมาตรฐานจะค่อนข้างน้อย อย่างไรก็ตาม เรายังคงแนะนําให้ทำให้ฟีเจอร์ ก และ ข เป็นมาตรฐานเดียวกัน ซึ่งอาจเป็น -1.0 ถึง +1.0
คราวนี้ให้พิจารณาฟีเจอร์ 2 อย่างที่มีช่วงแตกต่างกันมากกว่ากัน:
- ค่าต่ำสุดของฟีเจอร์
C
คือ -1 และสูงสุดคือ +1 - ค่าต่ำสุดของฟีเจอร์
D
คือ +5000 และค่าสูงสุดคือ +1,000,000,000
หากคุณไม่ทำให้ฟีเจอร์ C
และฟีเจอร์ D
เป็นมาตรฐาน โมเดลของคุณมีแนวโน้มที่จะ
ด้อยประสิทธิภาพ นอกจากนี้ การฝึกจะใช้เวลานานขึ้นมาก
บรรจบกันหรือแม้แต่ล้มเหลวในการบรรจบกันทั้งหมด!
ส่วนนี้จะกล่าวถึงวิธีการทําให้เป็นมาตรฐานที่นิยมกัน 3 วิธี ได้แก่
- การปรับขนาดเชิงเส้น
- การปรับขนาดคะแนนมาตรฐาน (Z-Score)
- การปรับขนาดบันทึก
ส่วนนี้ยังครอบคลุมถึง การตัดเนื้อหา แม้ว่าจะไม่ใช่เทคนิคการปรับให้เป็นมาตรฐานอย่างแท้จริง แต่การตัดทอนจะควบคุมฟีเจอร์ตัวเลขที่ควบคุมยากให้อยู่ในช่วงที่จะสร้างโมเดลที่ดีขึ้นได้
การปรับสเกลเชิงเส้น
การปรับสเกลเชิงเส้น (มักเรียกสั้นๆ ว่าการปรับสเกล) หมายถึงการเปลี่ยนค่าทศนิยมจากช่วงปกติเป็นช่วงมาตรฐาน ซึ่งมักจะเป็น 0 ถึง 1 หรือ -1 ถึง +1
การปรับขนาดเชิงเส้นเป็นตัวเลือกที่ดีเมื่อเป็นไปตามเงื่อนไขทั้งหมดต่อไปนี้
- ขอบเขตล่างและบนของข้อมูลจะไม่มีการเปลี่ยนแปลงมากนักเมื่อเวลาผ่านไป
- ฟีเจอร์มีค่าผิดปกติน้อยหรือไม่มีเลย และค่าผิดปกติเหล่านั้นไม่ได้อยู่ในช่วงสุดขั้ว
- องค์ประกอบมีการกระจายอย่างสม่ำเสมอทั่วทั้งช่วง กล่าวคือ ฮิสโตแกรมจะแสดงแท่งที่มีความสูงใกล้เคียงกันสำหรับค่าส่วนใหญ่
สมมติว่ามนุษย์ age
เป็นฟีเจอร์ การแปลงค่าเชิงเส้นเป็นเทคนิคการปรับมาตรฐานที่ดีสําหรับ age
เนื่องจาก
- ขอบเขตล่างและขอบเขตบนโดยประมาณคือ 0 ถึง 100
age
มีค่าที่ผิดปกติในเปอร์เซ็นต์ค่อนข้างต่ำ เพียงประมาณ 0.3% มีประชากรมากกว่า 100 คน- แม้ว่าบางวัยจะมีตัวอย่างที่ดีกว่ากลุ่มอื่นๆ แต่ชุดข้อมูลขนาดใหญ่ควรมีตัวอย่างที่เพียงพอสำหรับทุกวัย
แบบฝึกหัด: ตรวจสอบความเข้าใจ
สมมติว่าโมเดลของคุณมีฟีเจอร์ชื่อnet_worth
ที่มีเน็ต
ของผู้คนที่หลากหลาย การปรับสเกลเชิงเส้นเป็นการปรับมาตรฐานที่ดีไหม
เทคนิคสำหรับnet_worth
เพราะเหตุใด
การปรับขนาดคะแนนมาตรฐาน (Z-Score)
คะแนน Z คือจำนวนค่าเบี่ยงเบนมาตรฐานที่ค่ามาจากค่าเฉลี่ย เช่น ค่าที่เป็นค่าเบี่ยงเบนมาตรฐาน 2 ค่ามากกว่าค่าเฉลี่ย มีคะแนน Z ที่ +2.0 ค่าที่ส่วนเบี่ยงเบนมาตรฐาน 1.5 น้อยกว่า ค่าเฉลี่ยมีคะแนน Z เท่ากับ -1.5
การแสดงฟีเจอร์ด้วยการกำหนดคะแนน Z หมายถึงการจัดเก็บสถานที่ คะแนน Z ในเวกเตอร์ของจุดสนใจ ตัวอย่างเช่น รูปต่อไปนี้แสดง ฮิสโตแกรม:
- ทางด้านซ้าย เป็นการกระจายปกติแบบคลาสสิก
- ทางด้านขวาคือการแจกแจงเดียวกันที่ปรับมาตรฐานโดยการปรับขนาดคะแนน z
การปรับขนาดคะแนน z ยังเป็นตัวเลือกที่ดีสําหรับข้อมูลอย่างเช่นที่แสดงในรูปภาพต่อไปนี้ ซึ่งมีเพียงการแจกแจงแบบปกติเพียงเล็กน้อย
ค่า z เป็นตัวเลือกที่ดีเมื่อข้อมูลเป็นไปตามการแจกแจงแบบปกติหรือการแจกแจงที่คล้ายกับการแจกแจงแบบปกติ
โปรดทราบว่าการกระจายบางรายการอาจเป็นเรื่องปกติในกลุ่มของ
แต่ยังมีค่าผิดปกติที่สูงมาก ตัวอย่างเช่น แทบทุกส่วน
คะแนนในฟีเจอร์ net_worth
อาจพอดีกับส่วนเบี่ยงเบนมาตรฐาน 3 ค่าพอดี
แต่ตัวอย่างเล็กๆ น้อยๆ ของฟีเจอร์นี้อาจเป็นค่าเบี่ยงเบนมาตรฐานหลายร้อยค่า
ออกห่างจากค่าเฉลี่ย ในสถานการณ์เหล่านี้ คุณสามารถรวมการปรับขนาดคะแนน Z เข้ากับการปรับให้เป็นมาตรฐานรูปแบบอื่น (โดยปกติคือการตัด) เพื่อจัดการกับสถานการณ์นี้
แบบฝึกหัด: ตรวจสอบความเข้าใจ
สมมติว่าโมเดลของคุณฝึกกับฟีเจอร์ชื่อheight
ที่มีข้อมูลความสูงของผู้หญิงวัยผู้ใหญ่ 10 ล้านคน การปรับสเกลคะแนนมาตรฐาน (Z-Score) จะเป็นการปรับมาตรฐานที่ดีไหม
เทคนิคสำหรับheight
เพราะเหตุใด
การปรับขนาดบันทึก
การแปลงข้อมูลเป็นลําดับเลขฐาน 10 จะคํานวณลอการิทึมของค่าดิบ ในทางทฤษฎี ลอการิทึมอาจเป็นฐานใดก็ได้ ในทางปฏิบัติ การปรับขนาดไฟล์บันทึกจะคำนวณ ลอการิทึมธรรมชาติ (LN)
การกําหนดขนาดข้อมูลแบบลอจิกมีประโยชน์เมื่อข้อมูลเป็นไปตามการแจกแจงแบบกฎกำลัง กล่าวง่ายๆ ก็คือ การกระจายของกฎหมายอำนาจจะมีลักษณะดังต่อไปนี้
- ค่าต่ำสุดของ
X
มีค่าY
สูงมาก - เมื่อค่าของ
X
เพิ่มขึ้น ค่าของY
ก็ลดลงอย่างรวดเร็ว ดังนั้นX
ที่มีค่าสูงจึงมีY
ที่มีค่าต่ำมาก
การจัดประเภทภาพยนตร์เป็นตัวอย่างที่ดีของการแจกแจงเชิงกำลัง ดังต่อไปนี้ รูป ข้อสังเกต
- ภาพยนตร์บางเรื่องมีคะแนนจากผู้ใช้จำนวนมาก (ค่า
X
ที่ต่ำจะมีค่าสูงY
) - ภาพยนตร์ส่วนใหญ่มีคะแนนจากผู้ใช้น้อยมาก (ค่า
X
ที่สูงมีค่าY
ที่ต่ำ)
การปรับขนาดบันทึกจะเปลี่ยนแปลงการกระจาย ซึ่งจะช่วยฝึกโมเดลที่จะ คาดการณ์ได้ดีขึ้น
ตัวอย่างที่ 2 คือ ยอดขายหนังสือเป็นไปตามการแจกแจงแบบกำลังเนื่องจาก
- หนังสือที่ตีพิมพ์ส่วนใหญ่ขายได้เพียงไม่กี่เล่ม อาจจะ 1-2 ร้อยเล่ม
- หนังสือบางเล่มขายได้จำนวนปานกลางในหลักพัน
- มีหนังสือขายดีเพียงไม่กี่เล่มเท่านั้นที่ขายได้มากกว่าล้านเล่ม
สมมติว่าคุณกําลังฝึกโมเดลเชิงเส้นเพื่อหาความสัมพันธ์ของสิ่งต่างๆ เช่น ปกหนังสือกับยอดขายหนังสือ การฝึกโมเดลเชิงเส้นกับค่าดิบ ต้องหาบางอย่างเกี่ยวกับปกหนังสือในหนังสือที่ขายได้เป็นล้านเล่ม ซึ่งมีประสิทธิภาพมากกว่าปกหนังสือที่ขายได้เพียง 100 เล่มเสียอีก อย่างไรก็ตาม การบันทึกการปรับขนาดตัวเลขยอดขายทั้งหมดทําให้งานนี้เป็นไปได้จริงมากขึ้น เช่น บันทึกของ 100 คือ
~4.6 = ln(100)
ขณะที่บันทึกของ 1,000,000 คือ
~13.8 = ln(1,000,000)
ดังนั้น ลอgarithm ของ 1,000,000 จึงมีค่ามากกว่าลอgarithm ของ 100 เพียงประมาณ 3 เท่า คุณอาจจินตนาการได้ว่าภาพปกหนังสือขายดีมีประสิทธิภาพมากกว่า (ในบางแง่) ปกหนังสือที่ขายได้น้อยประมาณ 3 เท่า
เสียงขาดๆ หายๆ
การตัดเป็นเทคนิคในการลดอิทธิพลของค่าที่ผิดปกติมาก โดยสรุปแล้ว การตัดทอนมักจะเป็นตัวพิมพ์ใหญ่ (ลด) ค่าของค่าผิดปกติเป็นค่าสูงสุดเฉพาะ การคลิปเป็นแนวคิดที่แปลก แต่กลับมีประสิทธิภาพมาก
ตัวอย่างเช่น สมมติว่าชุดข้อมูลมีฟีเจอร์ชื่อ roomsPerPerson
ซึ่งแสดงถึงจำนวนห้อง (ห้องทั้งหมดหารด้วย
ตามจำนวนคนอยู่) สำหรับบ้านหลายแห่ง ผังต่อไปนี้แสดงให้เห็นว่าค่าฟีเจอร์มากกว่า 99% เป็นไปตามการแจกแจงปกติ (ค่าเฉลี่ยโดยประมาณคือ 1.8 และค่าเบี่ยงเบนมาตรฐานคือ 0.7) อย่างไรก็ตาม ฟีเจอร์นี้มีข้อผิดพลาดบางรายการ ซึ่งบางรายการก็รุนแรง
คุณลดอิทธิพลของค่าผิดปกติสุดขั้วเหล่านั้นได้อย่างไร เอาล่ะ
ฮิสโตแกรมไม่ใช่การแจกแจงแบบสม่ำเสมอ การกระจายแบบปกติ หรือกฎกำลังไฟฟ้า
จะเกิดอะไรขึ้นหากคุณจำกัดหรือตัดค่าสูงสุดของ roomsPerPerson
ไว้ที่ค่าที่กำหนด เช่น 4.0
การตัดค่าคุณลักษณะที่ 4.0 ไม่ได้หมายความว่าโมเดลของคุณจะละเว้น สูงกว่า 4.0 แต่หมายความว่าค่าทั้งหมดที่มากกว่า 4.0 จะกลายเป็น 4.0 นี่คือภูเขาแปลกๆ ในเวอร์ชัน 4.0 แม้ว่า ในตอนนี้ ชุดคุณลักษณะที่มีการปรับขนาดมีประโยชน์มากกว่าข้อมูลเดิม
โปรดรอสักครู่ คุณลดค่าที่ผิดปกติทุกค่าให้อยู่ต่ำกว่าเกณฑ์บนที่กำหนดเองได้ไหม ใช่ เมื่อฝึกโมเดล
นอกจากนี้ คุณยังตัดค่าหลังจากใช้การแปลงค่ารูปแบบอื่นๆ ได้ด้วย ตัวอย่างเช่น สมมติว่าคุณใช้การปรับสเกลคะแนน Z แต่มีค่าผิดปกติเพียงเล็กน้อย ค่าสัมบูรณ์มากกว่า 3 ในกรณีนี้ คุณจะทำสิ่งต่อไปนี้ได้
- ตัดคะแนน Z ที่มากกว่า 3 ให้เหลือ 3
- ตัด Z-score ที่น้อยกว่า -3 ให้เท่ากับ -3
การตัดข้อมูลจะช่วยป้องกันไม่ให้โมเดลจัดทําดัชนีข้อมูลที่ไม่สําคัญมากเกินไป อย่างไรก็ตาม ค่าผิดปกติบางอย่างมีความสำคัญจริงๆ ดังนั้นค่าคลิปควร พิจารณาอย่างรอบคอบ
สรุปเทคนิคการปรับมาตรฐาน
เทคนิคการทำนอร์มัลไลซ์ | สูตร | กรณีที่ควรใช้ |
---|---|---|
การปรับสเกลเชิงเส้น | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | เมื่อสถานที่มีการเผยแพร่อย่างเท่าเทียมกัน เป็นช่วงคงที่ |
การปรับขนาดคะแนนมาตรฐาน | $$ x' = \frac{x - μ}{σ}$$ | เมื่อการแจกแจงฟีเจอร์ไม่มีค่าที่ผิดปกติมาก |
การปรับขนาดบันทึก | $$ x' = log(x)$$ | เมื่อฟีเจอร์เป็นไปตามกฎกำลัง |
เสียงขาดๆ หายๆ | หาก $x > max$ ให้ตั้งค่า $x' = max$ หาก $x < min$ ให้ตั้งค่า $x' = min$ |
เมื่อฟีเจอร์มีค่าผิดปกติอย่างมาก |
แบบฝึกหัด: ทดสอบความรู้
สมมติว่าคุณกำลังพัฒนาโมเดลที่คาดการณ์ของศูนย์ข้อมูล
ประสิทธิภาพการทำงานโดยพิจารณาจากอุณหภูมิที่วัดภายในศูนย์ข้อมูล
ค่า temperature
เกือบทั้งหมดในชุดข้อมูลอยู่ในช่วง 15-30 (องศาเซลเซียส) โดยมีข้อยกเว้นต่อไปนี้
- 1-2 ครั้งต่อปีในวันที่อากาศร้อนจัด ระบบบันทึกค่า 2-3 ค่าระหว่าง 31 ถึง 45 ใน
temperature
- ทุกๆ 1,000 จุดใน
temperature
ได้รับการตั้งค่าเป็น 1,000 แทนที่จะเป็นอุณหภูมิจริง
เทคนิคการปรับมาตรฐานที่สมเหตุสมผลสําหรับ temperature
คืออะไร
ค่า 1,000 เป็นค่าที่ผิดพลาด และควรลบออกแทน ถูกตัด
ค่าระหว่าง 31 ถึง 45 เป็นจุดข้อมูลที่ถูกต้อง การจำกัดค่าเหล่านี้อาจเป็นความคิดที่ดี ในกรณีที่ชุดข้อมูลไม่มีตัวอย่างมากพอในช่วงอุณหภูมินี้เพื่อฝึกโมเดลให้ทำการคาดการณ์ที่ดี แต่ในระหว่างการอนุมาน โปรดทราบว่า โมเดลที่ตัดทอนจะสร้างการคาดการณ์เดียวกันสำหรับ อุณหภูมิอยู่ที่ 45 เท่ากับอุณหภูมิที่ 35