我正在尝试使用R sgd包学习SGD。但是,我不能正确地得到这个简单的例子。怎么了? (注意SGD X * beta,所有数字都是正面的,这意味着我们将始终预测1)
library(sgd)
set.seed(0)
d=ggplot2::diamonds
d$price=ifelse(d$price>2500,1,0)
noise_idx=sample(nrow(d),nrow(d)/5)
d$price[noise_idx]= ifelse(d$price[noise_idx]==1,0,1)
glm.fit=glm(price~.-carat,d,family=binomial)
sgd.fit <- sgd(price ~ .-carat, data=d,
model="glm", model.control=binomial(link="logit"))
glm.p=model.matrix(price~.-carat,d) %*% glm.fit$coefficients
sgd.p=model.matrix(price~.-carat,d) %*% sgd.theta$coefficients
par(mfrow=c(1,2))
hist(glm.p,50)
hist(sgd.p,50)