0 से 1 के बीच हस्ताक्षरित पूर्णांक की एक सरणी को कैसे स्केल करें?


14

मैं मस्तिष्क का उपयोग एक तंत्रिका नेटवर्क को एक फीचर सेट पर प्रशिक्षित करने के लिए कर रहा हूं जिसमें सकारात्मक और नकारात्मक दोनों मूल्य शामिल हैं। लेकिन ब्रेन को 0 और 1 के बीच इनपुट वैल्यू की आवश्यकता होती है। मेरे डेटा को सामान्य करने का सबसे अच्छा तरीका क्या है?

जवाबों:


24

इसे एकता-आधारित सामान्यीकरण कहा जाता है। यदि आपके पास एक वेक्टर , तो आप इसके द्वारा एक सामान्यीकृत संस्करण प्राप्त कर सकते हैं, कह सकते हैं:जेडXZ

Z=Xmin(X)max(X)min(X)

1
इस दृष्टिकोण को न्यूनतम-अधिकतम सामान्यीकरण के रूप में भी जाना जाता है (जैसा कि हम न्यूनतम और अधिकतम मूल्यों का उपयोग कर रहे हैं)
शगुन सोढानी

क्या इस पद्धति का उपयोग किसी मूल्य को सामान्य करने के लिए ठीक है जो प्रतिशत का प्रतिनिधित्व करता है और नकारात्मक हो सकता है लेकिन हमेशा -2% से अधिक और 30% से कम होता है? अगर मैं इसे इस तरह से सामान्य कर दूं तो मूल्य का सुराग प्राप्त करना कठिन नहीं होगा?
इवान

3

सरणी में सबसे बड़ी धनात्मक संख्या और सबसे छोटी (सबसे ऋणात्मक) संख्या ज्ञात कीजिए। सरणी में प्रत्येक मान के लिए सबसे छोटा (सबसे नकारात्मक) संख्या का पूर्ण मान जोड़ें। प्रत्येक परिणाम को सबसे बड़ी और सबसे छोटी संख्या के बीच के अंतर से विभाजित करें।


@ जोनाथन: यह तब तक मायने नहीं रखता जब तक दोनों मूल्य एक ही सरणी, मूल या अद्यतन से नहीं हैं। चूँकि हर मूल्य में समान संख्या जोड़ी जाती है, न्यूनतम और अधिकतम के बीच का अंतर समान रहता है।
रेमकोगर्लिच

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. मानों को (अधिकतम - न्यूनतम) श्रेणी से विभाजित करना, ताकि अधिकतम 1 हो जाए


1

इससे पहले कि आप ऐसा करते हैं, आप आउटलेर के लिए जांचना चाहते हैं। 99% डेटा सीमा (-5, 5) में है, लेकिन एक छोटा आदमी 25.0 का मान लेता है। आपका सामान्यीकृत सरणी लगभग (0, 0.3) क्लस्टर होगा, और इससे तंत्रिका जाल को सीखने में समस्या होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.