เทคนิค 6 อันดับแรกที่ใช้ในวิศวกรรมคุณลักษณะ [การเรียนรู้ของเครื่อง]

เผยแพร่แล้ว: 2021-03-12

สารบัญ

บทนำ

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

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

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

วิศวกรรมคุณลักษณะ

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

1. การเปลี่ยนแปลงมูลค่า

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

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

นอกจากนี้ยังช่วยในการลดขนาดของค่าในคุณลักษณะ สิ่งนี้มีประโยชน์เมื่อเราใช้อัลกอริธึมบางอย่างซึ่งถือว่าคุณลักษณะที่มีค่ามากกว่ามีความสำคัญมากกว่าคุณลักษณะอื่นๆ

2. การใส่ข้อมูล

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

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

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

เข้าร่วม หลักสูตรปัญญาประดิษฐ์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก – ปริญญาโท โปรแกรม Executive Post Graduate และหลักสูตรประกาศนียบัตรขั้นสูงใน ML & AI เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

3. การเข้ารหัสตามหมวดหมู่

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

1. การเข้ารหัสแบบใช้ครั้งเดียว: – การเข้ารหัสแบบใช้ครั้งเดียวจะสร้างคุณลักษณะใหม่ที่ใช้ค่า (0 หรือ 1) สำหรับแต่ละป้ายกำกับในคุณลักษณะตามหมวดหมู่ คุณลักษณะใหม่นี้ระบุว่าป้ายกำกับของหมวดหมู่นั้นมีอยู่สำหรับการสังเกตแต่ละครั้งหรือไม่ ตัวอย่างเช่น สมมติว่ามีป้ายกำกับ 4 รายการในคุณลักษณะการจัดหมวดหมู่ จากนั้นเมื่อใช้การเข้ารหัสแบบด่วนครั้งเดียว จะสร้างคุณลักษณะบูลีน 4 รายการ

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

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

3. การเข้ารหัสตามลำดับ: – หรือที่เรียกว่าการเข้ารหัสฉลาก วิธีการนี้จะจับคู่ค่าที่แตกต่างกันของคุณสมบัติการจัดหมวดหมู่ด้วยตัวเลขตั้งแต่ 0 ถึง n-1 โดยที่ n เป็นจำนวนป้ายที่ชัดเจนในคุณสมบัติ วิธีนี้จะไม่ขยายพื้นที่คุณสมบัติของชุดข้อมูล แต่จะสร้างความสัมพันธ์ตามลำดับภายในป้ายกำกับในฟีเจอร์

4. การจัดการค่าผิดปกติ

ค่าผิดปกติคือจุดข้อมูลที่มีค่าแตกต่างจากล็อตที่เหลืออย่างมาก เพื่อจัดการกับค่าผิดปกติเหล่านี้ เราต้องตรวจหาสิ่งผิดปกติก่อน เราสามารถตรวจจับพวกมันได้โดยใช้การแสดงภาพ เช่น box-plot และ scatter-plot ใน Python หรือเราอาจใช้ช่วงควอไทล์ (IQR) ช่วงระหว่างควอไทล์คือความแตกต่างระหว่างไตรมาสแรก (เปอร์เซ็นต์ไทล์ที่ 25) และไตรมาสที่สาม (เปอร์เซ็นต์ไทล์ที่ 75)

ค่าที่ไม่อยู่ในช่วงของ (Q1 – 1.5*IQR) และ (Q3 + 1.5*IQR) จะเรียกว่าค่าผิดปกติ หลังจากตรวจพบค่าผิดปกติแล้ว เราสามารถจัดการได้โดยลบออกจากชุดข้อมูล ใช้การแปลงบางส่วน ถือว่ามีค่าที่ขาดหายไปเพื่อระบุค่าโดยใช้วิธีการบางอย่าง เป็นต้น

5. คุณสมบัติการปรับขนาด

การปรับขนาดคุณลักษณะใช้เพื่อเปลี่ยนค่าของคุณลักษณะและเพื่อให้อยู่ในช่วง สิ่งสำคัญคือต้องใช้กระบวนการนี้ หากเราใช้อัลกอริทึม เช่น SVM การถดถอยเชิงเส้น KNN ฯลฯ ที่มีความไวต่อขนาดของค่า ในการปรับขนาดคุณลักษณะ เราสามารถดำเนินการสร้างมาตรฐาน การทำให้เป็นมาตรฐาน ปรับขนาดต่ำสุด-สูงสุด การทำให้เป็นมาตรฐานจะปรับสเกลค่าของช่วงจุดสนใจจาก -1 เป็น 1 ซึ่งเป็นอัตราส่วนของการลบของการสังเกตแต่ละครั้งและค่าเฉลี่ยต่อการลบค่าสูงสุดและต่ำสุดของจุดสนใจนั้น เช่น [X – ค่าเฉลี่ย (X)]/[สูงสุด (X) – ขั้นต่ำ (X)]

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

6. การจัดการตัวแปรวันที่และเวลา

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

สิ่งหนึ่งที่คนส่วนใหญ่พลาดไปคือตัวแปรวันที่และเวลาทั้งหมดเป็นคุณลักษณะแบบวนซ้ำ ตัวอย่างเช่น สมมติว่าเราต้องตรวจสอบว่าวันใดระหว่างวันพุธ (3) และวันเสาร์ (7) ที่ใกล้กับวันอาทิตย์มากที่สุด (เป็น 1) ตอนนี้เรารู้แล้วว่าวันเสาร์ใกล้เข้ามาแล้ว แต่ในแง่ตัวเลข มันจะเป็นวันพุธ เนื่องจากระยะห่างระหว่าง 3 ถึง 1 น้อยกว่า 7 และ 1 จะใช้แบบเดียวกันนี้ได้เมื่อรูปแบบเวลาอยู่ในรูปแบบ 24 ชั่วโมง

เพื่อแก้ไขปัญหานี้ เราสามารถแสดงตัวแปรเหล่านี้แทนฟังก์ชัน sin และ cos สำหรับคุณสมบัติ 'นาที' เราสามารถใช้ฟังก์ชัน sin และ cos โดยใช้ NumPy เพื่อแสดงเป็นวงจรดังนี้:

minutes_feature_sin = np.sin(df['minute_feature']*(2*π/60))

minutes_feature_cos = np.cos(df['minute_feature']*(2*π/60))

(หมายเหตุ: หารด้วย 60 เพราะในหนึ่งชั่วโมงมี 60 นาที หากต้องการทำเป็นเดือน ให้หารด้วย 12 ไปเรื่อยๆ)

โดยการพล็อตคุณลักษณะเหล่านี้บนแผนผังแบบกระจาย คุณจะสังเกตเห็นว่าคุณลักษณะเหล่านี้แสดงความสัมพันธ์แบบวนรอบระหว่างคุณลักษณะเหล่านี้

อ่านเพิ่มเติม: แนวคิดและหัวข้อโครงการการเรียนรู้ของเครื่อง

บทสรุป

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

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

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's Executive PG Program in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT -B สถานะศิษย์เก่า 5+ โครงการหลักที่ปฏิบัติได้จริง & ความช่วยเหลืองานกับ บริษัท ชั้นนำ

อะไรคือข้อเสียของการใช้เทคนิคการใส่ข้อมูลตามค่ามัธยฐาน?

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

เหตุใดจึงต้องมีการดึงคุณลักษณะ

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

มีข้อเสียของการใช้เทคนิคการแยกคุณลักษณะหรือไม่?

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