如何在 Java 中打印皮尔逊矩阵的所有列
How to print all the columns of the pearson Matrix in Java
我正在处理一个问题(与这里 相同)但是在 Java(和 Spark MLLib)中。
因此,使用以下代码创建了一个皮尔逊矩阵。我想打印 Pearson 矩阵的所有 13 columns/fields,但它真的很混乱。
密码是:
Row r1=Correlation.corr(output,"intensity").head();
System.out.println("Pearson correlation matrix:\n" + r1.get(0).toString());
r1 模式是:
root
|-- pearson(intensity): matrix (nullable = false)
我得到的结果是:
皮尔逊相关矩阵:
1.0 -1.000000000000013 -0.9999999999999991 ... (13 total)
-1.000000000000013 1.0 1.0000000000000069 ...
-0.9999999999999991 1.0000000000000069 1.0 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-1.0000000000001108 1.0000000000000644 1.000000000000129 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
1.0 -1.000000000000005 -0.9999999999999989 ...
-1.0000000000000029 1.0000000000000056 1.0000000000000009 ...
-1.0000000000000036 1.000000000000003 1.0000000000000018 ...
-0.9999999999999999 1.000000000000003 1.0000000000000002 ...
0.9999999999999989 -1.000000000000012 -0.9999999999999987 ...
基本上,我认为第 r1 行中有一个矩阵(也许是 DenseMatrix)。我怎样才能访问这个矩阵,我怎样才能打印所有 13 列?
使用 "head()"(如果我将 r1 分配给数据集,则显示(假))仅显示前 3 列和“总共 13 个”。
我是 Spark 的新手-Java。请帮忙!提前非常感谢!!!
经过很多很多努力..我发现它简单多了..!只需发布答案...数据集的第一行中有一个矩阵。您所要做的就是访问第一行,然后访问矩阵。
Row r1 = Correlation.corr(output, "intensity").head();
Matrix r2= r1.getAs(0);
for (int i = 0; i < r2.numRows(); i++) {
for (int j = 0; j < r2.numCols(); j++) {
System.out.print(r2.apply(i,j)+" ");
}
System.out.println();
}
我正在处理一个问题(与这里
因此,使用以下代码创建了一个皮尔逊矩阵。我想打印 Pearson 矩阵的所有 13 columns/fields,但它真的很混乱。
密码是:
Row r1=Correlation.corr(output,"intensity").head();
System.out.println("Pearson correlation matrix:\n" + r1.get(0).toString());
r1 模式是:
root
|-- pearson(intensity): matrix (nullable = false)
我得到的结果是:
皮尔逊相关矩阵:
1.0 -1.000000000000013 -0.9999999999999991 ... (13 total)
-1.000000000000013 1.0 1.0000000000000069 ...
-0.9999999999999991 1.0000000000000069 1.0 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
-1.0000000000001108 1.0000000000000644 1.000000000000129 ...
-0.9999999999999983 0.999999999999994 1.0000000000000009 ...
1.0 -1.000000000000005 -0.9999999999999989 ...
-1.0000000000000029 1.0000000000000056 1.0000000000000009 ...
-1.0000000000000036 1.000000000000003 1.0000000000000018 ...
-0.9999999999999999 1.000000000000003 1.0000000000000002 ...
0.9999999999999989 -1.000000000000012 -0.9999999999999987 ...
基本上,我认为第 r1 行中有一个矩阵(也许是 DenseMatrix)。我怎样才能访问这个矩阵,我怎样才能打印所有 13 列?
使用 "head()"(如果我将 r1 分配给数据集,则显示(假))仅显示前 3 列和“总共 13 个”。
我是 Spark 的新手-Java。请帮忙!提前非常感谢!!!
经过很多很多努力..我发现它简单多了..!只需发布答案...数据集的第一行中有一个矩阵。您所要做的就是访问第一行,然后访问矩阵。
Row r1 = Correlation.corr(output, "intensity").head();
Matrix r2= r1.getAs(0);
for (int i = 0; i < r2.numRows(); i++) {
for (int j = 0; j < r2.numCols(); j++) {
System.out.print(r2.apply(i,j)+" ");
}
System.out.println();
}