Есть ли способ ojAlgo нормализовать матрицу? - PullRequest
1 голос
/ 29 марта 2019

Мне интересно узнать, есть ли способ найти нормализованную форму для MatrixStore, используя библиотеку матриц ojAlgo.

Возможно, подпрограмма или задача, которые когда-то выполнялись в MatrixStore, приведут к тому, что каждая строка будет иметь среднее значение 0 и стандартное отклонение 1.

Если кто-то знаком со sklearn, я ищу какую-то функцию в ojAlgo, которая работает аналогично модулю предварительной обработки в sklearn.

1 Ответ

1 голос
/ 29 марта 2019

Не напрямую. Вы должны написать несколько циклов и вычислений самостоятельно. Вот один из возможных способов сделать это:

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);
...