我正在尝试使用 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]);
}
最佳答案
您在函数内定义新矩阵。打印出来并查看 sigmoidFunction
中的 X
和 theta
是否有值。实际上,您需要在函数内定义 X
和 theta
。
关于java - 使用 Jama 数学库的 sigmoid 函数在 sigmoidfunction 中没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546176/