हाँ, आपको डेटा का परीक्षण करने के लिए सामान्यीकरण लागू करने की आवश्यकता है, यदि आपका एल्गोरिथ्म सामान्यीकृत प्रशिक्षण डेटा के साथ काम करता है या आवश्यकता है *।
ऐसा इसलिए है क्योंकि आपका मॉडल इसके इनपुट वैक्टर द्वारा दिए गए प्रतिनिधित्व पर काम करता है। उन संख्याओं का पैमाना प्रतिनिधित्व का हिस्सा है। यह पैरों और मीटरों के बीच परिवर्तित होने जैसा है। । । एक मॉडल या सूत्र सामान्य रूप से केवल एक प्रकार की इकाई के साथ काम करेगा।
न केवल आपको सामान्यीकरण की आवश्यकता है, बल्कि आपको अपने प्रशिक्षण डेटा के समान सटीक स्केलिंग लागू करना चाहिए। इसका मतलब है कि आपके प्रशिक्षण डेटा के साथ उपयोग किए गए पैमाने और ऑफसेट को संग्रहीत करना और फिर से उपयोग करना। एक सामान्य शुरुआत गलती अपनी ट्रेन और परीक्षण डेटा को अलग करने के लिए है।
पायथन और SKLearn में, आप इस तरह से मानक स्केलर का उपयोग करके अपने इनपुट / एक्स मान को सामान्य कर सकते हैं :
scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )
ध्यान दें कि train_X
एक फ़ंक्शन का उपयोग करने का रूपांतरण जो फिट बैठता है (पैराम्स का आंकड़ा) फिर सामान्य हो जाता है। जबकि test_X
रूपांतरण ट्रेन के डेटा से सीखे गए उन्हीं पैरेम्स का उपयोग करते हुए रूपांतरण करता है।
आपके द्वारा लागू किए जा रहे tf-idf सामान्यीकरण को इसी तरह काम करना चाहिए, क्योंकि यह डेटा सेट से कुछ मापदंडों को एक पूरे (सभी दस्तावेजों में शब्दों की आवृत्ति) के साथ-साथ प्रत्येक दस्तावेज़ में पाए गए अनुपात का उपयोग करके सीखता है।
* कुछ एल्गोरिदम (जैसे कि निर्णय पेड़ों पर आधारित) को सामान्यीकृत इनपुट की आवश्यकता नहीं होती है, और उन विशेषताओं के साथ सामना कर सकते हैं जिनमें विभिन्न अंतर्निहित पैमाने होते हैं।