ojAlgo 有没有办法对矩阵进行归一化?

Is there a way on ojAlgo to normalize a Matrix?

我很想知道是否可以使用 ojAlgo 矩阵库找到 MatrixStore 的规范化形式。

也许曾经在 MatrixStore 上执行的例程或任务会导致每一行的平均值为 0,标准差为 1。

如果熟悉 sklearn,我正在寻找的是 ojAlgo 上的一些函数,其功能类似于 sklearn 上的预处理模块。

不直接。你必须自己写一些循环和计算。这是一种可行的方法:

PrimitiveDenseStore matrix = ...;

SampleSet sampleSet = SampleSet.make();
for (int j = 0; j < matrix.countColumns(); j++) {
    sampleSet.swap(matrix.sliceColumn(j));
    for (int i = 0; i < matrix.countRows(); i++) {
        matrix.set(i, j, sampleSet.getStandardScore(i));
    }
}

对于 ojAlgo,我强烈建议按列组织数据。

我实际上并没有测试该代码。像这样就地更新矩阵可能会有问题。

...

使用 v47.1.1(刚刚发布)现在可以这样做:

matrix.modifyAny(DataPreprocessors.STANDARD_SCORE);