डेटा को प्रशिक्षण और वैलिडेशन सेट में बाँटना
आपने सीखा कि केवल प्रशिक्षण डेटा का उपयोग करना और वैलिडेशन डेटासेट न रखना एक समस्या पैदा करता है जिसे overfitting कहते हैं. Overfitting होने पर मॉडल प्रशिक्षण इनपुट्स पर तो बहुत सटीक भविष्यवाणी करता है, लेकिन अनदेखे डेटा पर बहुत खराब जनरलाइज़ करता है. इसका मतलब मॉडल बहुत उपयोगी नहीं रहेगा, क्योंकि यह सामान्यीकरण नहीं कर पाता. इससे बचने के लिए आप वैलिडेशन डेटासेट का उपयोग कर सकते हैं.
इस अभ्यास में, आप अपने डेटासेट से प्रशिक्षण और वैलिडेशन सेट बनाएँगे (जैसे en_text जिसमें 1000 अंग्रेजी वाक्य हैं और fr_text जिसमें वही 1000 फ़्रेंच वाक्य हैं). आप 80% डेटासेट को प्रशिक्षण डेटा और 20% को वैलिडेशन डेटा के रूप में उपयोग करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ Machine Translation
अभ्यास निर्देश
np.arange()का उपयोग करके 0 से शुरू होने वाला औरen_textके आकार जितना लंबा इंडेक्स क्रम परिभाषित करें.valid_indsको इंडेक्स क्रम के आखिरीvalid_sizeइंडेक्स के रूप में परिभाषित करें.tr_enऔरtf_frपरिभाषित करें, जिनमें क्रमशः लिस्टen_textऔरfr_textसेtrain_indsइंडेक्स पर मौजूद वाक्य हों.v_enऔरv_frपरिभाषित करें, जिनमें क्रमशः लिस्टen_textऔरfr_textसेvalid_indsइंडेक्स पर मौजूद वाक्य हों.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to len(en_text)
inds = ____.____(len(_____))
np.random.shuffle(inds)
train_inds = inds[:train_size]
# Define valid_inds: last valid_size indices
valid_inds = inds[____]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[____] for ti in ____]
tr_fr = [____ for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [____ for vi in valid_inds]
v_fr = [____ for vi in ____]
print('Training (EN):\n', tr_en[:3], '\nTraining (FR):\n', tr_fr[:3])
print('\nValid (EN):\n', v_en[:3], '\nValid (FR):\n', v_fr[:3])