Нормализация данных является критически важным этапом при работе с нейронными сетями в библиотеке Brain.js. Она заключается в преобразовании исходных данных в диапазон, удобный для обработки нейросетью. Brain.js работает с числами в диапазоне от 0 до 1, поэтому значения входных данных необходимо масштабировать соответствующим образом.
Мин–макс нормализация Преобразует значения из
исходного диапазона [min, max] в новый [0, 1].
Формула:
[ x_{norm} = ]
Пример на Jav * aScript:
const min = 10;
const max = 50;
const value = 30;
const normalized = (value - min) / (max - min); // 0.5
Мин–макс нормализация подходит для числовых признаков с известными границами, например, температур или цен.
Нормализация по среднему и стандартному отклонению (z-score) Преобразует значения так, чтобы они имели среднее 0 и стандартное отклонение 1:
[ x_{norm} = ]
Этот метод эффективен, если данные имеют различный разброс и нет
жёстких границ. Для работы с Brain.js значения нужно дополнительно
масштабировать в диапазон [0, 1] или [-1, 1],
так как библиотека не поддерживает произвольные диапазоны
напрямую.
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
const rawData = [
{ temp: 15, humidity: 80, outcome: 1 },
{ temp: 30, humidity: 50, outcome: 0 },
];
// Нормализация temp и humidity
const tempMin = 0, tempMax = 40;
const humidityMin = 0, humidityMax = 100;
const trainingData = rawData.map(d => ({
input: {
temp: (d.temp - tempMin) / (tempMax - tempMin),
humidity: (d.humidity - humidityMin) / (humidityMax - humidityMin)
},
output: { result: d.outcome }
}));
net.train(trainingData);
После того как нейросеть сделала прогноз на нормализованных данных, результат необходимо вернуть в исходный диапазон.
Формула обратной денормализации для мин–макс метода:
[ x_{original} = x_{norm} (x_{max} - x_{min}) + x_{min}]
Пример:
const normalizedPrediction = 0.75;
const originalPrediction = normalizedPrediction * (tempMax - tempMin) + tempMin; // 30
min и max или среднее и стандартное отклонение
для последующей денормализации.Правильная нормализация и денормализация данных обеспечивает корректную работу нейросети, ускоряет обучение и делает прогнозы точными и интерпретируемыми. В Brain.js именно подготовка данных зачастую определяет успешность проекта не меньше, чем архитектура сети.
Нормализованные входные данные и корректная денормализация результатов формируют надежную основу для создания предсказательных моделей на JavaScript.