रॉ डेटा को फ़ीचर इंजीनियर किया जाना चाहिए (बदला जाना चाहिए). आपको डेटा को कब ट्रांसफ़ॉर्म करना चाहिए? आम तौर पर, इनमें से किसी भी समयावधि के दौरान फ़ीचर इंजीनियरिंग की जा सकती है:
- मॉडल को ट्रेनिंग देने से पहले.
- मॉडल को ट्रेनिंग देते समय.
ट्रेनिंग से पहले डेटा में बदलाव करना
इस तरीके में, आपको दो चरण पूरे करने होंगे:
- रॉ डेटा को बदलने के लिए, कोड लिखें या खास टूल का इस्तेमाल करें.
- बदले गए डेटा को ऐसी जगह पर सेव करें जहां मॉडल उसे डाल सके, जैसे कि डिस्क पर.
फ़ायदे
- सिस्टम, रॉ डेटा को सिर्फ़ एक बार ट्रांसफ़ॉर्म करता है.
- सिस्टम, ट्रांसफ़ॉर्मेशन की सबसे सही रणनीति तय करने के लिए, पूरे डेटासेट का विश्लेषण कर सकता है.
नुकसान
- आपको अनुमान लगाने के समय ट्रांसफ़ॉर्मेशन फिर से बनाने होंगे. ट्रेनिंग और ब्राउज़र में वेब पेज खोलने के दौरान परफ़ॉर्मेंस में अंतर से सावधान रहें!
ट्रेनिंग-सेविंग स्क्यू तब ज़्यादा खतरनाक होता है, जब आपका सिस्टम डाइनैमिक (ऑनलाइन) अनुमानों का इस्तेमाल करता है. डाइनैमिक इंफ़रेंस का इस्तेमाल करने वाले सिस्टम में, आम तौर पर रॉ डेटासेट को बदलने वाला सॉफ़्टवेयर, अनुमान देने वाले सॉफ़्टवेयर से अलग होता है. इस वजह से, ट्रेनिंग और सर्विंग में अंतर हो सकता है. इसके उलट, स्टैटिक (ऑफ़लाइन) अनुमान का इस्तेमाल करने वाले सिस्टम, कभी-कभी एक ही सॉफ़्टवेयर का इस्तेमाल कर सकते हैं.
ट्रेनिंग के दौरान डेटा में बदलाव करना
इस तरीके में, ट्रांसफ़ॉर्मेशन मॉडल कोड का हिस्सा होता है. मॉडल, रॉ डेटा को डालता है और उसे बदलता है.
फ़ायदे
- ट्रांसफ़ॉर्मेशन में बदलाव करने के बाद भी, उन रॉ डेटा फ़ाइलों का इस्तेमाल किया जा सकता है.
- इससे, आपको ट्रेनिंग और अनुमान लगाने के समय एक जैसे ट्रांसफ़ॉर्मेशन मिलते हैं.
नुकसान
- जटिल ट्रांसफ़ॉर्मेशन की वजह से, मॉडल के लोड होने में लगने वाला समय बढ़ सकता है.
- हर बैच के लिए ट्रांसफ़ॉर्मेशन होते हैं.
हर बैच के डेटा को ट्रांसफ़ॉर्म करना मुश्किल हो सकता है. उदाहरण के लिए, मान लें कि आपको रॉ न्यूमेरिक डेटा को बदलने के लिए, Z-स्कोर नॉर्मलाइज़ेशन का इस्तेमाल करना है. Z-स्कोर नॉर्मलाइज़ेशन के लिए, एट्रिब्यूट के माध्य और स्टैंडर्ड डेविएशन की ज़रूरत होती है. हालांकि, हर बैच के लिए ट्रांसफ़ॉर्मेशन का मतलब है कि आपके पास सिर्फ़ डेटा के एक बैच का ऐक्सेस होगा, न कि पूरे डेटासेट का. इसलिए, अगर बैच में बहुत ज़्यादा वैरिएंट हैं, तो एक बैच में -2.5 का Z-स्कोर, दूसरे बैच में -2.5 के Z-स्कोर जैसा नहीं होगा. इस समस्या को हल करने के लिए, आपका सिस्टम पूरे डेटासेट में औसत और स्टैंडर्ड डेविएशन का हिसाब पहले से लगा सकता है. इसके बाद, इनका इस्तेमाल मॉडल में कॉन्स्टेंट के तौर पर किया जा सकता है.