Стандартизация / предварительная обработка данных в Java

Я пытаюсь построить простую нейронную сеть с JAva. Мне не удается найти аналог функций Python KERA, например scale () в Java.

Итак, если у меня есть такой массив:

double[] arr = {148.0, 85.0, 183.0, 89.0, 137.0, 116.0, 78.0, 115.0, 197.0, 125.0, 110.0, 168.0, 139.0,......}; // массив усечен для простоты

Я пытаюсь нормализовать данные, чтобы они имели среднее значение 0 и стандартное отклонение 1. Я пытался использовать математическую библиотеку apache commons, чтобы сделать это, в частности, StatUtils.normalize, который утверждает, что он делает именно это.

до нормализации это была статистика массива Мин: 0,0 Среднее: 120,89453125 Макс: 199,0

после того, как я вызвал StatUtils.normalize(arr);

Это вернуло следующие данные:

[0,8477713205896718, -1,1226647449053888, 1,942458023642483, -0,9975576931279247, +0,5037269282016452, -0,1530850936300416, -1,3416020855159512, -0,18436185657440765, +2,3803327048636076, 0,12840577286925278, -0,34074567129623784, +1,4733065794769926, 0,5662804540903773]

а теперь статистика:

Нормализованное Мин .: -3.781189595176502 Нормализованное Среднее: -8.384496800554567E-18 Нормализованное Макс .: 2.44288623075234

В примере с python они использовали KERA.scale (), и после его запуска среднее значение было 0, а отклонение - 1.

Я не уверен, почему среднее значение не равно 0 после запуска normalize()?

Я пробовал пользоваться столовой пилой, но не видел возможности это сделать.

Итак, мой вопрос: я использую правильный метод или есть другой способ нормализации данных? можно ли это сделать с помощью другой библиотеки Java? Я пытаюсь найти альтернативу Java для KERA в Python

0 ответов

Другие вопросы по тегам