Hem pozitif hem de negatif değerleri içeren bir özellik kümesi üzerinde bir sinir ağı eğitmek için Brain kullanıyorum . Ancak Beyin 0 ile 1 arasında giriş değerleri gerektirir. Verilerimi normalleştirmenin en iyi yolu nedir?
Hem pozitif hem de negatif değerleri içeren bir özellik kümesi üzerinde bir sinir ağı eğitmek için Brain kullanıyorum . Ancak Beyin 0 ile 1 arasında giriş değerleri gerektirir. Verilerimi normalleştirmenin en iyi yolu nedir?
Yanıtlar:
Buna birlik temelli normalleşme denir. Bir vektörünüz varsa, bunu yaparak normalleştirilmiş bir sürümünü ( gibi) elde edebilirsiniz :
Dizideki en büyük pozitif sayıyı ve en küçük (en negatif) sayıyı bulun. Dizideki her değere en küçük (en negatif) sayının mutlak değerini ekleyin. Her bir sonucu, en büyük ve en küçük sayı arasındaki farka bölün.
bir vektörünüz / değerler diziniz olduğunu varsayalım 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 );}
Sonunda çıktı olacak v = [0.6, 0, 1]
. Açıklama:
Negatif olmamak için tüm değer aralığını 0'dan başlamak için itmek
Değerleri (max - min) aralığına böler, böylece max 1 olur