Skip to content

coefficients_sgd函数中w的梯度更新公式 #1

Open
@CyrilZhao-sudo

Description

void coefficients_sgd(double ** dataset, int col, double *coef, double l_rate, int n_epoch, int train_size) { int i; for (i = 0; i < n_epoch; i++) { int j = 0;//±éÀúÿһÐÐ for (j = 0; j < train_size; j++) { double yhat = predict(col,dataset[j], coef); double err = dataset[j][col - 1] - yhat; coef[0] += l_rate * err * yhat * (1 - yhat); int k; for (k = 0; k < col - 1; k++) { coef[k + 1] += l_rate * err * yhat * (1 - yhat) * dataset[j][k]; } } } for (i = 0; i < col; i++) { //printf("coef[%d]=%f\n",i, coef[i]); } }

coef[k + 1] += l_rate * err * yhat * (1 - yhat) * dataset[j][k]
上面的梯度更新公式式改进的?

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions