วิธีการทำให้เป็นมาตรฐานสำหรับการถดถอยโลจิสติก


42

การทำให้เป็นปกติโดยใช้วิธีการเช่น Ridge, Lasso, ElasticNet นั้นค่อนข้างทั่วไปสำหรับการถดถอยเชิงเส้น ฉันต้องการที่จะรู้ว่าต่อไปนี้: วิธีการเหล่านี้ใช้สำหรับการถดถอยโลจิสติก? ถ้าเป็นเช่นนั้นมีความแตกต่างในวิธีที่พวกเขาต้องใช้สำหรับการถดถอยโลจิสติกหรือไม่? หากวิธีการเหล่านี้ใช้ไม่ได้จะทำให้การถดถอยโลจิสติกเป็นปกติได้อย่างไร


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

1
นี่เป็นภาพรวมทั่วไปที่ชำนาญและเป็นระเบียบมากขึ้น ตำราเบื้องต้นสำหรับวิธีการทำให้เป็นมาตรฐาน (สัน, Lasso, Elasticnet ฯลฯ ) ที่ฉันเจอตัวอย่างการถดถอยเชิงเส้นที่กล่าวถึงโดยเฉพาะ ไม่ใช่คนเดียวที่พูดถึงโลจิสติกส์โดยเฉพาะดังนั้นคำถาม
TAK

1
Logistic Regression เป็นรูปแบบของ GLM โดยใช้ฟังก์ชั่นการเชื่อมโยงที่ไม่ใช่ตัวตนใช้งานได้เกือบทุกอย่าง
Firebug

1
คุณสะดุดวิดีโอของ Andrew Ngในหัวข้อนี้หรือไม่?
Antoni Parellada

Ridge, lasso และ elastic net regression เป็นตัวเลือกยอดนิยม แต่มันไม่ใช่ตัวเลือกการทำให้เป็นปกติเท่านั้น ตัวอย่างเช่นการฝึกอบรมการปรับให้เรียบจะทำหน้าที่ลงโทษด้วยอนุพันธ์อันดับสองขนาดใหญ่เพื่อให้พารามิเตอร์การทำให้เป็นมาตรฐานช่วยให้คุณสามารถ "เรียกเลขหมายใน" การถดถอยซึ่งเป็นการประนีประนอมที่ดีระหว่างการปรับข้อมูลให้น้อยเกินไป เช่นเดียวกับการถดถอยของตาข่ายริดจ์ / ลาสโซยืดหยุ่นเหล่านี้ยังสามารถใช้กับการถดถอยโลจิสติก
Reinstate Monica

คำตอบ:


49

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

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

ในการตั้งค่าฟังก์ชั่นการสูญเสียเราสามารถมีการสูญเสียที่แตกต่างกันทั้งในกรณีการถดถอยและการจำแนกประเภท ตัวอย่างเช่นกำลังสองน้อยที่สุดและการสูญเสียความเบี่ยงเบนสัมบูรณ์สามารถนำมาใช้สำหรับการถดถอย และการแทนทางคณิตศาสตร์ของพวกเขาคือและ. (ฟังก์ชั่นถูกกำหนดไว้ที่สองสเกลาร์,คือค่าความจริงภาคพื้นดินและเป็นค่าที่คาดการณ์ไว้)L(y^,y)=(y^y)2L(y^,y)=|y^y|L()yy^

ในทางกลับกันการสูญเสียโลจิสติกและการสูญเสียบานพับสามารถใช้สำหรับการจำแนกประเภท การแสดงคณิตศาสตร์ของพวกเขาที่มีและ + (ที่นี่คือป้ายความจริงภาคพื้นดินในและถูกคาดการณ์ไว้ว่า "คะแนน" คำจำกัดความของนั้นผิดปกติเล็กน้อยโปรดดูส่วนความคิดเห็น)L(y^,y)=log(1+exp(y^y))L(y^,y)=(1y^y)+y{1,1}y^y^

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

ดังนั้นในระดับสูงวิธีการเชิงเส้นคือ

minimizew   x,yL(wx,y)+λh(w)

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

ตัวอย่างเช่นในการถดถอยริดจ์ปัญหาการปรับให้เหมาะสมคือ

minimizew   x,y(wxy)2+λww

หากคุณเปลี่ยนฟังก์ชั่นการสูญเสียด้วยการสูญเสียโลจิสติกปัญหาจะกลายเป็น

minimizew   x,ylog(1+exp(wxy))+λww

ที่นี่คุณมีการถดถอยโลจิสติกด้วยการทำให้เป็นมาตรฐาน L2


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

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

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

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

นี่คืออีกตัวอย่างหนึ่งที่มีการทำให้เป็นมาตรฐาน L1

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

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


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

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


บางความคิดเห็นสัญกรณ์ และคือเวกเตอร์คอลัมน์,คือสเกลาร์ ดังนั้นรูปแบบเชิงเส้นx หากเราต้องการรวมคำดักจับเราสามารถผนวกเป็นคอลัมน์ลงในข้อมูลwxyy^=f(x)=wx1

ในการตั้งค่าการถดถอยเป็นจำนวนจริงและในการจำแนกการตั้งค่า\}yy{1,1}

โปรดสังเกตว่ามันแปลกเล็กน้อยสำหรับคำจำกัดความของในการตั้งค่าการจัดหมวดหมู่ เนื่องจากคนส่วนใหญ่ใช้เพื่อเป็นตัวแทนของมูลค่าที่คาดการณ์ของปีในกรณีของเราเป็นจำนวนจริง แต่ไม่ได้อยู่ใน\} เราใช้คำนิยามนี้ของเพราะเราสามารถทำให้สัญกรณ์ขาดทุนโลจิสติกและการสูญเสียบานพับได้ง่ายขึ้นy^=wxy^yy^=wx{1,1}y^

โปรดสังเกตว่าในระบบสัญกรณ์อื่น ๆรูปแบบของฟังก์ชั่นการสูญเสียโลจิสติกจะแตกต่างกันy{0,1}

รหัสสามารถพบได้ในคำตอบอื่น ๆ ของฉันที่นี่

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


4
คำตอบที่ดี แต่ฉันไม่เห็นอะไรเลย (ยกเว้นสัญกรณ์) ในคำอธิบายที่แนะนำว่าคุณต้อง จำกัด วิธีการเชิงเส้น คุณมีคำตอบเดียวกัน แต่แทนที่ w ด้วย f และถูกแทนที่ด้วยหรือไม่ ผู้คนใช้การทำให้เป็นปกติสำหรับวิธีที่ไม่เชิงเส้นเช่นเครือข่ายประสาท wTxf(x)
DavidR

ขอบคุณสำหรับคำตอบ @ hxd1011 คุณช่วยอธิบายหน่อยได้ไหมว่าเส้นสีดำทึบใดแสดงอยู่ในกราฟรูปร่าง? เพื่อให้แม่นยำยิ่งขึ้นฉันรู้ว่า (ตามที่คุณอธิบาย) แกน x และ y แสดงพารามิเตอร์ 2 ตัวที่เราใช้ แต่สิ่งที่เกี่ยวกับเส้นทึบและตัวเลขของพวกเขาเช่น 8000, 10,000, 12000 ขอบคุณ!
Jespar


12

วิธีการหดตัว / การทำให้เป็นมาตรฐานที่ แต่เดิมเสนอให้สำหรับการถดถอยโลจิสติกโดยพิจารณาจากลำดับที่สูงกว่าซีมโทติคคือการถดถอยโลจิสติก Firth ... บางคนในขณะที่ก่อนทั้งหมดของการเจรจาเหล่านี้ ปี 1970 มันมีจำนวนเพิ่มโทษระยะความน่าจะเป็น โดยที่

l(β)=l(β)+12ln|i(β)|
i(β)=1nipi(1pi)xixiเป็นเมทริกซ์ข้อมูลที่ทำให้เป็นมาตรฐานต่อการสังเกต เฟิร์ ธ แสดงให้เห็นว่าการแก้ไขนี้มีการตีความแบบเบย์ซึ่งสอดคล้องกับเจฟฟรีย์ก่อนที่จะหดตัวลงสู่ศูนย์ ความตื่นเต้นที่เกิดขึ้นเนื่องจากช่วยแก้ไขปัญหาการแยกที่สมบูรณ์แบบ: พูดชุดข้อมูลจะผลิตในนามประมาณการ ML อนันต์และในยังคงเป็นความเสี่ยงที่จะเกิดปัญหาผมเชื่อว่า{(yi,xi)={(1,1),(0,0)}glmR

1
ใช่คุณสามารถใช้ R แพ็คเกจ logistf หรือ brglm สำหรับสิ่งนี้! อาจคุ้มค่าที่จะกล่าวถึง ...
Tom Wenseleers

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

มันช้ามากจริงๆ @appletree
StasK

(+1) ฉันไม่เคยได้ยินเรื่องการแก้ไขของเฟิร์ ธ มาก่อน ฉันไม่คาดหวังว่าแนวทางโดยนัยในกระดาษที่อ้างถึงจะเพิ่มเวลามากขึ้นในการแก้ปัญหา GLM หรือไม่? (คุณไม่จำเป็นต้องแปลงเมทริกซ์เพียงคำนวณ leverage ถ้าแก้ GLM ด้วยการกระจายน้ำหนักอย่างน้อยกำลังสองมันจะเป็นบรรทัดฐานแถวของปัจจัย Qแล้วค่า leverage จะเพิ่มลงในข้อมูลและปริมาณแสงโดยใช้แทนในการปรับ Jeffreys )h/21/2
GeoMatt22

6

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


ข้อเสียของการใช้ glmnet เพียงแค่นี้ก็คือวิธีการนั้นจะไม่ให้ระดับความสำคัญกับคุณ หากคุณสนใจในสิ่งเหล่านั้นแพคเกจ R logistf หรือ brglm จะเป็นวิธีที่ดีกว่าที่จะไป ...
Tom Wenseleers

@TomWenseleers นอกจากนี้ยังมีวิธีการ bootstrapping glmnet เพื่อรับค่า p อย่างไรก็ตามมันมีความซับซ้อนเล็กน้อยเนื่องจาก bootstrap "ปกติ" ไม่สามารถใช้กับค่าสัมประสิทธิ์ Lasso ได้
godspeed

ขอบคุณที่แจ้งให้ฉันทราบเกี่ยวกับสิ่งนั้นฉันเห็นคนอื่นพูดถึงเรื่องนี้เช่นที่นี่: stats.stackexchange.com/questions/34859/…แต่ดูเหมือนจะไม่พบสิ่งใดที่ได้มาตรฐานที่ใช้ในแพ็คเกจ R คุณจะมีพอยน์เตอร์หรือไม่? หรือวรรณกรรมเบื้องต้นที่ดีเกี่ยวกับเรื่องนี้? ข้อเสียของการร่วมมือนี้ยังว่ามันมักจะจะช้ามากสำหรับชุดข้อมูลขนาดใหญ่ ...
ทอม Wenseleers

คุณอ้างถึงวิธีการต่าง ๆ เช่นที่ใช้ในแพ็คเกจ R hdi, cran.r-project.org/web/packages/hdi/index.htmlหรือไม่
Tom Wenseleers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.