Як масштабувати масив підписаних цілих чисел для діапазону від 0 до 1?


14

Я використовую Brain для тренування нейронної мережі на наборі функцій, що включає як позитивні, так і негативні значення. Але для мозку потрібні вхідні значення від 0 до 1. Який найкращий спосіб нормалізувати мої дані?

Відповіді:


24

Це називається нормалізацією на основі єдності. Якщо у вас вектор , ви можете отримати нормалізовану його версію, скажімо Z , виконавши:ХZ

Z=Х-хв(Х)макс(Х)-хв(Х)

1
Цей підхід також відомий як нормалізація мінімальної максимуму (оскільки ми використовуємо значення min та max)
Шагун Содхані,

Чи нормально використовувати цей метод для нормалізації значення, яке представляє відсоток і може бути негативним, але завжди вище -2% і нижче 30%? Невже нейронній мережі буде складніше отримати поняття значення значення, якщо я нормалізую це таким чином?
Іван

3

Знайдіть найбільше додатне число та найменше (найнегативніше) число у масиві. Додайте абсолютне значення найменшого (найнегативнішого) числа до кожного значення масиву. Розділіть кожен результат на різницю між найбільшим і найменшим числом.


@Jonathan: не має значення, якщо обидва значення є з одного масиву, оригінального або оновленого. Оскільки однакове число додається до кожного значення, різниця між мінімальним та максимальним залишається однаковою.
RemcoGerlich

1

скажімо, у вас є вектор / масив значень v = [1, -2, 3]

minV = Math.min.apply(Math, v);;
for(var i=0; i<v.length; i++) {v[i] -= minV;}
maxV = Math.max.apply(Math, v);;
for(var i=0; i<v.length; i++) {v[i] /= ( maxV - minV );}

Вихід у кінці буде v = [0.6, 0, 1]. Пояснення:

  1. Натискання на весь діапазон значень починати з 0, щоб у нас не було негативів

  2. Розділити значення на (max - min) діапазону, так що max буде дорівнює 1


1

Перш ніж це зробити, можливо, ви захочете перевірити, чи не виходять люди. Скажімо, 99% даних лежать в межах (-5, 5), але один маленький хлопець приймає значення 25,0. Ваш нормалізований масив кластеризується навколо (0, 0,3), і це спричинить проблему для вивчення нейронної мережі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.