พื้นฐาน AI

อะไรคือ Decision Tree?

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

อะไรคือ Decision Tree?

Decision Tree เป็นアルゴリズム Machine Learning ที่มีประโยชน์ ซึ่งใช้สำหรับทั้ง Regression และ Classification Tasks ชื่อ “Decision Tree” มาจากข้อเท็จจริงที่ว่าアルゴリズムนี้แบ่งชุดข้อมูลออกเป็นส่วนเล็กๆ จนกระทั่งข้อมูลถูกแบ่งออกเป็นกรณีๆ เดียว ซึ่งจะถูกจัดประเภท หากคุณเห็นผลลัพธ์ของアルゴリซึมเป็นภาพ คุณจะเห็นว่าหมวดหมู่ถูกแบ่งออกไปเหมือนกับ树และใบไม้

นี่คือคำอธิบาย Decision Tree อย่างรวดเร็ว แต่เรามาดูว่า Decision Tree ทำงานอย่างไรกัน การมีความเข้าใจที่ดีเกี่ยวกับวิธีการทำงานของ Decision Tree รวมถึงกรณีการใช้งาน จะช่วยให้คุณรู้ว่าเมื่อใดควรใช้ Decision Tree ในโปรเจ็กต์ Machine Learning ของคุณ

รูปแบบของ Decision Tree

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

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

アルゴリズムสำหรับ Decision Tree

Decision Tree ทำงานบนแนวทางアルゴリズึมที่แบ่งชุดข้อมูลออกเป็นจุดข้อมูลเดี่ยวๆ ตามเงื่อนไขต่างๆ การแบ่งนี้ทำด้วยตัวแปรหรือคุณลักษณะที่แตกต่างกันของชุดข้อมูล ตัวอย่างเช่น หากเป้าหมายคือการกำหนดว่าคำอธิบายที่ให้มาเป็นของสุนัขหรือแมวหรือไม่ ตัวแปรที่ใช้ในการแบ่งอาจเป็น “เล็บ” และ “เห่า”

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

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

ในกรณีของฟังก์ชันค่าใช้จ่ายสำหรับการทำนาย ฟังก์ชันที่ใช้ในการคำนวณค่าใช้จ่ายคือ

sum(y – prediction)^2

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

เกี่ยวกับฟังก์ชันค่าใช้จ่ายสำหรับการ分类 ฟังก์ชันคือ

G = sum(pk * (1 – pk))

นี่คือคะแนน Gini ซึ่งเป็นมาตรการของประสิทธิผลของการแบ่งตามจำนวนกรณีของคลาสที่แตกต่างกันในกลุ่มที่เกิดจากการแบ่ง การแบ่งที่ดีคือเมื่อกลุ่มที่เกิดจากการแบ่งประกอบด้วยกรณีจากคลาสเดียวเท่านั้น หากการแบ่งที่ดีถูกสร้างขึ้น ค่า “pk” จะเป็น 0 หรือ 1 และ G จะเท่ากับ 0

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

กระบวนการอื่นที่เกี่ยวข้องกับการสร้าง Decision Tree คือการปรับแต่ง การปรับแต่งสามารถช่วยเพิ่มประสิทธิผลของ Decision Tree โดยการลบสาขาที่มีคุณลักษณะที่มีพลังในการทำนายน้อย ในทางกลับกัน ความซับซ้อนของต้นไม้จะลดลง และมีแนวโน้มที่จะเกิดการ overfitting น้อยลง และประสิทธิผลของแบบจำลองจะเพิ่มขึ้น

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

ข้อพิจารณาในการใช้ Decision Tree

Decision Tree มีประโยชน์เมื่อต้องการทำการ分类 แต่เวลาในการคำนวณเป็นข้อจำกัด Decision Tree สามารถช่วยให้เห็นว่าคุณลักษณะใดในชุดข้อมูลที่เลือกมีพลังในการทำนายมากที่สุด นอกจากนี้ Decision Tree ยังสามารถแสดงกฎที่สามารถตีความได้ ซึ่งตรงกันข้ามกับアルゴリズึม Machine Learning อื่นๆ ที่กฎที่ใช้ในการจัดประเภทข้อมูลอาจยากต่อการเข้าใจ Decision Tree ยังสามารถใช้คุณลักษณะทั้งแบบคategoric และต่อเนื่องได้ ซึ่งหมายความว่าไม่ต้องการการประมวลผลล่วงหน้ามากนักเมื่อเทียบกับアルゴリซึมที่สามารถจัดการคุณลักษณะได้เพียงประเภทเดียว

Decision Tree มักจะไม่ทำงานได้ดีในการกำหนดค่าของคุณลักษณะที่ต่อเนื่อง อีกข้อจำกัดของ Decision Tree คือเมื่อทำการ分类 หากมีตัวอย่างการฝึกไม่มาก แต่มีคลาสหลายคลาส Decision Tree มักจะไม่แม่นยำ

นักบล็อกและโปรแกรมเมอร์ที่มีความเชี่ยวชาญใน Machine Learning และ Deep Learning หัวข้อ Daniel หวังที่จะช่วยให้ผู้อื่นใช้พลังของ AI สำหรับสิ่งที่ดี