我试图实现梯度下降反向传播算法来解决多元回归问题。我很确定它不会按预期工作。我只是不知道怎么了。
for (int k = 0; k < ITERATIONS; k++) {
for (int i = 0; i < NUMBER_OF_FEATURES; i++) { //
double sum = 0;
for (int j = 0; j < NUMBER_OF_TESTCASES; j++) {
sum += (sigmoid(dataset[j].h(weights)) - dataset[j].y) * dataset[j].normalized[i];
//partial derivatives
}
//simultaneously update the weights array
temp[i] = weights[i] - ((LearningRate / NUMBER_OF_TESTCASES) * sum);
}
for (int i = 0; i < 82; i++) {
weights[i] = temp[i];
}
}
其中dataset [i]是一个类,其中包含要素实例和相应的数字y。
我是新手,所以我想首先以尽可能少的抽象来理解该过程。这就是使用Java的原因。