โครงสร้างการตัดสินใจเป็นหน่วยการสร้างพื้นฐานของอัลกอริธึมฟอเรสต์แบบสุ่ม ถือว่าเป็นหนึ่งในอัลกอริธึมที่ได้รับความนิยมมากที่สุดในการเรียนรู้ของเครื่องและใช้เพื่อวัตถุประสงค์ในการจัดหมวดหมู่ เป็นที่นิยมอย่างมากเพราะเข้าใจง่าย
การตัดสินใจที่กำหนดโดยแผนผังการตัดสินใจสามารถใช้เพื่ออธิบายว่าทำไมจึงมีการคาดการณ์บางอย่าง ซึ่งหมายความว่าผู้ใช้จะเข้าและออกจากกระบวนการได้อย่างชัดเจน สิ่งเหล่านี้ยังเป็นพื้นฐานสำหรับวิธีการรวมกลุ่ม เช่น การบรรจุถุง การสุ่มป่า และการเร่งไล่ระดับ พวกเขายังเป็นที่รู้จักกันในนาม CART เช่นการจำแนกและการถดถอยต้นไม้ สามารถมองเห็นได้เป็นไบนารีทรี (อันที่ศึกษาในโครงสร้างข้อมูลและอัลกอริธึม)
ทุกโหนดในแผนผังแสดงถึงตัวแปรอินพุตเดี่ยว และโหนดปลายสุด (ซึ่งเรียกอีกอย่างว่าโหนดเทอร์มินัล) มีตัวแปรเอาต์พุต โหนดปลายสุดเหล่านี้ใช้สำหรับการทำนายบนโหนด เมื่อมีการสร้างโครงสร้างการตัดสินใจ แนวคิดพื้นฐานคือพื้นที่ที่กำหนดจะถูกแบ่งออกเป็นหลายส่วน ค่าทั้งหมดถูกจัดทำขึ้นและพยายามแยกส่วนที่แตกต่างกันเพื่อให้ได้ต้นทุนที่น้อยลงและค่าการทำนายที่ดีที่สุด ค่าเหล่านี้ถูกเลือกอย่างตะกละตะกลาม
การแยกโหนดเหล่านี้จะดำเนินต่อไปจนกว่าจะถึงความลึกสูงสุดของต้นไม้ แนวคิดเบื้องหลังการใช้โครงสร้างการตัดสินใจคือการแบ่งชุดข้อมูลที่ป้อนเข้าออกเป็นชุดข้อมูลที่มีขนาดเล็กลงตามค่าคุณลักษณะเฉพาะ จนกว่าตัวแปรเป้าหมายทุกตัวจะอยู่ในหมวดหมู่เดียว การแบ่งส่วนนี้จัดทำขึ้นเพื่อให้ได้รับข้อมูลสูงสุดในทุกขั้นตอน
แผนภูมิการตัดสินใจทุกต้นเริ่มต้นด้วยการรูท และนี่คือสถานที่ที่มีการแยกส่วนแรก ควรหาวิธีที่มีประสิทธิภาพเพื่อให้แน่ใจว่ามีการกำหนดโหนด
นี่คือที่มาของค่า Gini Gini ถือเป็นหนึ่งในการวัดที่ใช้บ่อยที่สุดในการวัดความไม่เท่าเทียมกัน ความไม่เท่าเทียมกันหมายถึงคลาสเป้าหมาย (เอาต์พุต) ซึ่งทุกชุดย่อยในโหนดอาจเป็นของ
ดังนั้น ค่าจินีจะถูกคำนวณหลังจากการแยกทุกครั้ง จากค่าจินี/ค่าอสมการ การรับข้อมูลสามารถกำหนดได้
DecisionTreeClassifier ใช้เพื่อทำการจำแนกประเภทหลายคลาส
ด้านล่างเป็นไวยากรณ์เดียวกัน
class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)
ต่อไปนี้เป็นตัวอย่าง −
ตัวอย่าง
from sklearn import tree from sklearn.model_selection import train_test_split my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28], [131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]] target_vals =['Man','Woman','Man','Woman', 'Woman','Man','Woman','Woman', 'Woman','Woman','Woman','Man','Man', 'Man','Woman', 'Woman', 'Woman', 'Woman','Man','Woman','Woman'] data_feature_names = ['Feature_1','Feature_2'] X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1) clf = tree.DecisionTreeClassifier() print("The decision tree classifier is being called") DTclf = clf.fit(my_data,target_vals) prediction = DTclf.predict([[135,29]]) print("The predicted value is ") print(prediction)
ผลลัพธ์
The decision tree classifier is being called The predicted value is ['Woman']
คำอธิบาย
- แพ็คเกจที่จำเป็นจะถูกนำเข้าไปยังสภาพแวดล้อม
- รหัสนี้ใช้เพื่อจำแนกค่าของค่าเป้าหมายตามค่าคุณลักษณะ
- มีการกำหนดเวกเตอร์คุณลักษณะและค่าเป้าหมาย
- ข้อมูลจะถูกแบ่งออกเป็นชุดการฝึกและการทดสอบโดยใช้ฟังก์ชัน "train_test_split"
- มีการเรียก DecisionTreeClassifier และข้อมูลนั้นเหมาะสมกับโมเดล
- ฟังก์ชัน "ทำนาย" ใช้เพื่อคาดคะเนค่าของค่าคุณลักษณะ
- ผลลัพธ์จะแสดงบนคอนโซล