การส่งเสริมรูปแบบการถดถอยโลจิสติก


11

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

ความแตกต่างที่สำคัญอย่างหนึ่งของการจำแนกต้นไม้และการถดถอยโลจิสติกคือคลาสเอาต์พุตก่อนหน้า (-1,1) ในขณะที่เอาต์พุตการถดถอยโลจิสติกแสดงผล แนวคิดหนึ่งคือการเลือกฟีเจอร์ X ที่ดีที่สุดจากชุดของฟีเจอร์และรับขีด จำกัด (0.5?) เพื่อแปลงโพรบเป็นคลาสจากนั้นใช้การถดถอยโลจิสติกแบบถ่วงน้ำหนักเพื่อค้นหาฟีเจอร์ถัดไปเป็นต้น

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

คำตอบ:


7

อย่าสับสนในการจัดการตัวทำนาย (ผ่านผู้เรียนพื้นฐานเช่นตอ) และการจัดการฟังก์ชั่นการสูญเสียในการส่งเสริม ถึงแม้ว่า AdaBoost อาจคิดว่าเป็นการหาชุดค่าผสมของผู้เรียนพื้นฐานเพื่อลดข้อผิดพลาดการจัดประเภท แต่กระดาษ"Additive Logistic Regression" ที่คุณอ้างถึงแสดงให้เห็นว่ายังสามารถกำหนดสูตรเพื่อลดฟังก์ชันการสูญเสียเลขชี้กำลัง ความเข้าใจนี้เปิดขึ้นวิธีการส่งเสริมในระดับกว้างของปัญหาเครื่องการเรียนรู้ที่ลดฟังก์ชั่นการสูญเสียอนุพันธ์ผ่านทางลาดส่งเสริม ส่วนที่เหลือที่เหมาะสมในแต่ละขั้นตอนคือส่วนที่เหลือหลอกเทียมคำนวณจากการไล่ระดับสีของฟังก์ชั่นการสูญเสีย แม้ว่าตัวทำนายจะถูกสร้างแบบจำลองเป็นตอไม้ไบนารีเอาต์พุตของโมเดลจึงไม่จำเป็นต้องเป็นตัวเลือกไบนารี

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

ดังนั้นหากคุณต้องการให้โลจิสติกส์ - การถดถอยเทียบเท่ากับการถดถอยที่เพิ่มขึ้นให้เน้นที่ฟังก์ชั่นการสูญเสียแทนที่จะเน้นที่ผู้เรียนพื้นฐาน นั่นคือสิ่งที่แนวทาง LogitBoost ในเอกสารที่คุณอ้างถึง: ลดการสูญเสียการบันทึกแทนที่จะลดการสูญเสียเลขชี้กำลังใน adaboost หน้า Wikipedia AdaBoostอธิบายความแตกต่างนี้

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

การใช้การเพิ่มระดับความลาดชันสำหรับการจำแนกประเภทสามารถให้ข้อมูลเกี่ยวกับความน่าจะเป็นพื้นฐาน ตัวอย่างเช่นหน้านี้ในการเพิ่มการไล่ระดับสีแสดงให้เห็นว่าsklearnรหัสอนุญาตให้เลือกระหว่างการสูญเสียความเบี่ยงเบนสำหรับการถดถอยโลจิสติกและการสูญเสียเลขชี้กำลังสำหรับ AdaBoost และฟังก์ชั่นเอกสารเพื่อทำนายความน่าจะเป็นจากรุ่นที่ไล่ระดับสี


ขอบคุณมากสำหรับคำตอบของคุณ. หากฉันเข้าใจอย่างถูกต้องเพื่อให้บรรลุการทำงานของการถดถอยโลจิสติกในบริบทของการส่งเสริมสิ่งที่ฉันต้องทำคือการใช้อัลกอริทึมการไล่ระดับสีไล่ระดับกับฟังก์ชั่นการสูญเสียโลจิสติก แต่การจำแนกต้นไม้ส่งออก {-1,1} ในขณะที่การถดถอยโลจิสติกซึ่งส่งออกน่าจะเป็น ยิ่งไปกว่านั้นการจำแนกต้นไม้พยายามลดดัชนีจินีแทนการสูญเสียโลจิสติกส์ ฉันคิดถึงบางสิ่งบางอย่างพื้นฐานที่นี่ ที่ไหนจะทำให้สูญเสียโลจิสติก? วิธีการส่งออกโพรบจากรุ่น?
gnikol

ฉันเข้าใจแนวคิดที่ y ต่อเนื่องเพราะต้นไม้การถดถอยลด mse ซึ่งเป็นฟังก์ชันการสูญเสียเดียวกันกับการถดถอยเชิงเส้น ดังนั้นฉันซ้ำต้นไม้ถดถอยพอดีกับส่วนที่เหลือ แต่ในบริบทของการจัดหมวดหมู่ต้นไม้การจัดหมวดหมู่ลดดัชนี gini หรือสิ่งที่คล้ายกัน มันเชื่อมโยงกับการถดถอยโลจิสติกส์หรือฟังก์ชันการสูญเสียของการถดถอยโลจิสติกอย่างไร?
gnikol

@gnikol ฉันได้แก้ไขคำตอบของฉันในแบบที่ฉันหวังว่าจะทำให้ชัดเจนยิ่งขึ้นทั้งกับคุณและผู้อ่านคนอื่น ๆ ส่วนที่เหลือที่เหมาะสมในการไล่ระดับสีเป็นแบบหลอกเทียมที่คำนวณจากการไล่ระดับสีของฟังก์ชันการสูญเสีย ทางเลือกของฟังก์ชั่นการสูญเสียคือสิ่งที่แตกต่าง AdaBoost จาก LogitBoost ความน่าจะเป็นที่ได้รับจากผู้เรียนที่แข็งแกร่งในทุกกรณี ฉันให้ลิงก์ไปยังตัวอย่างหนึ่งของการนำไปใช้ในย่อหน้าสุดท้าย
EdM

5

ในความเป็นจริงเรามีคำถามที่คล้ายกันมากที่นี่ในกรณีการถดถอย และเราได้รับคำตอบที่ดีมากโดย @ Matthew Drury

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

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

รายละเอียดสามารถพบได้ในโพสต์นี้ ในลิงค์นี้ฉันได้รับว่าทำไมการเพิ่มตัวแบบเชิงเส้นสองตัวไม่น่าสนใจ และฉันกำลังแสดงผลของการส่งเสริมการทำซ้ำการตัดสินใจตอโดยการทำซ้ำ

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

โปรดทราบว่าต้นไม้ตัดสินใจ / ตอไม่ได้เป็น "แบบจำลองเชิงเส้น" คล้ายกับการถดถอยโลจิสติก

ดูโพสต์นี้เพื่อดูรายละเอียด

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

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