当我在逻辑回归设置中使用平方损失时,这里发生了什么?
我正在尝试使用平方损失对玩具数据集进行二进制分类。 我正在使用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)) } # ---------------------------------------------------------------- # note, this random seed is important for squared loss work # ---------------------------------------------------------------- set.seed(0) x0=runif(3) x=as.matrix(cbind(1,d[,2:3])) y=d$am opt=optim(x0, lossSqOnBinary, …