【发布时间】:2018-09-10 03:18:50
【问题描述】:
我正在尝试实现 Stochastic Gradient Descent 逻辑回归算法。我编写了一个小的train 函数,其工作是获取theta 值/系数。但是theta 的值不正确并且与初始化的值相同。我不明白这是为什么。是不是实现随机梯度下降的正确方法?
这是我为它编写的代码:
train <- function(data, labels, alpha = 0.0009) {
theta <- seq(from = 0, to = 1, length.out = nrow(data))
label <- label[,shuffle]
data <- data[,shuffle]
for(i in seq(1:ncol(data))) {
h = hypothesis(x, theta)
theta <- theta - (alpha * ((h - y) * data[,i]))
}
return(theta)
}
请注意,数据框中的每一列都是一个输入。有 20K 列和 456 行。因此,20K 输入值用于训练。名为labels 的相应数据框具有输入训练数据的正确值。例如,data 中的第 45 列在labels 的第 45 列中具有对应的y 值。
在上面的回归中,我试图训练在标签1 和标签0 之间进行预测。所以labels是一个由0和1组成的数据框。
【问题讨论】:
标签: r logistic-regression gradient-descent