ทำไมต้นไม้การตัดสินใจจึงไม่ได้มีราคาแพง


38

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

ฉันเข้าใจผิดว่าการแยกแบบไบนารีนั้นทำงานอย่างไร หรือมีเหตุผลที่อัลกอริทึมนี้จะใช้เวลาไม่นาน?


1
+1 สำหรับคำถาม คุณสามารถเริ่มตรวจสอบบันทึกการบรรยายนี้หน้า 15 ใช้แทนO ( N 2 )อัลกอริทึม O(N)O(N2)
Haitao Du

คำตอบ:


40

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


10
กล่าวอีกนัยหนึ่งมันเปรียบได้กับการค้นหาแบบไบนารี
Robert Harvey

1
log2(N)

2
เห็นด้วย แต่หลักการยังคงถือ (นั่นเป็นเหตุผลที่ฉันใช้คำว่า "มากหรือน้อย")
Robert Harvey

2

มีความแตกต่างบางอย่างระหว่าง CART และ C4.5 อัลกอริทึมสำหรับการสร้างแผนภูมิการตัดสินใจ ตัวอย่างเช่น CART ใช้ Gini Impurity เพื่อเลือกคุณลักษณะในขณะที่ C.4.5 ใช้ Shannon Entropy ฉันไม่คิดว่าความแตกต่างนั้นมีความเกี่ยวข้องกับคำตอบดังนั้นฉันจะไม่แยกความแตกต่างระหว่างสิ่งเหล่านั้น

อะไรทำให้ต้นไม้ตัดสินใจเร็วกว่าที่คุณคิด:

  1. อย่างที่คนอื่นพูดกันว่าอัลกอริธึมเหล่านี้เป็นอัลกอริธึม 1-lookahead พวกเขาทำการเพิ่มประสิทธิภาพท้องถิ่น ในทุกสาขาพวกเขาเลือกกฎที่เพิ่ม / ย่อส่วนสูงสุดที่ใช้ (Gini หรือ Entropy) ซึ่งหมายความว่าพวกเขาอาจพลาดกฎที่ใช้ตัวดำเนินการเชิงตรรกะเช่นandจะส่งผลให้ต้นไม้ดีขึ้น ซึ่งหมายความว่าคุณควรระมัดระวัง / ฉลาดเมื่อทำวิศวกรรมฟีเจอร์ new_feature = hour > 22 & hour < 4 & (friday_night | saturday_night)ตัวอย่างเช่นสมมติว่าคุณกำลังพยายามที่จะคาดการณ์ว่ามากคนดื่มเครื่องดื่มที่คุณอาจต้องการคุณลักษณะวิศวกรสิ่งที่ต้องการ ต้นไม้ตัดสินใจอาจพลาดกฎเหล่านี้หรือให้ความสำคัญน้อยกว่าที่ควร
  2. X1={3,1.5,2.5,2,1}X <= 1X <= 1.5X <= 2X1={1,1.5,2,2.5,3}X <= 1X <= 1.5x¯vx¯nx¯+vn+1
  3. ต้นไม้การตัดสินใจสามารถขนาน แต่ละโหนดประกอบด้วยสองสาขาซึ่งเป็นอิสระ ดังนั้นในแต่ละสาขาคุณมีโอกาสที่จะสร้างการขนานต้นไม้ นอกจากนี้การเลือกคุณสมบัติเองยังสามารถทำให้ขนานกันได้ นี่คือสิ่งที่ทำให้แพคเกจxgboostอย่างรวดเร็ว การไล่ระดับสีอย่างต่อเนื่องเป็นไปตามลำดับและไม่สามารถทำให้ขนานกันได้ แต่ต้นไม้สามารถทำได้

1

เพียงเพื่อเสริมคำตอบ

ต้นไม้ตัดสินใจแบบขนานกับแกนลำดับชั้นมีความรวดเร็ว (CART, C4.5) แต่มีทางเลือกอื่นเช่นต้นไม้ตัดสินใจที่ไม่เป็นลำดับชั้นหรือต้นไม้ที่มีพาร์ทิชันเอียงที่ไม่ใช่แม้ว่าจะมีความแม่นยำมากกว่า ตรวจสอบข้อมูลอ้างอิงต่อไปนี้หากคุณสนใจ (ไม่ใช่ตัวเลือกที่น่าสนใจ)

Non-ลำดับชั้น:

Grubinger, T. , Zeileis, A. และ Pfeiffer, K.-., 2014. Evtree: การเรียนรู้เชิงวิวัฒนาการของการจำแนกที่เหมาะสมที่สุดในระดับโลกและต้นไม้การถดถอยใน RJStat ซอฟต์แวร์ 61 (1), 1-29

แบ่งเฉียง:

Murthy, SK, Kasif, S. และ Salzberg, S. , 1994 ระบบที่ใช้ในการชักนำต้นไม้การตัดสินใจแบบเอียง J. Artif Intell Res 2 (1), 1-32 http://dx.doi.org/doi:10.1613/jair.63 Cantú-Paz, E. และ Kamath, C. , 2003. ชักนำให้ต้นไม้การตัดสินใจแบบเอียงมีขั้นตอนวิธีวิวัฒนาการ IEEE Trans Evol คอมพิวเต 7 (1), 54-68 http://dx.doi.org/10.1109/TEVC.2002.806857 เฮลธ์, D. , Kasif, S. และ Salzberg, S. , 1993. การชักนำให้ต้นไม้ตัดสินใจเอียง J. Artif Intell Res 2 (2), 1002-1007

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.