ผู้เรียนพื้นฐานเชิงเส้นทำงานอย่างไรในการส่งเสริม และมันทำงานอย่างไรในห้องสมุด xgboost


9

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

การอ้างอิงใด ๆ กับเอกสารเกี่ยวกับการเพิ่มประสิทธิภาพเชิงเส้นใน XGBoost จะได้รับการชื่นชม

แก้ไข: เพิ่มการเชิงเส้นสามารถนำมาใช้ใน XGBoost โดยการตั้งค่าพารามิเตอร์ 'บูสเตอร์' เป็น 'gblinear' ดู: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/สำหรับข้อมูลที่เป็นประโยชน์เกี่ยวกับการเพิ่มประสิทธิภาพเชิงเส้น โปรดทราบว่าฉันไม่ได้พูดเกี่ยวกับฟังก์ชั่นวัตถุประสงค์ (ซึ่งอาจเป็นเชิงเส้น) แต่เกี่ยวกับการเพิ่มพวกเขาเอง

ขอบคุณ!


1
ฉันไม่รู้ว่าจะใช้งานได้อย่างไร แต่ฉันไม่เห็นเหตุผลว่าทำไมจึงควรพิจารณาคุณลักษณะหนึ่งครั้งเท่านั้น
Alexey Grigorev

@AlexeyGrigorev เป็นไปได้ว่าอาจต้องใช้คุณสมบัติหลายอย่างในเวลาเดียวกัน แต่จะเลือกคุณลักษณะเหล่านี้อย่างไร เอกสารใด ๆ ในกระบวนการเฉพาะสำหรับการเพิ่มประสิทธิภาพแบบลิเนียร์จะมีความชัดเจนมาก
Escachator

คำตอบ:


17

คำถามสั้น ๆ สำหรับคุณ:

เมื่ออัลกอริทึมมันเหมาะกับส่วนที่เหลือ (หรือการไล่ระดับสีลบ) คือการใช้คุณลักษณะหนึ่งอย่างในแต่ละขั้นตอน (เช่นรุ่น univariate) หรือคุณลักษณะทั้งหมด (โมเดลหลายตัวแปร)?

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

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


คำตอบยาว ๆ สำหรับผู้เรียนเชิงเส้นในฐานะผู้เรียนที่อ่อนแอสำหรับการส่งเสริม:

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

ในการส่งเสริมโมเดลของเราคือผลรวมของผู้เรียนพื้นฐาน:

f(x)=m=1Mbm(x)

โดยที่คือจำนวนการวนซ้ำในการเพิ่มระดับเป็นแบบจำลองสำหรับการทำซ้ำMbmmth

ตัวอย่างเช่นถ้าผู้เรียนพื้นฐานเป็นเส้นตรงสมมติว่าเราเพิ่งรันการวนซ้ำครั้งและ และดังนั้น2b1=β0+β1xb2=θ0+θ1x

f(x)=m=12bm(x)=β0+β1x+θ0+θ1x=(β0+θ0)+(β1+θ1)x

ซึ่งเป็นโมเดลเชิงเส้นอย่างง่าย! กล่าวอีกนัยหนึ่งโมเดลวงดนตรีมี "พลังเดียวกัน" กับผู้เรียนพื้นฐาน!

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


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

ฉันทำกระชับฟังก์ชั่นที่มีข้อมูลถูกสร้างขึ้นโดยฟังก์ชันกำลังสองง่าย 2 นี่คือความจริงพื้นดินที่เต็มไปด้วยรูปร่าง (ซ้าย) และตอการตัดสินใจขั้นสุดท้ายส่งเสริมการกระชับ (ขวา)f(x,y)=x2+y2

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้ตรวจสอบการวนซ้ำสี่ครั้งแรก

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุแตกต่างจากผู้เรียนแบบเส้นตรงโมเดลในการทำซ้ำครั้งที่ 4 ไม่สามารถทำได้โดยการทำซ้ำหนึ่งครั้ง (ตอการตัดสินใจเดียวเดียว) กับพารามิเตอร์อื่น ๆ


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

ตัวอย่างเดียวกัน แต่ในพล็อต 3 มิติเส้นโค้งสีแดงคือข้อมูลและระนาบสีเขียวเป็นขนาดสุดท้าย คุณสามารถเห็นได้อย่างง่ายดายโมเดลสุดท้ายคือโมเดลเชิงเส้นและมันz=mean(data$label)ขนานกับระนาบ x, y (คุณสามารถคิดได้ว่าทำไมเพราะนี่คือข้อมูลของเราคือ "สมมาตร" ดังนั้นความเอียงของระนาบจะเพิ่มการสูญเสีย) ตอนนี้ตรวจสอบสิ่งที่เกิดขึ้นในการทำซ้ำ 4 ครั้งแรก: โมเดลที่ได้รับการติดตั้งจะค่อยๆขึ้นไปถึงค่าที่เหมาะสมที่สุด

ป้อนคำอธิบายรูปภาพที่นี่


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

โพสต์ที่เกี่ยวข้อง:

การไล่ระดับสีเพื่อเพิ่มการถดถอยเชิงเส้น - ทำไมมันไม่ทำงาน?

การตัดสินใจเป็นตอแบบจำลองเชิงเส้นหรือไม่?


1
ฉันจะบอกว่าการรวมกันของต้นไม้ n เป็นต้นไม้ไม่ว่ามันจะใหญ่แค่ไหน!
Metariat

@Metariat NO! ต้นไม้รวมกันไม่ใช่ต้นไม้! สำหรับต้นไม้คุณจะเห็นรูปร่าง "T" แยก แต่ตอเพิ่มขึ้นคุณจะเห็นรูปร่าง "#" นั่นคือการแยกจะข้ามการแยกอื่น ๆ !
Haitao Du

คุณสามารถยกตัวอย่างของต้นไม้ n หรือไม่? ฉันจะให้ต้นไม้ที่เทียบเท่ากับคุณ!
Metariat

@Metariat ขออภัยฉันไม่มีเวลาเลย แต่ฉันแน่ใจว่าการส่งเสริมตอการตัดสินใจไม่สามารถสร้างขึ้นได้อย่างง่ายดายโดยแผนผังการตัดสินใจ จะกลับมาที่คำถามนี้เมื่อฉันมีเวลา
Haitao Du

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