ทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการเพิ่มประสิทธิภาพอัลกอริธึมฟอเรสต์แบบสุ่ม
เผยแพร่แล้ว: 2020-12-22สมมติว่าคุณได้สร้างโปรแกรมการเรียนรู้ของเครื่องและใช้แบบจำลองฟอเรสต์แบบสุ่มสำหรับการฝึกอบรม อย่างไรก็ตาม ผลลัพธ์/ผลลัพธ์ของโปรแกรมไม่แม่นยำอย่างที่คุณต้องการ แล้วคุณจะทำอย่างไร?
มีสามวิธีในการปรับปรุงโมเดลการเรียนรู้ของเครื่องเพื่อปรับปรุงผลลัพธ์ของโปรแกรมการเรียนรู้ของเครื่อง:
- ปรับปรุงคุณภาพข้อมูลอินพุตและวิศวกรรมคุณสมบัติ
- การปรับแต่งไฮเปอร์พารามิเตอร์ของอัลกอริทึม
- การใช้อัลกอริธึมต่างๆ
แต่ถ้าคุณใช้แหล่งข้อมูลทั้งหมดที่มีอยู่แล้วจะเป็นอย่างไร ขั้นตอนต่อไปคือการปรับแต่งไฮเปอร์พารามิเตอร์ ดังนั้น หากคุณได้สร้างโปรแกรมการเรียนรู้ของเครื่องด้วยโมเดลฟอเรสต์แบบสุ่ม ใช้แหล่งข้อมูลที่ดีที่สุด และต้องการปรับปรุงผลลัพธ์ของโปรแกรมเพิ่มเติม คุณควรเลือกใช้ การปรับแต่งไฮเปอร์พารามิเตอร์ฟอเร สต์ แบบสุ่ม
ก่อนที่เราจะเจาะลึก การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเร สต์ ก่อนอื่นมาดูที่ไฮเปอร์พารามิเตอร์และการปรับแต่งไฮเปอร์พารามิเตอร์โดยทั่วไปกันก่อน
สารบัญ
ไฮเปอร์พารามิเตอร์คืออะไร?
ในบริบทของการเรียนรู้ของเครื่อง ไฮเปอร์พารามิเตอร์คือพารามิเตอร์ที่มีค่าที่ใช้ในการควบคุมกระบวนการเรียนรู้ของแบบจำลอง สิ่งเหล่านี้อยู่ภายนอกโมเดล และไม่สามารถประมาณค่าจากข้อมูลได้
สำหรับ การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเรสต์แบบสุ่ม ไฮเปอร์ พารามิเตอร์จะรวมจำนวนของทรีการตัดสินใจและจำนวนของคุณสมบัติที่พิจารณาโดยทรีแต่ละทรีในระหว่างการแยกโหนด

การปรับแต่งไฮเปอร์พารามิเตอร์คืออะไร?
การปรับแต่งไฮเปอร์พารามิเตอร์เป็นกระบวนการในการค้นหาชุดไฮเปอร์พารามิเตอร์ในอุดมคติสำหรับปัญหาการเรียนรู้ของเครื่อง
ตอนนี้เราได้เห็นแล้วว่าการปรับแต่งไฮเปอร์พารามิเตอร์และไฮเปอร์พารามิเตอร์คืออะไร ให้เราดูที่ไฮเปอร์พารามิเตอร์ในฟอเรสต์ แบบสุ่มและการปรับแต่งไฮเปอร์พารามิเตอร์ ของฟอเรสต์แบบ สุ่ม
อ่าน: คำถามสัมภาษณ์ต้นไม้ตัดสินใจ
การปรับแต่ง Hyperparameter Forest แบบสุ่มคืออะไร?
เพื่อทำความเข้าใจว่า การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเรสต์แบบสุ่ม คืออะไร เราจะดูที่ไฮเปอร์พารามิเตอร์ห้ารายการและการปรับแต่งไฮเปอร์พารามิเตอร์สำหรับแต่ละรายการ
ไฮเปอร์พารามิเตอร์ 1: max_depth
max_deep เป็นเส้นทางที่ยาวที่สุดระหว่างโหนดรูทและโหนดปลายสุดในทรีในอัลกอริธึมฟอเรสต์แบบสุ่ม โดยการปรับไฮเปอร์พารามิเตอร์นี้ เราสามารถจำกัดความลึกที่เราต้องการให้ต้นไม้เติบโตในอัลกอริธึมฟอเรสต์แบบสุ่ม ไฮเปอร์พารามิเตอร์นี้ช่วยลดการเติบโตของแผนผังการตัดสินใจด้วยการทำงานในระดับมหภาค
ไฮเปอร์พารามิเตอร์ 2: max_terminal_nodes
ไฮเปอร์พารามิเตอร์นี้จำกัดการเติบโตของแผนผังการตัดสินใจในฟอเรสต์แบบสุ่มโดยการตั้งค่าเงื่อนไขในการแยกโหนดในทรี การแยกโหนดจะหยุด และการเติบโตของต้นไม้จะหยุดหากมีโหนดปลายทางมากกว่าจำนวนที่ระบุหลังจากแยก
ตัวอย่างเช่น สมมติว่าเรามีโหนดเดียวในแผนผัง และโหนดปลายทางสูงสุดถูกตั้งค่าเป็นสี่โหนด เนื่องจากมีเพียงโหนดเดียว ในการเริ่มต้น โหนดจะถูกแยกออก และต้นไม้จะเติบโตต่อไป หลังจากที่การแบ่งถึงขีดจำกัดสูงสุดที่สี่ โครงสร้างการตัดสินใจจะไม่เติบโตต่อไปเนื่องจากการแยกจะสิ้นสุดลง การใช้การปรับค่าพารามิเตอร์ไฮเปอร์พารามิเตอร์ max_terminal_nodes จะช่วยป้องกันไม่ให้มีการปรับค่ามากเกินไป อย่างไรก็ตาม หากค่าการปรับแต่งมีขนาดเล็กมาก ป่าก็มีแนวโน้มที่จะไม่สมดุล
การอ่านที่เกี่ยวข้อง: การจำแนกต้นไม้การตัดสินใจ
ไฮเปอร์พารามิเตอร์ 3: n_estimators
นักวิทยาศาสตร์ด้านข้อมูลมักเผชิญกับภาวะที่กลืนไม่เข้าคายไม่ออกของจำนวนต้นไม้การตัดสินใจที่ต้องพิจารณา บางคนอาจกล่าวได้ว่าการเลือกต้นไม้ให้มากขึ้นเป็นวิธีที่จะไป สิ่งนี้อาจเป็นจริง แต่ยังเพิ่มความซับซ้อนของเวลาของอัลกอริธึมฟอเรสต์แบบสุ่ม
ด้วยการปรับค่าไฮเปอร์พารามิเตอร์ n_estimators เราสามารถกำหนดจำนวนต้นไม้ในแบบจำลองฟอเรสต์แบบสุ่มได้ ค่าเริ่มต้นของพารามิเตอร์ n_estimators คือสิบ ซึ่งหมายความว่ามีการสร้างแผนผังการตัดสินใจที่แตกต่างกันสิบแบบโดยค่าเริ่มต้น โดยการปรับไฮเปอร์พารามิเตอร์นี้ เราสามารถเปลี่ยนจำนวนต้นไม้ที่จะสร้างได้

ไฮเปอร์พารามิเตอร์ 4: max_features
ด้วยการปรับค่าไฮเปอร์พารามิเตอร์นี้ เราสามารถตัดสินใจจำนวนคุณสมบัติที่จะจัดเตรียมให้กับต้นไม้แต่ละต้นในป่า โดยทั่วไป หากตั้งค่าคุณสมบัติสูงสุดเป็นหก ประสิทธิภาพโดยรวมของรุ่นจะสูงที่สุด อย่างไรก็ตาม คุณยังสามารถตั้งค่าพารามิเตอร์คุณสมบัติสูงสุดเป็นค่าเริ่มต้นได้ ซึ่งก็คือสแควร์รูทของจำนวนฟีเจอร์ที่มีอยู่ในชุดข้อมูล
ไฮเปอร์พารามิเตอร์ 5: min_samples_split
การปรับแต่งไฮเปอร์พารามิเตอร์นี้จะกำหนดจำนวนตัวอย่างขั้นต่ำที่จำเป็นในการแยกโหนดปลายสุดภายใน โดยค่าเริ่มต้น ค่าของพารามิเตอร์นี้คือสอง หมายความว่าในการแยกโหนดภายใน ต้องมีตัวอย่างอย่างน้อยสองตัวอย่าง
จะทำการปรับแต่ง Hyperparameter Forest แบบสุ่มได้อย่างไร?
คุณต้องดำเนินการ ปรับแต่งไฮเปอร์พารามิเตอร์ฟอเรสต์แบบสุ่ม ด้วยตนเอง โดยการเรียกใช้ฟังก์ชันที่สร้างแบบจำลอง การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเรสต์แบบสุ่ม เป็นวิธีการทดลองมากกว่าวิธีทางทฤษฎี ดังนั้น คุณอาจต้องลองปรับแต่งไฮเปอร์พารามิเตอร์หลายๆ แบบรวมกัน และประเมินประสิทธิภาพของแต่ละรายการก่อนที่จะตัดสินใจเลือก
ตัวอย่างเช่น สมมติว่าคุณต้องปรับจำนวนตัวประมาณและการแยกต้นไม้ขั้นต่ำในอัลกอริธึมฟอเรสต์แบบสุ่ม ดังนั้น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดำเนินการปรับแต่งไฮเปอร์พารามิเตอร์:

ฟอเรสต์ = RandomForestClassifier (random_state = 1, n_estimators = 20, min_samples_split = 2)
ในตัวอย่างข้างต้น จำนวนตัวประมาณจะเปลี่ยนจากค่าเริ่มต้นที่สิบเป็นยี่สิบ ดังนั้น แทนที่จะเป็นต้นไม้ตัดสินใจสิบต้น อัลกอริธึมจะสร้างต้นไม้ยี่สิบต้นในป่าสุ่ม ในทำนองเดียวกัน โหนดปลายสุดภายในจะถูกแยกออกก็ต่อเมื่อมีตัวอย่างอย่างน้อยสองตัวอย่าง
บทสรุป
เราหวังว่าบล็อกนี้จะช่วยให้คุณเข้าใจ การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเร สต์ แบบสุ่ม มีไฮเปอร์พารามิเตอร์อื่นๆ อีกมากมายที่คุณปรับแต่งได้เพื่อปรับปรุงผลลัพธ์ของโปรแกรมการเรียนรู้ของเครื่อง ในกรณีส่วนใหญ่ การปรับไฮเปอร์พารามิเตอร์ก็เพียงพอที่จะปรับปรุงผลลัพธ์ของโปรแกรมการเรียนรู้ของเครื่อง
อย่างไรก็ตาม ในบางกรณี แม้แต่ การปรับแต่งไฮเปอร์พารามิเตอร์ของฟอเรสต์แบบสุ่ม ก็อาจไม่เป็นประโยชน์ ในสถานการณ์เช่นนี้ คุณจะต้องพิจารณาอัลกอริธึมการเรียนรู้ของเครื่องอื่น เช่น การถดถอยเชิงเส้นหรือโลจิสติก KNN หรืออัลกอริทึมอื่นๆ ที่คุณเห็นว่าเหมาะสม
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแผนผังการตัดสินใจ แมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมอย่างเข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ , สถานะศิษย์เก่า IIIT-B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ
เหตุใดจึงใช้อัลกอริธึมฟอเรสต์แบบสุ่ม
อัลกอริธึมฟอเรสต์แบบสุ่มเป็นหนึ่งในโมเดลที่ใช้กันอย่างแพร่หลายมากที่สุดเมื่อพูดถึงหมวดหมู่ของอัลกอริธึมการเรียนรู้ภายใต้การดูแลในแมชชีนเลิร์นนิง อัลกอริธึมฟอเรสต์แบบสุ่มสามารถแก้ปัญหาทั้งการจำแนกประเภทและการถดถอยในการเรียนรู้ของเครื่อง โดยมุ่งเน้นที่การเรียนรู้แบบกลุ่ม ซึ่งเป็นแนวคิดที่รวมตัวแยกประเภทหลายตัวเพื่อแก้ปัญหาที่ซับซ้อน เพื่อให้สามารถปรับปรุงการทำงานโดยรวมและผลลัพธ์ของแบบจำลองได้ อัลกอริธึมแบบสุ่มของฟอเรสต์เป็นที่นิยมเพราะใช้เวลาฝึกน้อยกว่ามากเมื่อเทียบกับอัลกอริธึมอื่นๆ นอกจากนี้ยังสามารถนำเสนอการคาดการณ์ที่มีความแม่นยำสูงสำหรับชุดข้อมูลจำนวนมาก แม้ว่าข้อมูลบางส่วนจะขาดหายไปก็ตาม
ต้นไม้แห่งการตัดสินใจและป่าสุ่มแตกต่างกันอย่างไร
อัลกอริธึมทรีการตัดสินใจเป็นเทคนิคการเรียนรู้ภายใต้การดูแลในแมชชีนเลิร์นนิง ซึ่งจำลองโครงสร้างต้นไม้เดียวที่ประกอบเป็นชุดของการตัดสินใจที่ตามมาซึ่งนำไปสู่ผลลัพธ์ที่เฉพาะเจาะจง โครงสร้างการตัดสินใจนั้นง่ายต่อการตีความและทำความเข้าใจ แต่มักจะไม่เพียงพอสำหรับการแก้ปัญหาที่ซับซ้อนมากขึ้น นี่คือจุดที่อัลกอริธึมฟอเรสต์แบบสุ่มมีประโยชน์ โดยใช้ประโยชน์จากแผนผังการตัดสินใจหลายแบบเพื่อแก้ไขปัญหาเฉพาะ กล่าวอีกนัยหนึ่ง อัลกอริธึมฟอเรสต์แบบสุ่มสุ่มสร้างแผนผังการตัดสินใจหลายชุดและรวมผลลัพธ์เพื่อสร้างผลลัพธ์สุดท้าย แม้ว่าฟอเรสต์สุ่มจะตีความได้ยากกว่าแผนผังการตัดสินใจ แต่ก็ให้ผลลัพธ์ที่แม่นยำเมื่อมีข้อมูลจำนวนมากเข้ามาเกี่ยวข้อง
อะไรคือข้อดีของการใช้อัลกอริธึมฟอเรสต์แบบสุ่ม?
ข้อได้เปรียบที่ยิ่งใหญ่ที่สุดของการใช้อัลกอริธึมฟอเรสต์แบบสุ่มคือความยืดหยุ่น คุณสามารถใช้เทคนิคนี้สำหรับทั้งงานการจำแนกประเภทและการถดถอย นอกเหนือจากความเก่งกาจแล้ว อัลกอริธึมนี้ยังมีประโยชน์อย่างยิ่ง – พารามิเตอร์เริ่มต้นที่ใช้นั้นมีประสิทธิภาพเพียงพอสำหรับการสร้างความแม่นยำสูงในการคาดการณ์ นอกจากนี้ โมเดลการจำแนกประเภทการเรียนรู้ของเครื่องยังเป็นที่รู้จักสำหรับปัญหาต่างๆ เช่น การใส่มากเกินไป หากมีต้นไม้จำนวนมากในอัลกอริธึมฟอเรสต์แบบสุ่ม ปัญหาการจัดประเภทมากเกินไปสามารถเอาชนะได้อย่างง่ายดาย