2

我正在尝试使用 Jama 库编写我的 sigmoid 函数。我不确定我的代码是否有效,所以我sigmoidFunction在我的测试函数中调用了我的代码:

public matrix sigmoidFunction() {
    matrix theta = new matrix(x_theta,m);
    matrix X = new matrix(x);
    matrix theta_transpose = theta.transpose();
    matrix HX = theta_transpose.times(X);
    double[][] hx = HX.getArray();
    int m = HX.getRowdimension();
    int n = HX .getColdimension();

    for (int i = 0; i < m; i++) {
        for (int j = 0; j<n; j++) {
             hx[i][j] = 1 / (1 + StrictMath.exp(hx[i][j]));
        }
    }
    matrix sigmoid = new matrix(hx);
return sigmoid;
}

但是,当我运行它时,没有输出。就好像我的sigmoidFunction. 我不知道为什么。

public static void main(String[] args) {

    double[ ][ ] x={ {1,2}, {1,2}, {1,2} ,{1,2}, {1,2} };
        double[] theta = {0.5,0.005};
    double[] y = {1,1,0,1,0};

    LogisticRegression l = new LogisticRegression(x,theta,y);

    System.out.println(l.sigmoidFunction().getArray()[1]);

}

4

1 回答 1

0

您在函数内定义新矩阵。打印出来看看你是否X有值。实际上,您需要在函数内部定义和。thetasigmoidFunctionXtheta

于 2013-12-12T16:02:33.670 回答