Я предполагаю, что вы хотите нормализовать каждый столбец.
Существует два способа нормализации:
(1) Установите минимум на 0 и максимум на 1
dataset = bsxfun(@minus,dataset,min(dataset));
dataset = bsxfun(@rdivide,dataset,max(dataset));
(2) Установите среднее значение на ноль, стандартное отклонение на 1 (если у вас нет набора инструментов статистики, используйте mean
и std
для вычитания и деления соответственно, как указано выше).
dataset = zscore(dataset);
EDIT
Почему кто-либо использует вариант 2 для нормализации?
Когда вы вычисляете разницу (различие) между различными точками данных, вы можете взвесить разные измерения одинаково. Поскольку измерения с большой дисперсией будут доминировать в показателе различий, вы нормализуете дисперсию до единицы.