จะเกิดอะไรขึ้นที่นี่เมื่อฉันใช้การสูญเสียกำลังสองในการตั้งค่าการถดถอยโลจิสติก
ฉันกำลังพยายามใช้การสูญเสียกำลังสองเพื่อทำการจำแนกเลขฐานสองบนชุดข้อมูลของเล่น ฉันกำลังใช้mtcarsชุดข้อมูลใช้ไมล์ต่อแกลลอนและน้ำหนักเพื่อทำนายประเภทการส่ง เนื้อเรื่องด้านล่างแสดงข้อมูลประเภทการส่งข้อมูลสองชนิดในสีที่ต่างกันและขอบเขตการตัดสินใจที่สร้างขึ้นโดยฟังก์ชั่นการสูญเสียที่แตกต่างกัน การสูญเสียกำลังสองคือ ∑i(yi−pi)2∑i(yi−pi)2\sum_i (y_i-p_i)^2โดยที่yiyiy_iคือเลเยอร์ความจริงพื้นดิน (0 หรือ 1) และpipip_iคือความน่าจะเป็นที่คาดการณ์pi=Logit−1(βTxi)pi=Logit−1(βTxi)p_i=\text{Logit}^{-1}(\beta^Tx_i). กล่าวคือฉันแทนที่การสูญเสียโลจิสติกด้วยการสูญเสียกำลังสองในการตั้งค่าการจัดหมวดหมู่ส่วนอื่น ๆ เหมือนกัน สำหรับตัวอย่างของเล่นที่มีmtcarsข้อมูลในหลาย ๆ กรณีฉันได้แบบจำลอง "คล้ายกัน" กับการถดถอยโลจิสติก (ดูรูปต่อไปนี้โดยมีเมล็ดสุ่ม 0) แต่ในบางสิ่ง (ถ้าเราทำset.seed(1)) การสูญเสียกำลังสองดูเหมือนจะไม่ได้ผล เกิดอะไรขึ้นที่นี่ การเพิ่มประสิทธิภาพไม่ได้มาบรรจบกัน? การสูญเสียโลจิสติกส์นั้นง่ายกว่าเมื่อเทียบกับการสูญเสียกำลังสอง? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม รหัส d=mtcars[,c("am","mpg","wt")] plot(d$mpg,d$wt,col=factor(d$am)) lg_fit=glm(am~.,d, family = binomial()) abline(-lg_fit$coefficients[1]/lg_fit$coefficients[3], -lg_fit$coefficients[2]/lg_fit$coefficients[3]) grid() # sq loss lossSqOnBinary<-function(x,y,w){ p=plogis(x %*% w) return(sum((y-p)^2)) } # ---------------------------------------------------------------- …